将服务器从 DHCP 切换到静态 IP

Ene*_*ekk 14 server 10.04 networking dns dhcpd

我正在运行 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
Run Code Online (Sandbox Code Playgroud)

您会注意到 IP 有点奇怪。这是因为服务器现在位于专门用于隔离特定服务器的特殊子网上。我还编辑了 resolv.conf 文件以包含正确的 DNS 服务器(包括 Google 的其中一个,以防万一万一失败)。

问题在于,看似随机,机器将失去与外界对话的能力。我知道这台机器还在运行,但它表现得好像根本没有网络。我认为问题的一部分是没有 DHCP 运行到这个子网(也不会有)并且 dhclient 似乎仍在运行,这会导致某种冲突(不知道是什么),从而导致网络崩溃。但是,我不能删除 dhcp3-client 包,因为它也会导致 ubuntu-minimal 包被删除,这会很糟糕。

那么,有什么想法吗?什么可能在调用 dhclient,我该怎么做才能阻止它运行?

jne*_*ves 14

如果此后您还没有重新启动机器,这种行为是正常的。从 dhcp 更改为静态 ip 应该是:

  • sudo ifdown eth0
  • 更改配置
  • sudo ifup eth0

原因是,如果您在更改配置后执行 ifdown,它的行为就好像它正在关闭静态接口一样,并且不会终止 dhclient 进程,该进程只会继续搞砸您的配置。在这种情况下,只需使用以下命令终止 dhclient 进程

sudo killall dhclient
Run Code Online (Sandbox Code Playgroud)

这一切都应该解决。