Как использовать 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 - «Имя или служба неизвестна»). Итак, я вручную заменяю сервер имен ::1 на некоторый действительный IP-адрес (например, 1.1.1.1 или 8.8.8.8). Мне нужно делать это каждый раз, когда я включаю свой компьютер.

Я не знаю, предустановлен ли connman (демон Intel Connection Manager) в Ubuntu 17.10, или я установил его при попытке установить VPN-клиент. Поиск в Интернете, кажется, у меня нет стандартной конфигурации. Итак, я попытался остановить службу, но затем теряю соединения и не вижу доступных сетей в апплете (NetworkManager?).

Я вижу, что connmand прослушивает порт 53 (но плохо разрешает), а systemd-resol также прослушивает порт 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-resolve --status, он дает мне правильный DNS.

Перепривязка /etc/resolv.conf к /run/systemd/resolve/resolv.conf также решает мою проблему.

Итак, как я могу отключить connman (по крайней мере, в качестве DNS-прокси) и включить снова systemd-resolve? Установлен ли connman по умолчанию в Ubuntu 17.10?

2
задан 17 September 2019 в 20:23

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 управляемый аферистом, NetworkManager управлял им, помещая "127.0.1.1" как сервер DNS (и не было никакого сервера, слушающего там).

В странице справочника NetworkManager говорится, что все это должно позволить systemd-resolve справиться resolve.conf, должен сделать softlink к resolv.conf файл в соответствии с любым из systemd каталогов.

1
ответ дан 2 December 2019 в 04:44

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

Похожие вопросы: