Мне нужна помощь, чтобы выяснить, почему мои действия resolv.conf
меняются на это, из-за чего я не могу получить доступ к внешнему интернету и только к локальной сети:
$ cat /etc/resolv.conf
nameserver 192.168.16.1
domain localdomain
search localdomain
Я решил исправить это, избавившись от интерфейса обратной связи и добавив интерфейс eth0 в /etc/network/interfaces
инструкции к постерному блогу jontsai .
Я пробовал такие вещи, как делать:
$ sudo ifconfig eth0 down
$ sudo ifconfig eth0 up
$ sudo /etc/init.d/networking restart
$ sudo dhclient
И тогда все будет работать временно, и в конце концов сервер имен в resolv.conf снова вернется.
PS Я также разместил это на 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
источник
resolvconf
пакет? Опубликовать содержимое/etc/network/interfaces
,/etc/NetworkManager/NetworkManager.conf
и/etc/NetworkManager/system-connections/*
.resolvconf
пакета. В какой-то момент мой DSL модем вышел из строя (за маршрутизатором), в то время как моя локальная сеть работала нормально, поэтому я, возможно, попытался установитьnscd
или -dnsmasq
они сейчас удалены, но, возможно, остались некоторые мешающие артефакты?vmnet1
vmnet8
Ответы:
Вы можете сделать статические дополнения к
/etc/resolv.conf
. Эти дополнения могут переопределить вещи, которые добавляются автоматически.Сначала установите
resolvconf
пакет.Затем нажмите Alt + F2 и запустите
gksudo nautilus
. Откройте,/etc/resolvconf/resolv.conf.d/head
если вы хотите добавить в начало файла; откройте,/etc/resolvconf/resolv.conf.d/tail
если хотите добавить в конец. Внесите изменения, сохраните / закройте файлы, а затем запуститеsudo resolvconf -u
чтобы применить изменения.(Извините, что я не помню, имеют ли настройки в начале или конце файла самый высокий приоритет.)
источник
У меня была точно такая же проблема - resolv.conf будет перезаписываться каждый раз при перезагрузке сервера.
Это было вызвано DHCP. Чтобы установить resolv.conf на то, что я хочу, я отредактировал
/etc/dhcp/dhclient.conf
и добавил следующее:На самом деле вы можете контролировать свой файл resolv.conf, внеся в него изменения.
Надеюсь, это поможет.
источник
(Этот ответ содержит способы выяснить, что происходит. Возможно, я смогу дать реальное решение, если вы будете использовать эти методы для сбора и предоставления дополнительной информации.)
Возможный триггер для, казалось бы, спонтанных обновлений
/etc/resolv.conf
- это когда ваша аренда DHCP возобновляется. Проверьте, как долго вы получаете аренду DHCP (это должно появиться в системных журналах, я думаю, в/var/log/syslog
).Вы можете использовать audd, чтобы узнать, что изменяет файл. Запустите daemon (
sudo service auditd start
) и скажите ему, чтобы он следил за изменениями в этом файле:Журналы аудита находятся в
/var/log/audit/audit.log
. Вы увидите время изменения файла и название программы, которая его изменила.Если у вас установлен
resolvconf
пакет, Network Manager может наступить на него. Попробуйте отключить все сетевые интерфейсы, затем остановите Network Manager (sudo service network-manager stop
) и перезапустите его.источник
nm-connection-editor
на своем терминале. Выберите интерфейс и нажмите «Изменить». В настройках IPv4 должен быть метод, называемый только адресами DHCP (или что-то подобное). Если я не ошибаюсь, это позволит вам получать IP-адреса через DHCP, но не на серверах имен (вы можете указать их в полях ниже).auditctl
Линия не работает для меня, и я считаю , что имя службы для Network Manager являетсяnetwork-manager
(включает в себя дефис). У меня не было установленногоresolvconf
пакета, но у меня было что-то внутри/etc/resolvconf/
папки, и когда я сравнивал его с другим компьютером с Ubuntu, у него его не было, поэтому я установил и удалил пакет и вручную удалил эту папку./etc/resolv.conf
только что переписали снова, так что я думаю, что началоauditctl
работы было бы очень полезно./etc/resolvconf
нормально, даже если у вас нетresolvconf
пакета, некоторые пакеты сбрасывают туда хуки, и эти хуки используются только в том случае, если ониresolvconf
установлены. Я исправилauditctl
линию, на случай, если проблема появится снова.Откройте терминал и введите
+ я позаботился о том, чтобы файл не сбрасывался при загрузке даже пользователем root.
Отменить вышеуказанное
Для большего
источник
Еще один вариант, с которым мне посчастливилось использовать
resolvconf
.Добавьте любые записи в этот файл:
И они будут добавлены в
/etc/resolv.conf
.Благодаря этой записи Ask Ubuntu: Как включить строки в resolv.conf, которые не будут потеряны при перезагрузке?
источник
Я отключаю обновление
resolv.conf
, создавая файл с именемdisable_make_resolv_conf
в/etc/dhcp3/dhclient-enter-hooks.d
Он заменяет стандартную функцию с тем же именем, которая отвечает за
resolv.conf
обновление.источник
Поздно, но я опубликую свой случай, так как он отличается от всего вышеперечисленного.
В моем случае,
/etc/resolv.conf
это символическая ссылка/var/run/NetworkManager/resolv.conf
, и по какой-то причинеcat /etc/resolv.conf
выдает мне ошибку, нет такого файла или каталога (может быть, потому что он пуст?)Если я открою его с помощью vi и добавлю,
nameserver x.x.x.x
он работает, но очищается при перезагрузке.Я пытался редактировать
/etc/network/interfaces
и добавлятьdns-nameservers x.x.x.x
, изменял/etc/dhcp/dhclient.conf
и удалял подrequest
domain-name-servers
, тоже редактировалprepend domain-name-servers x.x.x.x
.Resolvconf бинарный не установлен,
NetworkManager.conf
не имеет ничего релевантного. Но каждый раз, когда я перезагружал машину, не было сервера домена.Я не уверен, в чем причина, но, похоже, это связано с тем фактом, что это машина VBox, запущенная GNS3, и из-за этого в настройках VBox я должен оставить ее без созданного интерфейса. Очевидно, GNS3 создает «интерфейс UDP» на лету, когда я запускаю машину, при условии, что я запускаю ее с GNS3.
Таким образом, чтобы спасти меня от поиска бесконечно, я просто добавил
echo nameserver x.x.x.x> /etc/resolv.conf
к/etc/profile
, проблема решена (не решена, но работал вокруг хе - хе). Но было бы интересно узнать, что происходит с этим сценарием, если кто-то столкнется с ним.источник
Если у вас есть файл
/etc/NetworkManager/NetworkManager.conf
вы можете настроить NetworkManager, чтобы он перестал сбрасывать resolv.conf с помощью
Теперь вручную измените ваш
/etc/resolv.conf
и проверьте его постоянство сИсточник: https://askubuntu.com/a/623956/452398
источник
Просто сделайте записи в ваших файлах ifcfg-ethX примерно так
DNS1 = 192.168.xx
DNS2 = 192.168.xx
DOMAIN = yourdomain.com
затем сетевой менеджер опубликует ожидающие эти записи в файле resolv.conf после перезапуска служб или перезапуска вашего ящика.
источник
На всякий случай, если кто-то попадет в тот же случай:
Я забыл установить dhcp на интерфейс внутри файла
/etc/network/interfaces
Networkmanager изменит
/etc/resolv.conf
ответ от DHCP, который он получает.НТН
источник
Когда есть
# Generated by NetworkManager
в/etc/resolv.conf
Редактировать конфигурацию Network Manager:
в
[main]
разделе добавитьrc-manager=unmanaged
:Зачем?
Ссылка на конфигурацию для получения дополнительной информации: https://developer.gnome.org/NetworkManager/stable/NetworkManager.conf.html
Затем отредактируйте ваш
/etc/resolv.conf
и перезапустите Network Manager, чтобы увидеть, если он/etc/resolv.conf
остается нетронутым:или
чем:
Если процедура завершилась неудачно и
/etc/resolv.conf
была перезаписана при перезапуске Network Manager, попробуйте добавитьdns=none
в[main]
раздел конфигурации, как указано в https://askubuntu.com/a/1150326/364772.источник