Переключение сервера на статический IP с DHCP

14

Я использую установку сервера Ubuntu 10.04, и мне недавно пришлось переключить его с DHCP на статический ip. Я отредактировал /etc/network/interfacesфайл и переключил

iface eth0 inet dhcp

в

iface eth0 inet static  
address 192.168.1.167  
netmask 255.255.255.240  
network 192.168.1.160  
broadcast 192.168.1.175  
gateway 192.168.1.161

Вы заметите, что IP-адреса немного странные. Это связано с тем, что сервер теперь находится в специальной подсети, предназначенной для изоляции определенных серверов. Я также отредактировал файл resolv.conf, включив в него надлежащие DNS-серверы (включая один из Google на тот случай, если весь ад сломался).

Проблема в том, что, казалось бы, случайно, машина потеряет способность общаться с внешним миром. Я знаю, что машина все еще работает, но она действует так, как будто у нее вообще нет сети. Я думаю, что отчасти проблема заключается в том, что в этой подсети не запущен DHCP (и не будет), и кажется, что dhclient все еще иногда запускается, что вызывает некоторый конфликт (не знаю, что), что приводит к прекращению работы сети. Однако я не могу удалить пакет dhcp3-client, так как это также приводит к удалению пакета ubuntu-minimal, и это будет плохо.

Итак, есть идеи? Что может вызвать dhclient и что я могу сделать, чтобы он не работал?

Enekk
источник
1
пожалуйста, запустите sudo dhcpclient eth0и прокомментируйте, если сеть была нарушена впоследствии. И последние строки, /var/log/syslogесли это возможно
aatdark
ОБНОВЛЕНИЕ Вы можете попробовать sudo ifdown eth0согласно art.ubuntuforums.org/showthread.php?t=1419803
aatdark
@aatdark Если вы запустите ps auxf | less, вы сможете увидеть список процессов, организованных в виде древовидной структуры. Затем вы можете увидеть, какой процесс spwaned dhclient(просто зайдите на ветку); например, на моем компьютере dhclientсын NetworkManagerпроцесса.
Риккардо Мурри

Ответы:

14

Если вы не перезагрузили компьютер с тех пор, это нормальное поведение. Переход с dhcp на статический ip должен быть:

  • sudo ifdown eth0
  • изменить конфигурацию
  • sudo ifup eth0

Причина в том, что если вы делаете ifdown после изменения конфигурации, он ведет себя так, как будто он отключает статический интерфейс, и не убивает процесс dhclient, который будет просто портить вашу конфигурацию. В этом случае просто убейте процесс dhclient

sudo killall dhclient

и все должно получиться.

jneves
источник
2

Как упомянуто jneves , это, вероятно, клиент DHCP, который портит вам жизнь.

В качестве альтернативы sudo ifdown eth0-edit- sudo ifup eth0вы можете просто запустить /etc/init.d/networking restartпосле редактирования файла. Это также имеет то преимущество, что вы можете сделать это удаленно ...

(Не имея достаточного количества баллов по Askubuntu, я не могу просто комментировать ответ jneves, поэтому, пожалуйста, считайте это комментарием ...)

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

Мортен Зибур
источник
Это прекрасно (и рекомендуется), чтобы вы добавили свой ответ с дополнительной информацией, основанной на другом! (Хорошая работа, ссылающаяся на предыдущий ответ тоже)
Хорхе Кастро
Я использовал /etc/init.d/networking restart(на сервере 10.04) после редактирования файла конфигурации - dhclient все еще работал. Мне пришлось вручную убить процесс dhclient (а затем я сделал перезагрузку, чтобы убедиться, что он не возобновится после перезапуска)
HorusKol