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

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

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

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

Я пробовал такие вещи, как делать:

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

И тогда все будет работать временно, и в конечном итоге сервер имен в resolv.conf снова вернется.

PS

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

Поэтому я пытаюсь это сделать: [ ! d9]

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
26
задан 27 August 2011 в 06:23

42 ответа

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

В моем случае /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 binary не установлен, NetworkManager.conf didn У меня есть что-то важное. Но каждый раз, когда я перезапускал машину, не было сервера домена.

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

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

1
ответ дан 25 July 2018 в 21:24

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

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

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

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

12
ответ дан 25 July 2018 в 21:24
  • 1
    Изменения моего сетевого менеджера будут отменены при подключении к любой VPN. Это позволило мне сохранить 8.8.8.8 в списке распознавателей независимо от того, с какой сетью я подключился. – Steven P 21 February 2017 в 22:07

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

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

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

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

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

2
ответ дан 25 July 2018 в 21:24
  • 1
    Я считаю, что вы правы в выпусках DHCP. Вы можете изменить настройки DHCP в сетевом менеджере следующим образом: Запустите nm-connection-editor в своем терминале. Выберите свой интерфейс и нажмите «Изменить». В настройках IPv4 должен быть метод, называемый только DHCP-адресами (или чем-то похожим). Если я не ошибаюсь, это позволит вам получать IP-адреса через DHCP, но не серверы имен (вы можете указать их в полях ниже). – Christian Skjødt 27 August 2011 в 02:45
  • 2
    Я установил свой маршрутизатор для сопоставления MAC-адреса статическим IP-адресам, поэтому аренда DNS длится долгое время. Строка auditctl не работает для меня, и я считаю, что имя службы для Network Manager - network-manager (включает дефис). У меня не было установленного пакета resolvconf, но у меня были вещи внутри папки /etc/resolvconf/, и когда я сравнивал его с другим компьютером Ubuntu, у него его не было, поэтому я установил и удалил пакет, и вручную удалил эту папку. /etc/resolv.conf снова переписана, поэтому я думаю, что получение auditctl для работы было бы очень полезно. – jontsai 27 August 2011 в 06:07
  • 3
    @jontsai Наличие /etc/resolvconf является нормальным, даже если у вас нет пакета resolvconf, некоторые пакеты перехватывают пакеты, и эти перехватчики используются, только если установлен resolvconf. Я исправил строку auditctl, если проблема снова появляется. – Gilles 27 August 2011 в 13:54
  • 4
    Мне понравилась идея пользовательского аудита узнать, что редактирует файл, но похоже, что он запускается после того, как файл уже изменен. – Peter Sankauskas 3 November 2011 в 07:30

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

#!/bin/sh make_resolv_conf(){ }

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

3
ответ дан 25 July 2018 в 21:24

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

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

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

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

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

8
ответ дан 25 July 2018 в 21:24
  • 1
    Это было бы самым чистым решением, но по какой-то причине оно перестало работать над моими системами несколько лет назад. С тех пор я застрял в отключении скрипта resolvconf или chattr + i /etc/resolv.conf. – Tronic 9 July 2013 в 17:57

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

sudo chattr +i /etc/resolv.conf

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

Чтобы отменить вышеуказанное

sudo chattr -i /etc/resolv.conf

Для более

man chattr
4
ответ дан 25 July 2018 в 21:24
  • 1
    это не сработало для меня. Перезапуск сетевого менеджера по-прежнему перезаписывает /etc/resolv.conf с серверами имен DHCP. – Tommy 15 December 2016 в 23:01
  • 2
    работал на меня на виртуальной машине Debian 9 внутри GCP. ура! благодаря! – the0ther 9 August 2017 в 17:38

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

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

, тогда сетевой менеджер отправит свои записи в файл resolv.conf после перезапуска служб или перезапустит ваш ящик.

0
ответ дан 25 July 2018 в 21:24

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

В моем случае /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 binary не установлен, NetworkManager.conf didn У меня есть что-то важное. Но каждый раз, когда я перезапускал машину, не было сервера домена.

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

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

1
ответ дан 31 July 2018 в 10:33

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

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

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

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

12
ответ дан 31 July 2018 в 10:33
  • 1
    Изменения моего сетевого менеджера будут отменены при подключении к любой VPN. Это позволило мне сохранить 8.8.8.8 в списке распознавателей независимо от того, с какой сетью я подключился. – Steven P 21 February 2017 в 22:07

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

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

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

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

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

