小智 53

你也可以使用这个命令:

dhclient -r interface
Run Code Online (Sandbox Code Playgroud)

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

dhclient -r eth0
Run Code Online (Sandbox Code Playgroud)

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

dhclient eth0
Run Code Online (Sandbox Code Playgroud)

来自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.
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,这只会释放租约并取消配置接口。之后不会获得新的IP。 (4认同)

Fre*_*hie 14

以下任何一项都应该让它更新。

/etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)

或者

ifdown eth0; ifup eth0
Run Code Online (Sandbox Code Playgroud)

我不建议通过 SSH 连接运行任何一个,尽管如果第一个没有返回新的 IP 地址,您可能会逃脱。

  • SSH 连接可以容忍几秒钟的“断开连接”,前提是您在几秒钟内在同一 IP 地址上恢复连接。在这些条件下,我在`/etc/init.d/networking restart`期间从未丢失过连接,即使需要超过 5 秒才能恢复...... (2认同)

小智 13

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

ip addr
Run Code Online (Sandbox Code Playgroud)

从选定的接口释放 IP(例如 eth0、eth1、enp1s0、sit0、wlan0、...):

sudo dhclient -r *interface*
Run Code Online (Sandbox Code Playgroud)

从 DHCP 服务器请求新 IP(错误警报):

sudo dhclient -1 *interface*
Run Code Online (Sandbox Code Playgroud)

检查IP:

ip addr
Run Code Online (Sandbox Code Playgroud)

Ubuntu 16.04 LTS 已确认


Tre*_*nis 8

如果接口的MAC地址没有改变,DHCP服务器在更新时可能会为其分配相同的地址。因此,使用 dhclient 进行简单的释放和更新可能无法获取新地址。使用以下命令更改 MAC 地址并获取新的 IP 地址。如果您稍后需要恢复原件,请不要忘记写下原件。

ifconfig <interface> down
ifconfig <interface> hw ether <MAC address>
ifconfig <interface> up
Run Code Online (Sandbox Code Playgroud)

  • 这非常有帮助,谢谢!在我使用该命令将 MAC 地址更改为随机地址之前,没有任何“dhclient -r”或“ifconfig down”为我的工作网络提供了新的 IP 地址。 (2认同)

koe*_*dmj 7

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

dhcpcd -k interface
dhcpcd -n interface
Run Code Online (Sandbox Code Playgroud)

第一个说释放和解除配置接口,第二个说重新加载配置并重新重新绑定接口。