这篇文章上次修改于 590 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
背景
公司里的公网IP端口转发到某个固定IP地址,然后有一阵子这台机器一直关机,所以IP地址被人抢占了,导致后面用的时候公网转发经常断
正常来说需要解决这个问题,就得直接@全公司人排查谁占用了这个ip,然后让他换个地址
不过这样太麻烦了,而且好多人估计都不会看自己的IP地址(我自己也不想去@全公司人)
遂搜了一下有啥办法硬性抢回ip,只要我一直把这个ip占着,那个人没法上网,就会自己主动去换地址了
原理
- 强制刷新局域网的mac表,更新局域网内所有邻居的mac表,这样所有人就都只认识我,而不认识另一个人
实现方法
现在你和对方都有同样的IP地址,你需要做的就是告诉你们所有的邻居,通过这个IP访问你,而不是另一个抢占IP的人。
使用arp强制更新局域网内所有主机的MAC表。
arping -U -s 172.x.x.155 -I eth0 172.x.x.1
# -U 是发起主动的ARP报文请求
# -s 指明ARP报文中的source ip地址。这个参数后跟你要抢占的IP地址即可。
# -I 指定网卡名字。这个自己看下抢占的IP地址,用的是哪张网卡。
# 最后一个参数是局域网的网关IP地址。
结局
我在该机器上用 nohup 后台 无限循环 执行这条命令,很快就没人和我抢这个ip了,非常的好用