ИСТОРИЯ ---------------------------------------------------------------

ИСТОРИЯ ---------------------------------------------------------------

У меня есть Linux-бокс с настроенным статическим IP, который, кажется, работает нормально. Статический IP-адрес работает несколько часов, а затем возвращается к (что похоже) тому, что DHCP ему говорит использовать.

Вот мой /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 10.0.0.101
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.254

Есть идеи?

решение1

У меня та же проблема на Ubuntu Server, но я думаю, что мне удалось ее решить. Когда я перезапускаю сеть, dhclient3 все еще работает. Глядя на него из htop, в его аргументах есть «eth0», поэтому я подозреваю, что он все еще ищет обновления dhcp для eth0. Мне не удалось удалить dhcp-client с помощью apt-get, поэтому я запустил:

sudo kill $(ps -aux | grep dhc | grep eth0 | awk '{print $2}')

ВНИМАНИЕ: Этот код может убить другие вещи на вашем сервере! Не торопитесь и замените «eth0» на имя интерфейса, для которого вы установили статический IP! Либо убейте dhclient ИЛИ dhclient3 для вашего интерфейса через htop.

решение2

У меня была та же проблема. Демон dhclient сошел с ума. Нужно поработать над проверками работоспособности. Должно быть что-то вроде этого:

  • Найдите существующую информацию об аренде (/var/lib/dhcp/*)
  • Проверьте все интерфейсы для конфигурации DHCP (/etc/network/interfaces)
  • Если интерфейс настроен статически, очистите информацию об аренде DHCP и игнорируйте интерфейс на время выполнения.
  • Если интерфейс не настроен статически и имеет существующую информацию об аренде, обновите ее соответствующим образом.
  • Если интерфейс не настроен статически и не имеет существующей информации об аренде, выполните соответствующее обнаружение.

ИСТОРИЯ ---------------------------------------------------------------

Пока проблема сохранялась, я стал свидетелем заполнения /var/log/syslog следующей строкой:

May  3 06:25:36 xxxxxx dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67

Процесс dhclient работал в фоновом режиме, что подтверждается командой «ps aux | grep dhc».

Убедившись в правильности настройки статического IP для eth0 в '/etc/network/interfaces', я перезапустил сетевую службу. После перезапуска сетевой службы статический IP сохранялся до тех пор, пока срок аренды не достигал половины срока, после чего dhclient обновлял ранее назначенный DHCP адрес, который был получен при начальной настройке системы. Эта информация хранится в '/var/lib/dhcp/*'.

Такое поведение было замечено на трех системах, над которыми я работал в последние несколько дней. Информация о системе:

# cat /etc/issue.net
Debian GNU/Linux 7
# cat /proc/version
Linux version 3.2.0-4-amd64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.68-1+deb7u1
# dhclient -version
Internet Systems Consortium DHCP Client 4.2.2

РАЗРЕШЕНИЕ -----------------------------------------------------------

Примечание: выполняйте команду как пользователь root или добавляйте sudo к каждой команде.

# dhclient -r
# dhclient -x
# rm /var/lib/dhcp/* 
# shutdown -r 0

Результат: процесс dhclient не запустился автоматически вместе с системой, «ifconfig» показывает, что eth0 был правильно настроен со статическим IP-адресом, syslog очищен от спама DHCP, и изменение сохраняется после нескольких перезагрузок системы.

ВНИМАНИЕ: Мои системы зависят от статически назначенного IP-адреса для корректной работы. Если вы применяете это исправление к ноутбуку, это, скорее всего, нарушит подключение к Wi-Fi.

Связанный контент