не удалось найти обходной путь для dnsmasq, чтобы не вносить изменения в файл /etc/resolv.conf.
редактирование файла init.d / dnsmasq не является полной опцией, поскольку не во всех версиях ubuntu dnsmasq запускается через init.d
надеюсь, что вы можете помочь!
Проблема состоит в том, потому что Администратор сети использует динамично Ваш /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 каждого соединения в Администраторе сети
Также можно включить сервер имен /etc/resolv.conf
. Не при установке DNS в 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
со статической записью DNS
echo "namserver x.x.x.x." > /etc/resolv.conf
Это может или не может решить Вашу проблему, но у меня была подобная проблема, где dnsmasq (хорошо, на самом деле комбинация dnsmasq и resolvconf) переписывал мой/etc/resolv.conf файл и игнорировал опции серверов имен DNS, которые я установил в/etc/network/interfaces.
то, Чем оказалась проблема, было то, что resolvconf назовет dnsmasq для обновления записей сервера имен в resolv.conf, и затем кажется, что это вышло бы после этого.
я заставил это сохранять записи серверов имен DNS от/etc/network/interfaces путем перемещения моего интерфейса (p+([0-9])p+([0-9])?(_+([0-9]))*
в моем случае) к перед "lo.dnsmasq" записью в/etc/resolvconf/interface-order. Так же теперь вместо того, чтобы получить "сервер имен 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.
Вы можете попробовать сделать chattr неизменяемым.
chattr +i /path/to/filename
Чтобы удалить неизменяемый, чтобы снова разрешить изменения, измените флаг в файле.
chattr -i /path/to/filename