5
ответ дан 31 July 2018 в 10:33
  • 1
    Я считаю, что вы правы в выпусках DHCP. Вы можете изменить настройки DHCP в сетевом менеджере следующим образом: Запустите nm-connection-editor в своем терминале. Выберите свой интерфейс и нажмите «Изменить». В настройках IPv4 должен быть метод, называемый только DHCP-адресами (или чем-то похожим). Если я не ошибаюсь, это позволит вам получать IP-адреса через DHCP, но не серверы имен (вы можете указать их в полях ниже). – Christian Skjødt 27 August 2011 в 02:45
  • 2
    Я установил свой маршрутизатор для сопоставления MAC-адреса статическим IP-адресам, поэтому аренда DNS длится долгое время. Строка auditctl не работает для меня, и я считаю, что имя службы для Network Manager - network-manager (включает дефис). У меня не было установленного пакета resolvconf, но у меня были вещи внутри папки /etc/resolvconf/, и когда я сравнивал его с другим компьютером Ubuntu, у него его не было, поэтому я установил и удалил пакет, и вручную удалил эту папку. /etc/resolv.conf снова переписана, поэтому я думаю, что получение auditctl для работы было бы очень полезно. – jontsai 27 August 2011 в 06:07
  • 3
    @jontsai Наличие /etc/resolvconf является нормальным, даже если у вас нет пакета resolvconf, некоторые пакеты перехватывают пакеты, и эти перехватчики используются, только если установлен resolvconf. Я исправил строку auditctl, если проблема снова появляется. – Gilles 27 August 2011 в 13:54
  • 4
    Мне понравилась идея пользовательского аудита узнать, что редактирует файл, но похоже, что он запускается после того, как файл уже изменен. – Peter Sankauskas 3 November 2011 в 07:30

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

#!/bin/sh make_resolv_conf(){ }

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

3
ответ дан 31 July 2018 в 10:33

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

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

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

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

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

8
ответ дан 31 July 2018 в 10:33
  • 1
    Это было бы самым чистым решением, но по какой-то причине оно перестало работать над моими системами несколько лет назад. С тех пор я застрял в отключении скрипта resolvconf или chattr + i /etc/resolv.conf. – Tronic 9 July 2013 в 17:57

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

sudo chattr +i /etc/resolv.conf

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

Чтобы отменить вышеуказанное

sudo chattr -i /etc/resolv.conf

Для более

man chattr
4
ответ дан 31 July 2018 в 10:33
  • 1
    это не сработало для меня. Перезапуск сетевого менеджера по-прежнему перезаписывает /etc/resolv.conf с серверами имен DHCP. – Tommy 15 December 2016 в 23:01
  • 2
    работал на меня на виртуальной машине Debian 9 внутри GCP. ура! благодаря! – the0ther 9 August 2017 в 17:38

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

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

, тогда сетевой менеджер отправит свои записи в файл resolv.conf после перезапуска служб или перезапустит ваш ящик.

0
ответ дан 31 July 2018 в 10:33

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

В моем случае /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 binary не установлен, NetworkManager.conf didn У меня есть что-то важное. Но каждый раз, когда я перезапускал машину, не было сервера домена.

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

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

1
ответ дан 2 August 2018 в 03:04

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

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

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

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

12
ответ дан 2 August 2018 в 03:04
  • 1
    Изменения моего сетевого менеджера будут отменены при подключении к любой VPN. Это позволило мне сохранить 8.8.8.8 в списке распознавателей независимо от того, с какой сетью я подключился. – Steven P 21 February 2017 в 22:07

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

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

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

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

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

5
ответ дан 2 August 2018 в 03:04
  • 1
    Я считаю, что вы правы в выпусках DHCP. Вы можете изменить настройки DHCP в сетевом менеджере следующим образом: Запустите nm-connection-editor в своем терминале. Выберите свой интерфейс и нажмите «Изменить». В настройках IPv4 должен быть метод, называемый только DHCP-адресами (или чем-то похожим). Если я не ошибаюсь, это позволит вам получать IP-адреса через DHCP, но не серверы имен (вы можете указать их в полях ниже). – Christian Skjødt 27 August 2011 в 02:45
  • 2
    Я установил свой маршрутизатор для сопоставления MAC-адреса статическим IP-адресам, поэтому аренда DNS длится долгое время. Строка auditctl не работает для меня, и я считаю, что имя службы для Network Manager - network-manager (включает дефис). У меня не было установленного пакета resolvconf, но у меня были вещи внутри папки /etc/resolvconf/, и когда я сравнивал его с другим компьютером Ubuntu, у него его не было, поэтому я установил и удалил пакет, и вручную удалил эту папку. /etc/resolv.conf снова переписана, поэтому я думаю, что получение auditctl для работы было бы очень полезно. – jontsai 27 August 2011 в 06:07
  • 3
    @jontsai Наличие /etc/resolvconf является нормальным, даже если у вас нет пакета resolvconf, некоторые пакеты перехватывают пакеты, и эти перехватчики используются, только если установлен resolvconf. Я исправил строку auditctl, если проблема снова появляется. – Gilles 27 August 2011 в 13:54
  • 4
    Мне понравилась идея пользовательского аудита узнать, что редактирует файл, но похоже, что он запускается после того, как файл уже изменен. – Peter Sankauskas 3 November 2011 в 07:30

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

#!/bin/sh make_resolv_conf(){ }

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

3
ответ дан 2 August 2018 в 03:04

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

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

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

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

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

8
ответ дан 2 August 2018 в 03:04
  • 1
    Это было бы самым чистым решением, но по какой-то причине оно перестало работать над моими системами несколько лет назад. С тех пор я застрял в отключении скрипта resolvconf или chattr + i /etc/resolv.conf. – Tronic 9 July 2013 в 17:57

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

