Избегайте DNSMASQ вносить изменения в resolv.conf
Не удалось найти обходной путь для dnsmasq, чтобы не вносить изменения в файл /etc/resolv.conf.
редактирование файла init.d/dnsmasq не является полной опцией, так как не во всех версиях Ubuntu dnsmasq запускается через init.d
надеюсь, вы можете помочь!
2 ответа
Проблема в том, что Network Manager динамически использует ваш /etc/resolv.conf
с dnsmasq
Решение для вас, чтобы изменить способ разрешения имен. Попробуйте следовать
В /etc/NetworkManager/NetworkManager.conf
закомментировать dns=dnsmasq
sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
no-auto-default=00:22:64:4E:6F:70,
[ifupdown]
managed=fals
и перезапустите службу NM
sudo restart network-manager
С этим /etc/resolv.conf
больше не зависит от resolvconf
пакет и обновляется на основе записей DNS каждого соединения в диспетчере сети
Также вы можете добавить nameserver в /etc/resolv.conf
, Если вы не установили днс в NM для соединения, это будет использоваться
sudo nano /etc/resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8
Редактировать один
Остановить службу resolvconf
sudo service resolvconf stop
отключи это
update-rc.d resolvconf disable
запрещать resolvconf
перезаписать resolv.conf
Создайте /etc/init/resolvconf.override
с одной строкой manual
echo 'manual' | sudo tee /etc/init/resolvconf.override
удалить символическую ссылку /etc/resolv.conf
rm /etc/resolv.conf
Создайте resolv.conf
со статическим входом днс
echo "namserver x.x.x.x." > /etc/resolv.conf
Вы можете попробовать установить chattr на неизменяемый.
chattr +i /path/to/filename
Чтобы удалить неизменяемый, чтобы разрешить изменения, снова измените флаг в файле.
chattr -i /path/to/filename
Это может решить, а может и не решить вашу проблему, но у меня была похожая проблема, когда dnsmasq (ну, фактически, комбинация dnsmasq и resolvconf) переписывал мой файл /etc/resolv.conf и игнорировал параметры dns-nameservers, которые я установил в / и т.д. / сети / интерфейсы.
Проблема оказалась в том, что resolvconf будет вызывать dnsmasq для обновления записей сервера имен в resolv.conf, а затем кажется, что после этого он завершит работу.
Я получил его, чтобы сохранить записи dns-nameservers из /etc/network/interfaces путем перемещения моего интерфейса (p+([0-9])p+([0-9])?(_+([0-9]))*
в моем случае) перед записью "lo.dnsmasq" в /etc/resolvconf/interface-order. Так что теперь вместо того, чтобы получать "nameserver 127.0.0.1" в качестве первой, последней и единственной записи сервера имен в /etc/resolv.conf, я получаю
nameserver <ipaddr.frometc.network.interfaces>
nameserver <another.frometc.network.interfaces>
nameserver 127.0.0.1
search <domains from /etc/network/interfaces>
Итак, теперь кажется, что resolvconf запускается, проверяет порядок интерфейса и добавляет записи из /etc/network/interfaces, соответствующие записям выше "lo.dnsmasq", затем вызывает процесс dnsmasq, чтобы добавить их в файл, но это как-то работает не совсем правильно и игнорирует все интерфейсы после этого.
Когда я пытался выяснить это, я безрезультатно искал, почему dnsmasq игнорировал /etc/network/interfaces. (Я был уверен, что dnsmasq был задействован, потому что это произошло вскоре после того, как я установил dnsmasq) Я не уверен, что это решит вашу проблему, но мне это показалось немного чище, чем просто удаление resolvconf.