如何强制Linux从DHCP服务器重新获取新IP地址?


Answers:


35

您也可以使用以下命令:

dhclient -r interface

interface您要在哪里获取新地址的设备。

dhclient -r eth0

-r标志强制dhclient首先释放您拥有的任何租约,然后可以使用以下命令来请求新的租约:

dhclient eth0

来自man dhclient

   -r     Tell  dhclient  to  release the current lease it has from the 
          server.  This is not required by the DHCP protocol, but some 
          ISPs require their clients to notify the server if they wish 
          to release an assigned IP address.

这也是一个好方法:)
Frenchie

1
执行此命令后,我的Debian无法获得新IP,但是在重新启动后,我被分配了一个新IP,因此可以正常工作!
Damien

3
对我来说,这仅释放租约并取消配置接口。此后没有获得新的IP。
cgogolin

如果您的主要界面是ssh,那简直是无聊的事
Eric Nord

13

以下任何一种情况都可以使其更新。

/etc/init.d/networking restart

要么

ifdown eth0; ifup eth0

我不建议通过SSH连接运行,尽管如果第一个连接没有提供新的IP地址,您可能会不使用它。


1
SSH连接可以容忍几秒钟的“断开连接”,前提是您可以在几秒钟内使用相同的IP地址恢复连接。在这种情况下,/etc/init.d/networking restart即使在恢复过程花费了5秒钟以上的时间里,我也从未失去过联系……
艾利·佩恩

这不是需要行政特权吗?
彼得·莫滕森

10

会评论p.campbell,但是我只有1个信誉,因此不能,首先我查看安装的接口:

ip addr

从所选接口释放IP(例如eth0,eth1,enp1s0,sit0,wlan0等):

sudo dhclient -r *interface*

从DHCP服务器请求新IP(错误提示):

sudo dhclient -1 *interface*

检查IP:

ip addr

已确认Ubuntu 16.04 LTS


4

如果您正在使用该dhcpcd工具,则:

dhcpcd -k interface
dhcpcd interface

第一个提示停止守护程序,第二个提示再次启动它。


2

如果接口的MAC地址未更改,则DHCP服务器在续订时可以为其分配相同的地址。因此,使用dhclient进行简单的发行和续订可能不会获得新的地址。使用以下命令更改MAC地址并获取新的IP地址。如果您以后需要恢复原样,请不要忘记写下原样。

ifconfig <interface> down
ifconfig <interface> hw ether <MAC address>
ifconfig <interface> up

这很有帮助,谢谢!在我使用工作网络之前,没有数量dhclient -r或没有ifconfig down为我提供新的IP地址,直到我使用该命令将MAC地址更改为随机值。
米格威尔

同样在这里,这应该是官方的答案。
乔纳森·阿尔根蒂罗
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.