resolv.conf продолжает сбрасываться чем-то

Я нуждаюсь в помощи, выясняя почему мой resolv.conf продолжает изменяться на это, заставляя меня не смочь получить доступ к внешнему Интернету и только локальной сети:

$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain

Я думал, что зафиксировал его путем избавления от петлевого интерфейса и добавления в интерфейсе eth0 в /etc/network/interfaces с инструкциями относительно блога posterous jontsai.

Я попробовал вещи как выполнение:

$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ sudo /etc/init.d/networking restart
$ sudo dhclient

И затем вещи работали бы временно, и в конечном счете сервер имен в resolv.conf вернуться снова.

P.S. Я также отправил это на ubuntuforums.


Править: Существует по крайней мере еще одна программа помимо NetworkManager, в который это пишет resolv.conf, и я знаю это потому что, когда я обновляю NetworkManager, resolv.conf файл, который сгенерирован, имеет комментарий, в котором говорится # Generated by NetworkManager, и версия, на которую это продолжает изменяться, не делает.

Таким образом, я пробую это:

while true; do echo listening; lsof | grep /etc/resolv.conf; echo sleeping; sleep 1; done


Редактирование 2:

Добавление вывода файлов:

$ cat /etc/network/interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Никакой такой файл как /etc/NetworkManager/NetworkManager.conf

$ sudo cat /etc/NetworkManager/system-connections/Auto\ Ethernet 

[connection]
id=Auto Ethernet
uuid=#######omitted#######
type=802-3-ethernet
autoconnect=true
timestamp=1314377063

[ipv4]
method=auto
ignore-auto-routes=false
ignore-auto-dns=false
dhcp-send-hostname=false
never-default=false

[802-3-ethernet]
speed=0
duplex=full
auto-negotiate=true
mtu=0

[ipv6]
method=ignore
ignore-auto-routes=false
ignore-auto-dns=false
never-default=false
34
задан 26 August 2011 в 18:23

12 ответов

Вы можете сделать статические дополнения к /etc/resolv.conf. Эти дополнения могут переопределять автоматически добавляемые вещи.

Сначала установите пакет resolvconf.

Затем нажмите Alt+F2 и запустите gksudo nautilus. Откройте /etc/resolvconf/resolv.conf.d/head, если хотите добавить в начало файла; откройте /etc/resolvconf/resolv.conf.d/tail, если хотите добавить в конец. Внесите изменения, сохраните/закройте файлы, а затем запустите sudo resolvconf -u, чтобы применить изменения.

(К сожалению, я не помню, имеют ли настройки в начале или в конце файла наивысший приоритет.)

16
ответ дан 23 November 2019 в 00:53

(В этом ответе содержатся способы исследования происходящего. Я могу дать реальное решение, если вы используете эти методы для сбора и предоставления дополнительной информации.)

Возможным триггером для, казалось бы, спонтанных обновлений /etc/resolv.conf является момент, когда DHCP-аренда обновляется. Проверьте, на какой период времени вы получаете DHCP-аренду (это должно появиться в системных журналах, я думаю, в /var/log/syslog).

Вы можете использовать auditd Install auditd для того, чтобы узнать, что изменяет файл. Запустите демона (sudo service auditd start) и скажите ему, чтобы он следил за изменениями в этом файле:

sudo auditctl -w /etc/resolv.conf -p w

Audit logs находятся в /var/log/audit/audit.log. Вы увидите время, когда файл был изменен, и имя программы, которая его модифицировала.

Если у вас установлен пакет resolvconf, Network Manager может наступать на ноги. Попробуйте выключить все сетевые интерфейсы, затем остановить сетевой менеджер (sudo service network-manager stop), затем перезапустить его.

9
ответ дан 23 November 2019 в 00:53

Я отключаю обновление разрешения -to. conf, создав файл с именем disable_make_resolv_conf в /etc/dhcp3/dhclient-enter-hooks.d

#!/bin/sh
make_resolv_conf(){
}

Он заменяет стандартную функцию тем же именем, которое отвечает за обновление resolv.conf.

4
ответ дан 23 November 2019 в 00:53

У меня была точно такая же проблема - resolv.conf переписывался каждый раз при перезагрузке сервера.

Это было вызвано DHCP. Чтобы установить resolv.conf таким, каким я хочу его видеть, я отредактировал /etc/dhcp/dhclient.conf и добавил следующее:

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

Фактически, вы можете немного контролировать свой файл resolv.conf. внесением изменений в это.

Надеюсь, это поможет.

8
ответ дан 23 November 2019 в 00:53

Откройте терминал и введите

sudo chattr +i /etc/resolv.conf

+ i позаботится о том, чтобы файл не сбрасывался при загрузке даже с правами root.

Для отмены вышеуказанного

sudo chattr -i /etc/resolv.conf

Подробнее

man chattr
5
ответ дан 23 November 2019 в 00:53

Другой вариант, который мне повезло, связан с использованием resolvconf.

Добавьте любые записи в этот файл:

/etc/resolvconf/resolv.conf.d/base

И они будут добавлены в /etc/resolv.conf.

Благодаря этой записи Ask Ubuntu: Как включить строки в resolv.conf, которые не потеряются при перезагрузке?

3
ответ дан 23 November 2019 в 00:53

Поздно, но я опубликую свой случай, поскольку он отличался от всего вышеперечисленного.

В моем случае /etc/resolv.conf является символической ссылкой на /var/run/NetworkManager/resolv.conf и по какой-то причине cat / etc /resolv.conf выдает ошибку: нет такого файла или каталога (может быть, потому что он пуст?)

Если я открою его с помощью vi и добавлю сервер имен xxxx , он будет работать, но очищается при перезагрузке.

Я попытался отредактировать / etc / network / interfaces и добавить dns-nameservers xxxx , изменить /etc/dhcp/dhclient.conf и удалить в запрос серверы доменных имен , также отредактированный , добавление серверов доменных имен xxxx [1170 403].

Двоичный файл Resolvconf не установлен, NetworkManager.conf не содержит ничего важного. Но каждый раз, когда я перезагружал машину, сервер домена отсутствовал.

Я не уверен, в чем причина, но похоже, что это связано с тем, что это машина VBox, запущенная GNS3 и из-за этого внутри Настройка VBox, я должен оставить его без создания интерфейса. Очевидно, GNS3 создает «интерфейс UDP» на лету, когда я запускаю машину, при условии, что я запускаю его из GNS3.

Итак, чтобы избавить меня от бесконечного поиска,Я только что добавил сервер имен echo x.x.x.x> /etc/resolv.conf в / etc / profile , проблема решена (не решена, но обошлось, хе-хе). Но было бы интересно узнать, что происходит с этим сценарием, если бы кто-нибудь с ним столкнулся.

1
ответ дан 23 November 2019 в 00:53

Просто сделайте записи в вашем ifcfg -ethX, например

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

, тогда сетевой менеджер отправит отложенные эти записи в файл resolv.conf после перезапуска службы или перезагрузите компьютер.

0
ответ дан 23 November 2019 в 00:53

Если у вас есть файл / etc /NetworkManager/NetworkManager.conf

cat /etc/NetworkManager/NetworkManager.conf

вы можете настроить NetworkManager так, чтобы он останавливал сброс resolv.conf с помощью

sudo sh -c 'echo "
[main]
dns=none
" >> /etc/NetworkManager/NetworkManager.conf'
cat /etc/NetworkManager/NetworkManager.conf

. Теперь вручную измените свой /etc/resolv.conf и проверьте его постоянство с помощью

sudo systemctl restart NetworkManager
# sudo service network-manager restart
cat /etc/resolv.conf

Источник: https://askubuntu.com/a/623956/452398

1
ответ дан 23 November 2019 в 00:53

На случай, если кто-то попадет в такой же случай:

Я забыл, что установил dhcp на интерфейсе внутри файла / etc / network / interfaces

Networkmanager изменит /etc/resolv.conf из полученного ответа dhcp.

hth

0
ответ дан 23 November 2019 в 00:53

Когда есть # Создано NetworkManager в /etc/resolv.conf

Изменить конфигурацию Network Manager:

sudo vim /etc/NetworkManager/NetworkManager.conf

в [main] раздел добавить rc-manager = unmanaged :

[main]                                                                                                                                   
rc-manager=unmanaged

Почему?

rc-менеджер - Установите режим управления resolv.conf. Значение по умолчанию зависит от параметров сборки NetworkManager, и эта версия NetworkManager была построена со значением по умолчанию «символическая ссылка».

(...)

неуправляемый : не трогайте / etc / resolv.conf .

Ссылка на конфигурацию для получения дополнительной информации: https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html

Затем отредактируйте свой / etc / resolv.conf и перезапустите Network Manager, чтобы увидеть, остается ли /etc/resolv.conf нетронутым:

sudo systemctl restart NetworkManager

или

sudo service network-manager restart

, чем:

cat /etc/resolv.conf

Если процедура завершилась неудачно и / и т. /resolv.conf был перезаписан во время перезапуска Network Manager. Попробуйте добавить dns = none в раздел [main] в конфигурации как https://askubuntu.com/a / 1150326/364772 сказал

0
ответ дан 23 November 2019 в 00:53

для меня файл, который был изменен, был sudo nano /etc/systemd/resolved.conf а здесь /run/systemd/resolve/resolv.conf[1267 visiblei изменил его на 8.8.8.8 на основе поиска в Google.

0
ответ дан 5 January 2021 в 23:51

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

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