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.

Другие вопросы по тегам