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


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,该怎么办才能使其停止运行?


1
sudo dhcpclient eth0如果网络随后断开,请运行并发表评论。最后,/var/log/syslog如果可能的话
aatdark

更新您可以sudo ifdown eth0根据art.ubuntuforums.org/showthread.php?t=1419803
aatdark 2010年

@aatdark如果运行ps auxf | less,您应该能够看到以树状结构组织的进程列表。然后,您可以看到什么进程猛增了dhclient(只需向上分支);例如,在我的PC上dhclient就是这个NetworkManager过程的儿子。
Riccardo Murri 2010年

Answers:


14

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

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

原因是,如果在更改配置后执行ifdown,它的行为就像是在关闭静态接口一样,并且不会杀死dhclient进程,而该进程只会继续破坏您的配置。在这种情况下,只需杀死dhclient进程即可

sudo killall dhclient

它应该全部解决。


2

正如jneves所说,可能是DHCP客户端为您搞砸了。

作为sudo ifdown eth0-edit- 的替代方法sudo ifup eth0,您可以运行/etc/init.d/networking restart在编辑文件后。它还具有优势,您可以远程进行操作...

(关于askubuntu的观点不够,我不能只评论jneves的答案,所以请务必将此评论视为...)

编辑:完全忘记了;由于上述命令不会在任何时候断开您的连接,因此您的SSH会话实际上应该在重新加载配置后仍然有效。这相当不错的,以便能够更改网络设置,同时连接到该机械...


非常高兴(并鼓励您)添加自己的答案以及更多基于其他答案的信息!(很好的工作也链接到先前的答案)
Jorge Castro

/etc/init.d/networking restart编辑配置文件后,我正在使用(在10.04服务器中)-dhclient仍在运行。我不得不手动终止dhclient进程(然后重新启动,以确保重新启动后不会再次出现)
HorusKol 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.