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

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

我正在运行 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,我该怎么做才能阻止它运行?

答案1

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

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

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

sudo killall dhclient

一切都会顺利。

答案2

正如所提到的伊内夫斯,这可能是 DHCP 客户端把事情搞乱了。

sudo ifdown eth0作为-edit-的替代方法sudo ifup eth0,您可以/etc/init.d/networking restart在编辑文件后直接运行。它还有一个优点,就是您可以远程执行此操作...

(askubuntu 上的积分不够,我不能只对 jneves 的回答发表评论,所以请将此视为评论......)

编辑:完全忘记了;由于上述命令不会随时断开您的连接,因此您的 SSH 会话实际上应该在重新加载配置后继续存在。它在连接到所述机器时能够更改网络设置非常好......

相关内容