Не удалось настроить NetworkManager для использования dnsmasq

Я использую openconnect для подключения к vpn и vpn-slice для разделения vpn. openconnect изменяет /etc/resolv.conf после запуска, но это не помогает при разрешении доменных имен vpn.

Чтобы обойти это, я настроил NetworkManager на использование dnsmasq для разрешения доменных имен.

/etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

И настроил dnsmasq для использования внутреннего vpn dns для разрешения пользовательских доменных имен.

/etc/NetworkManager/dnsmasq.d/myvpn

server=/.vpn.domain/192.168.213.104

И это отлично работает на Ubuntu 18.04

Я пытался сделать то же самое с другим ноутбуком, но потерпел неудачу. На другом ноутбуке установлена ​​Ubuntu 20.04.

Там доменные имена не разрешаются, хотя конфигурация такая же (если я что-то не совсем упустил, то очень надеюсь). Если я добавляю доменные имена в /etc/hosts, все начинает работать. Но имен много, поэтому я бы предпочел использовать dnsmasq

Вот разница между этими двумя машинами

С Ubuntu 18.04, где все работает, /etc/resolv.conf и /run/NetworkManager/resovl .conf идентичны и содержат только следующие строки

/etc/resolv.conf

#Generated  by NetworkManager
nameserver 127.0.1.1

, который является dnsmasq

В Ubuntu 20.04 файлы /run/Networkmanager/resolv.conf и /etc/resolv.conf отличаются. /etc/resolv.conf содержит много всего, а /run/NetworkManager/resolv.conf содержит те же строки, что и в Ubuntu 18.04

/etc/resolv.conf

 This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0 trust-ad

, который является systemd-resolved

/run/NetworkManager/resolv.conf

#Generated  by NetworkManager
nameserver 127.0.1.1

, который является dnsmasq

Также с Ubuntu Каталог 18.04 /etc/dnsmasq.d существует и содержит два файла

/etc/dnsmasq.d/network-manager

# Tell any system-wide dnsmasq instance to make sure to bind to interfaces
# instead of listening on 0.0.0.0
# WARNING: changes to this file will get lost if network-manager is removed.
bind-interfaces     

/etc/dnsmasq.d/ubuntu-fan

# ensure that any system dnsmasq does not bind to fan-*
bind-interfaces
except-interface=fan-* 

С каталогом Ubuntu 20.04 /etc/dnsmasq .d даже не существует

dnsmasq работает на обеих машинах.

ps aux | grep dnsmasq
nobody     31355  0.0  0.0  14788  4280 ?        S    09:47   0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/NetworkManager/dnsmasq.pid --listen-address=127.0.1.1 --cache-size=0 --clear-on-reload --conf-file=/dev/null --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq --conf-dir=/etc/NetworkManager/dnsmasq.d

Кажется, я упускаю некоторые детали, но у меня мало опыта в таких вещах, и я не знаю, как это диагностировать. Был бы признателен за любую помощь в этом.

1
задан 12 November 2020 в 13:32

0 ответов

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

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