sudo chattr +i /etc/resolv.conf

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

Чтобы отменить вышеуказанное

sudo chattr -i /etc/resolv.conf

Для более

man chattr
4
ответ дан 2 August 2018 в 03:04
  • 1
    это не сработало для меня. Перезапуск сетевого менеджера по-прежнему перезаписывает /etc/resolv.conf с серверами имен DHCP. – Tommy 15 December 2016 в 23:01
  • 2
    работал на меня на виртуальной машине Debian 9 внутри GCP. ура! благодаря! – the0ther 9 August 2017 в 17:38

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

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

, тогда сетевой менеджер отправит свои записи в файл resolv.conf после перезапуска служб или перезапустит ваш ящик.

0
ответ дан 2 August 2018 в 03:04

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

В моем случае /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 binary не установлен, NetworkManager.conf didn У меня есть что-то важное. Но каждый раз, когда я перезапускал машину, не было сервера домена.

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

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

1
ответ дан 4 August 2018 в 18:54

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

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

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

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

13
ответ дан 4 August 2018 в 18:54
  • 1
    Изменения моего сетевого менеджера будут отменены при подключении к любой VPN. Это позволило мне сохранить 8.8.8.8 в списке распознавателей независимо от того, с какой сетью я подключился. – Steven P 21 February 2017 в 22:07

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

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

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

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

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

5
ответ дан 4 August 2018 в 18:54
  • 1
    Я считаю, что вы правы в выпусках DHCP. Вы можете изменить настройки DHCP в сетевом менеджере следующим образом: Запустите nm-connection-editor в своем терминале. Выберите свой интерфейс и нажмите «Изменить». В настройках IPv4 должен быть метод, называемый только DHCP-адресами (или чем-то похожим). Если я не ошибаюсь, это позволит вам получать IP-адреса через DHCP, но не серверы имен (вы можете указать их в полях ниже). – Christian Skjødt 27 August 2011 в 02:45
  • 2
    Я установил свой маршрутизатор для сопоставления MAC-адреса статическим IP-адресам, поэтому аренда DNS длится долгое время. Строка auditctl не работает для меня, и я считаю, что имя службы для Network Manager - network-manager (включает дефис). У меня не было установленного пакета resolvconf, но у меня были вещи внутри папки /etc/resolvconf/, и когда я сравнивал его с другим компьютером Ubuntu, у него его не было, поэтому я установил и удалил пакет, и вручную удалил эту папку. /etc/resolv.conf снова переписана, поэтому я думаю, что получение auditctl для работы было бы очень полезно. – jontsai 27 August 2011 в 06:07
  • 3
    @jontsai Наличие /etc/resolvconf является нормальным, даже если у вас нет пакета resolvconf, некоторые пакеты перехватывают пакеты, и эти перехватчики используются, только если установлен resolvconf. Я исправил строку auditctl, если проблема снова появляется. – Gilles 27 August 2011 в 13:54
  • 4
    Мне понравилась идея пользовательского аудита узнать, что редактирует файл, но похоже, что он запускается после того, как файл уже изменен. – Peter Sankauskas 3 November 2011 в 07:30

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

#!/bin/sh make_resolv_conf(){ }

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

3
ответ дан 4 August 2018 в 18:54

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

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

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

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

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

8
ответ дан 4 August 2018 в 18:54
  • 1
    Это было бы самым чистым решением, но по какой-то причине оно перестало работать над моими системами несколько лет назад. С тех пор я застрял в отключении скрипта resolvconf или chattr + i /etc/resolv.conf. – Tronic 9 July 2013 в 17:57

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

sudo chattr +i /etc/resolv.conf

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

Чтобы отменить вышеуказанное

sudo chattr -i /etc/resolv.conf

Для более

man chattr
4
ответ дан 4 August 2018 в 18:54
  • 1
    это не сработало для меня. Перезапуск сетевого менеджера по-прежнему перезаписывает /etc/resolv.conf с серверами имен DHCP. – Tommy 15 December 2016 в 23:01
  • 2
    работал на меня на виртуальной машине Debian 9 внутри GCP. ура! благодаря! – the0ther 9 August 2017 в 17:38

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

DNS1 = 192.168.XX

DNS2 = 192.168.XX

DOMAIN = yourdomain.com

, тогда сетевой менеджер отправит свои записи в файл resolv.conf после перезапуска служб или перезапустит ваш ящик.

0
ответ дан 4 August 2018 в 18:54

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

В моем случае /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 binary не установлен, NetworkManager.conf didn У меня есть что-то важное. Но каждый раз, когда я перезапускал машину, не было сервера домена.

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

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

1
ответ дан 6 August 2018 в 03:16

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

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

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

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

13
ответ дан 6 August 2018 в 03:16
  • 1
    Изменения моего сетевого менеджера будут отменены при подключении к любой VPN. Это позволило мне сохранить 8.8.8.8 в списке распознавателей независимо от того, с какой сетью я подключился. – Steven P 21 February 2017 в 22:07

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

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