![为什么拔掉网线后IP地址仍然存在?](https://linux22.com/image/1538958/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%8B%94%E6%8E%89%E7%BD%91%E7%BA%BF%E5%90%8EIP%E5%9C%B0%E5%9D%80%E4%BB%8D%E7%84%B6%E5%AD%98%E5%9C%A8%EF%BC%9F.png)
如标题所述,我尝试在 Raspberry pi 3 上使用 Ubuntu 或 Kali。我希望拔出电缆后 IP 地址立即消失。这可能吗?我该如何配置它?
答案1
如果 IP 地址已分配为静态 IP 地址,则在移除电缆后该地址仍将保留。如果 IP 地址由DHCP,你可以改变已获取 IP 地址的系统保留它们的时间,如果你可以配置租期DHCP 服务器上的设置。该设置控制客户端系统尝试刷新其 DHCP 获取的设置的频率。您仍然不会立即释放 IP 地址,但您可以减少系统保留 IP 地址的时间。在 Ubuntu Linux 系统上,您可以使用 dhclient 命令手动释放 DHCP 获取的 IP 地址 dhclient -r
,这样当您拉出电缆时您就可以输入该命令。
答案2
您可以使用 ip 实用程序的监视命令。
ip monitor dev eno2 | grep -qs 'DOWN' if [ $? = 0 ]; echo "the cable is unplugged"
否则也许 ifplugd 或 netplug 之类的工具可能会有所帮助
sudo ip monitor dev eno2 | grep -qs 'DOWN' if [ $? = 0 ]; sudo ip addr flush eno2
/sys/class/net/eno2/operstate
您也可以根据从上到下的字符串进行更改
回答您的评论:您可以在接口关闭时通过在 /etc/network/if-down.d 或 /etc/network/if-post-down.d 中添加脚本来刷新 IP 地址,具体取决于您希望在接口关闭之前还是之后执行脚本。
由于您没有提到它是 ipv4 还是 ipv6,您可以根据内核版本使用 sysctl 工具设置来操纵 ipv6 保留地址或不保留地址的行为。这里
sudo sysctl net.ipv6.conf.eno2.keep_addr_on_down net.ipv6.conf.eno2.keep_addr_on_down = 0
eno2 这是我的第二个网卡