Чому dhclient все ще працює, коли я обираю статичний IP?


15

Я змінюю dhcp до статичного в / etc / network / інтерфейсах (як нижче).

# The primary network interface
auto eth0
iface eth0 inet static
netmask 255.255.0.0
address 10.10.130.128
gateway 10.10.1.1

Потім перезапустіть інтерфейс.

$ sudo ifdown eth0; sudo ifup eth0
...
$ ifconfig
eth0      Link encap:Ethernet 
          inet addr:10.10.130.128  Bcast:10.10.255.255  Mask:255.255.0.0

Отже, нова адреса починається.

Але DHCP все ще є?

$ ps aux | grep dhc
root    ... dhclient3 -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases -1 eth0

Це нормально? Якщо ні, то як перезапустити інтерфейс у статичному IP, одночасно зупинивши DHCP?

Дуже дякую.


Відповіді:


22
  1. Спочатку потрібно вимкнути інтерфейс (у режимі dhcp) sudo ifdown eth0
  2. Потім відредагуйте конфігурацію nano /etc/network/interfaces

    # The primary network interface
    auto eth0
    iface eth0 inet static
    netmask 255.255.0.0
    address 10.10.130.128
    gateway 10.10.1.1
    
  3. Піднесіть інтерфейс назад sudo ifup eth0

Інакше dhclientнеправильно вимикається,


1
Вибачте, але чи може хтось детальніше розібратися, чим саме це відрізняється від того, що робиться в ОП? Я читав це три рази і, здається, не можу сказати різниці.
fostandy

Це про зміну ("торкання") файлу, щоб зміна дати? Чи повинен я редагувати файл лише ПІСЛЯ, коли я збив інтерфейс? Якщо так, то як я можу "скасувати" той факт, що я його редагував раніше?
fostandy


1
@Bruno - дякую за уточнення. З цікавості, що робити, якщо ви вже безповоротно відредагували /etc/network/interfacesфайл? Чи є спосіб змусити скинути налаштування за замовчуванням і почати заново?
fostandy

7
Мене збентежило, чому це має змінитись, але тоді розумний мій друг пояснив це дуже приємно. Проблема полягає в тому, що якщо файл редагується, а потім ifdownзапускається, менеджер мережі не знає, що його потрібно зупинити dhclient, оскільки все, що він бачить у interfacesфайлі, є статичним записом. Після цього інтерфейс працює, видаючи ifupправильно зчитується та застосовує статичні параметри, але він також не знає, що dhclientбуло запущено.
парацикл

2

У мене був такий самий випуск (Ubuntu 16.04). Однак це був хмарний екземпляр, і я не міг легко зрушити інтерфейс.

Коротка відповідь: я видалив файл, /etc/network/interfaces.d/50-cloud-init.cfgякщо його викликав саме цей конкретний файл.

Довга відповідь: я налаштував інтерфейс за /etc/network/interfacesдопомогою статичної IP-адреси, але я все-таки виявив у daemon.log, що dhclient все ще вимагає IP-адреси від DHCP, а dhclient запускається через systemd. Зокрема, systemd назвав мережу.service блок, який викликав ifup, який читав як файл інтерфейсів, так і файл 50-cloud-init.cfg. У результаті виникають деякі конфлікти, але все-таки функціональна мережа.


У мене була точно така ж проблема, і я дізнався важкий шлях, що більш пізній файл (як 99-eth0.cfg) дійсно НЕ перекривав попередні заяви! Тож, дякую за ваш внесок;)
Daywalker

1

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

Як тільки я перезапустив свою систему, пристрій перейшов до "некерованого" в NetworkManager, і він перестав намагатися його налаштувати. Можливо, я міг би досягти того самого, просто зупинившись / перезапустивши NetworkManager, я не впевнений.

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