Як замінити сервер імен, наданий 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.