Як замінити сервер імен, наданий DHCP?


13

Я (думаю), що я налаштував статичну IP-адресу в /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

І я змінюю файл, /etc/resolv.confщоб включати потрібні сервери імен.

Потім я перезавантажую мережу sudo /etc/init.d/networking restart

Але через кілька годин resoluv.conf завжди повертається назад до сервера імен DHCP.


Я також повинен сказати, що це сервер Ubuntu з тільки l0та eth0інтерфейсами.


Чи resolvconfвстановлений пакет?
Жил "ТАК - перестань бути злим"

Ви намагаєтесь використовувати dhclient на іншому мережевому інтерфейсі (можливо, інтерфейсі Wi-Fi або комутованому доступі), або dhclient неправильно працює на eth0, хоча це має бути статичним?
poolie

Є тільки eth0 і lo0, IP, який я встановлюю вручну, такий же, як і DHCP IP, який я отримаю (DHCP-сервер завжди буде обслуговувати той же статичний IP). Але я не хочу використовувати сервер імен, наданий сервером DHCP, тому я думав, що я встановлю IP і сам не буде DHCP, але я не розумію, чому резолюція.conf постійно оновлюється.
Девід Паркс

Gilles - ні, я запускав: dpkg -L resolutionvconf, і отримую: Пакет `resolutionvconf 'не встановлений.
Девід Паркс

Відповіді:


35

Якщо ви хочете замінити або додати до серверів імен, запропонованих сервером DHCP, ви можете налаштувати це /etc/dhcp/dhclient.conf, наприклад:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

Це також можна зробити за допомогою елемента "Редагувати з'єднання" в мережевому індикаторі в Unity або GNOME.


4
Це було найкращим рішенням, я розмістив інший варіант, але зрозумів, що встановлення статичного IP-адреси не є хорошою ідеєю в середовищі AWS EC2. :)
David Parks

Що робити, якщо ви хочете додати кілька серверів доменних імен?
dangonfast

Попередній сервер доменних імен, 127.0.0.1схоже, відкидає сервер імен, наданий dhcp (цього не відбувається, попередньо попереджуючи інші сервери імен)
dangonfast

2
Замініть prependна, supersedeщоб повністю перезаписати значення DHCP.
Sqerstet

Дякую. Чи можу я також додати DNS-сервер для всіх інтерфейсів (можливо, за винятком)? Або список інтерфейсів?
ctrl-alt-delor

1

Рішенням, яке вирішить вашу проблему, є налаштування вашого resolvconfпакету. Це надасть перевагу вашим бажаним серверам імен, а також будь-яким іншим бажаним налаштуванням резолюції.conf, таким як пошук та налаштування домену.

Відредагуйте файл: /etc/resolvconf/resolv.conf.d/head

Розмістіть потрібні сервери імен та будь-яку іншу конфігурацію, якій ви хочете скористатися, коли там відбувається зміна мережі. Коли будь-які зміни в мережі відбуваються, конфігурація там завжди матиме перевагу.

Приклад /etc/resolvconf/resolv.conf.d/headфайлу:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

nameserver 8.8.8.8
search mydomain.com

Подивіться на відповідь на подібне запитання:
замініть dns nameserver

Примітка.
Обов'язково проводите подачу ліній після останнього запису. Більшість редакторів надають автоматичну передачу рядків під час збереження файлу.


-2

Я знайшов посилання на видалення клієнта dhcp, я думаю, що це був головний винуватець. Я це зробив і ще не бачив проблеми. Зачекаємо 'до ранку, щоб підтвердити, але виявляється, що клієнт dhcp все ще працював і його потрібно було зупинити та видалити.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd

Я трохи розгублений, якщо рішення було командою prepend або якщо воно фактично видаляло клієнт DHCP.
Євген ван дер Мерве

@EugenevanderMerwe Це команда prepend. Плакат сказав: "Це було найкращим рішенням, я розмістив інший варіант, але зрозумів, що встановити статичний IP - це не дуже вдала ідея в середовищі AWS EC2. :)"
Grammargeek

-3

Як правило, ви завжди повинні видаляти всі мережеві служби, що використовують apt-get --purge remove <package-name>. Таким чином будуть видалені і всі конфігураційні файли.

У цьому випадку командою було б:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

Ця команда повністю видалить isc-dhcp-client.


4
Наскільки це актуально, і чому ви вважаєте, що це хороше загальне правило? Він не хоче припиняти використання DHCP?
poolie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.