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

Я использую установку сервера 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, и это было бы плохо.

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

14
задан 20 November 2010 в 20:19

2 ответа

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

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

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

sudo killall dhclient

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

0
ответ дан 20 November 2010 в 20:19

Как упомянуто jneves, это - вероятно, клиент DHCP, портящий вещи для Вас.

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

(Не имеющий достаточно точек на askubuntu, мне не разрешают просто прокомментировать ответ jneve, поэтому считайте это комментарием...),

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

2
ответ дан 20 November 2010 в 20:19

Другие вопросы по тегам:

Похожие вопросы: