如何使用 dhcpcd 获取新 IP

Kok*_*zzu 2 arch-linux dhcp

我正在使用 64 位 ArchLinux 和dhcpcd。如何使用 检索新IP dhcpcd?我尝试重新启动守护进程,我得到的 IP 地址仍然相同

$ ifconfig
enp3s0: flags ...
   inet xxx ...
$ sudo dhcpcd@enp3s0
$ ifconfig 
enp3s0: flags ...
   inet xxx ... ==> not changed
Run Code Online (Sandbox Code Playgroud)

我试过了sudo dhclient -v -r,但是IP还是一样。

我找到了一种方法,但仍然需要单击系统托盘(断开连接,重新连接):

$ sudo rm /var/lib/dhcpcd/dhcpcd-enp3s0.lease
$ sudo systemctl restart dhcpcd@enp3s0
# right click on the network icon on system tray, disconnect, reconnect
Run Code Online (Sandbox Code Playgroud)

小智 5

您已运行ifconfig查看接口名称,这是一个好的开始。之后,检查以太网电缆是否已插入并正常工作:

[root@splunge ~]# mii-tool enp3s8
enp3s8: negotiated 100baseTx-FD flow-control, link ok
Run Code Online (Sandbox Code Playgroud)

这是来自一个正在运行的 Arch 服务器。您可以使用mii-toolethtool检查连接和电缆。

确定电缆已插入并正常工作后,清除任何dhcpcd仍在运行或挂起的东西:

dhcpcd -k enp3s0
Run Code Online (Sandbox Code Playgroud)

然后,dhcpcd在打开调试消息的情况下运行:

dhcpcd -d enp3s0
Run Code Online (Sandbox Code Playgroud)

来自该调用的消息可能会帮助您决定下一步要做什么。

请注意,我假设您将以su -root 身份登录,但我发现sudo一直使用很麻烦。如果需要sudo,请适当修改上面的命令。

编辑:

我可能误解了你的问题。如果dhcpcd有效,那么它将始终尝试获取上次获得租约时的相同 IP 地址。

您可以通过删除,然后停止并启动该进程来强制dhcpcd获取完全不同的 IP 地址。/var/lib/dhcpcd/dhcpcd-enp3s0.leasedhcpcd