Вопрос Как добавить DNS-сервер через resolv.conf?


Является /etc/resolv.conf бесполезен в Ubuntu 12.04 LTS (Точный панголин)?

Я вижу, что информация DNS-сервера хранится в Сетевой менеджер Теперь. nmcli инструмент командной строки может указать это для вас.

Если я хочу добавить еще один DNS сервера, добавит его в /etc/resolv.conf используя resolvconf пакет помощи?


192
2018-05-03 00:00


происхождения


Я думаю, что упомянутая выше команда должна быть nm-tool, а не nmcli, - Jesse Glick


ответы:


Если /etc/resolv.conf содержит nameserver 127.0.0.1 затем добавление записей в /etc/resolvconf/resolv.conf.d/tail на самом деле ничего не принесет.

Если вы используете NetworkManager, вам следует вместо этого статически добавлять адреса серверов имен через индикатор сети: Изменить соединения ... | Изменить ... | Настройки IPv4 | Дополнительные DNS-серверы,

если ты действительно хотите добавить больше записей в /etc/resolv.conf, создать /etc/resolvconf/resolv.conf.d/tail и добавьте их туда.

Как и в каждом выпуске Ubuntu, рекомендуется прочитать примечания к выпуску Ubuntu, доступные здесь:

Секции Desktop и Common Infrastructure содержат ссылку на


130
2018-05-03 00:21



@stgraber, прокомментируйте альтернативный подход, который я нашел и разместил ниже. Как это соотносится с добавлением /etc/resolvconf/resolv.conf.d/tail файл или с помощью Network Manager? Благодарю. - Randall Cook
@stgraber Что вы рекомендуете для Ubuntu Server? Я заметил из вашего блога и комментариев, что Network-Manger, по-видимому, лучший способ справиться с этим, но установка сетевой диспетчера в моей системе будет устанавливать целую кучу вещей, которые мне не нужны (например, GUI-файл ). - Avery Chan
Какой бой добавляет записи в /etc/resolvconf/resolv.conf.d/head (согласно вашему блогу)? - sup
@AveryChan, используйте «третий подход», предложенный @ randallcook - просто добавьте dns-nameservers к вашему разделу eth0 в /etc/network/interfaces, - mrm
/etc/resolvconf/update.d/libc на сервере Ubuntu 14.04.1: # Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no  # to allow additional nameserver addresses to be listed in  # resolv.conf after an initial loopback address 127.* or ::1.  (установите его в /etc/default/resolvconf, так как строка 23 и 24 /etc/resolvconf/update.d/libc показать. - immeëmosol


Я нашел другой подход Вот что включает в себя добавление строки, как показано ниже /etc/dhcp/dhclient.conf:

prepend domain-name-servers x.x.x.x, y.y.y.y;

Аналогичным образом, я нашел третий подход Вот что предполагает добавление строк в /etc/network/interfaces:

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Обновление: вот официальная документация для третьего подхода.


128
2018-05-08 22:48



Я голосовал за это, потому что third approach на сегодняшний день является самым простым способом сделать это. - Billy Moon
@billy Я не мог заставить третий метод работать вообще. Только первый, указанный здесь, редактируя dclient.conf, работал для меня. - Jeff Atwood
Примечание. Редактирование dhclient.conf имеет какой-либо эффект, если используется dhclient (и используется как ifup, так и NetworkManager!) Редактирование / etc / network / interfaces имеет какой-либо эффект, если ifup используется. Настройка соединений NetworkManager с использованием редактора соединений NetworkManager оказывает влияние только на NetworkManager. - jdthood
Если я не ошибаюсь, третий подход добавляет другой сервер имен ПОСЛЕ тех, которые возвращаются DHCP. Если вы хотите, чтобы он появился первым, один из других вариантов более уместен. я использовал /etc/resolvconf/resolv.conf.d/head (после преодоления вводящего в заблуждение комментария «НЕ ИЗМЕНИЙ») :)) - starfry
@ Mr.Hyde, это не команды командной строки, это строки для добавления в / etc / network / interfaces. - Randall Cook


Похоже, вы говорите о пакете resolvconf.

Установите Resolvconf пакет.

Бег

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

Верх файла является страшным предупреждением. Файл /etc/resolv.conf автогенерируется из содержимого этого файла; предупреждение есть, поэтому он будет вставлен в /etc/resolv.conf при создании /etc/resolv.conf. В конец файла добавьте

