System Как использовать systemd-resolv вместо connman в качестве DNS-прокси?
Каждый раз, когда я запускаю свой компьютер, мой DNS не работает. В /etc/resolv.conf я вижу:
# Generated by Connection Manager
nameserver ::1
nameserver 127.0.0.1
Я вижу, что /etc/resolv.conf - это мягкая ссылка на /run/connman/resolv.conf
В этой конфигурации мой DNS не работает (пример: не могу выходить в Интернет с Chrome/Firefox, dig google.com не дает мне IP, а ping - "Имя или служба неизвестна"). Итак, я вручную изменяю nameserver :: 1 с некоторым действительным IP (например, 1.1.1.1 или 8.8.8.8). Мне нужно делать это каждый раз, когда я включаю свой компьютер.
Я не знаю, предустановлен ли connman (демон Intel Connection Manager) в Ubuntu 17.10, или я установил его при попытке установить VPN-клиент. Поиск в Интернете, кажется, у меня нет стандартной конфигурации. Итак, я попытался остановить службу, но затем теряю соединения и не вижу доступных сетей в апплете (NetworkManager?).
Я вижу, что connmand прослушивает порт 53 (но не решает правильно), а systemd-resolution также прослушивает порт 53 (но подключен к 127.0.0.53):
sudo netstat -tulpn | grep ":53 "
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 21159/connmand
tcp6 0 0 ::1:53 :::* LISTEN 21159/connmand
udp 0 0 127.0.0.1:53 0.0.0.0:* 21159/connmand
udp 0 0 127.0.0.53:53 0.0.0.0:* 1451/systemd-resolv
udp6 0 0 ::1:53 :::* 21159/connmand
Если я выполняю systemd-resolv --status, он дает мне правильный DNS.
Повторное связывание /etc/resolv.conf с /run/systemd/resolve/resolv.conf также решает мою проблему.
Итак, как я могу отключить connman (по крайней мере, в качестве прокси-сервера DNS) и снова включить systemd-resolv? Установлен ли connman по умолчанию в Ubuntu 17.10?
1 ответ
Извините, это было так просто, как:
1) удаление коннмана:
sudo apt remove connman
2) удаляем resolv.conf:
sudo rm /etc/resolv.conf
3) повторная ссылка на /run/systemd/resolve/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resol.conf
Последние 2 шага были необходимы, потому что без /etc/resolv.conf, управляемого connman, NetworkManager управлял им, помещая "127.0.1.1" в качестве DNS-сервера (и там не было ни одного прослушивающего сервера).
На странице руководства NetworkManager сказано, что все, что нужно для того, чтобы systemd-resolv управлял resolv.conf, - это создание мягкой ссылки на файл resolv.conf в любом из каталогов systemd.