nameserver <ip_of_nameserver>

Нажмите Ctrl  Икс и ответьте да, чтобы сохранить файл. Чтобы закончить, регенерируйте файл /etc/resolv.conf, чтобы изменения были применены прямо сейчас:

sudo resolvconf -u

Затем проверьте содержимое файла /etc/resolv.conf, чтобы увидеть добавленную вами строку. Кроме того, он все равно будет в следующий раз, когда ваш компьютер загрузится или ваш сетевой сервис будет перезагружен, в зависимости от того, что наступит раньше.


85
2018-06-30 23:41



Информация о предупреждении файла - это то, что мне нужно. У меня создалось впечатление, что я не должен редактировать файл! Благодаря! - Xunnamius


Ниже я покажу вам лучший способ, который я нашел с момента запуска версии Ubuntu Server, и используйте ifup, а не NetworkManager.

На самом деле для меня это упростило :), поместив все это в файл / etc / network / interfaces. Те же конфигурации, которые вы написали бы в resolv.conf, теперь могут быть в том же файле, что и конфигурации вашего сетевого адаптера, как в приведенном ниже примере:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Я надеюсь, что это поможет и упростит мою работу, теперь мы можем создавать статические IP-адреса и добавлять в серверы имен и домен dns все в одном файле :)


29
2018-05-23 22:55



Спасибо. Это стало моим любимым методом. Замечание, не относящееся к теме: нет необходимости указывать адреса «сети» и «трансляции», поскольку они автоматически вычисляются из «адреса» и «сетевой маски». Все, что вам действительно нужно, это «адрес», «сетевая маска» и «шлюз». - Martijn Heemels
Это самый чистый ответ. Просто убедитесь, что правильно заданы слова dns- *. Ошибочным «DNS-сервером имен» была моя проблема. - John McGehee


Mine запускает Ubuntu Server 12.04. Я внедрил следующие изменения и перезагрузил сервер (обычно это можно сделать, только снижая сетевой интерфейс, ifdown eth0или ifup eth0).

В файле /etc/resolvconf/resolv.conf.d/base Я добавил следующие записи:

nameserver 8.8.8.8
nameserver 8.8.4.4

Я надеюсь, что это помогает!


16
2018-03-19 05:56





Вы можете использовать NetworkManager, как указано в ответе Фрэнка, но если вы предпочитаете вручную редактировать /etc/resolv.conf, вы можете сделать это, удалив его (это фактически символическая ссылка), а затем создайте новый простой файл с нужным контентом. resolvconf утилита только записывает в файл /run/resolvconf/resolv.conf,


11
2018-05-04 14:38





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

Это работает до 12.04:

редактировать /etc/dhcp3/dhclient.conf и добавить :
prepend domain-name-servers 127.0.0.1;

(Фактически, эта строка уже присутствует, все, что вам нужно сделать, это не комментировать ее.)


8
2018-03-06 20:26



Это работает, если у вас нет адресов, назначенных DHCP? - Azendale
Если вы хотите узнать больше о конфигурации dhclient, вы можете сделать man dhclient.conf для доступа к странице man dhclient. (Это не ответ на вопрос Азендейла.) - Christian Skjødt
Этот ответ совершенно неверен. Прежде всего, участник вопроса хочет добавить адрес внешнего namserver, а не адрес 127.0.0.1. Конфигурация интерфейса для внешнего интерфейса не является местом для добавления адреса для внутреннего сервера имен. Во-вторых, файл находится в / etc / dhcp, а не в / etc / dhcp3. В-третьих, поскольку Ubuntu 12.04 такие вещи настраиваются с помощью resolvconf. - jdthood
Прежде всего - исходный вопрос был резко изменен путем слияния модераторов, поэтому мой ответ, конечно, выглядит странно. Файл dhcp3 был местом, где я ответил на это в 2011, и даже если это не идеально, это сработало. Я использовал это решение на нескольких машинах. Очевидно, вы измените адрес loopback на тот, который хотите добавить. Я предполагаю, что большинство людей знают, что такое loopback, даже если они не читают RFC6890. - belacqua
@jdthood Почему бы вам не добавить свой собственный ответ? Лично я не был знаком с способом bsd-ish resolvconf делать вещи. Я предпочел прямой подход /etc/resolv.conf, и я не уверен, в чем преимущество новой системы Rube Goldberg. (Аналогично с / etc / motd). - belacqua