在不失去控制的情况下更改远程主机IP地址(Linux)


10

我怎样才能改变一个远程主机的 IP地址,而不会断开所有(没有“无IP地址”状态)。

根据我的研究,此事在Internet上讨论不多。我发现的最佳资源有些棘手。

示例:将10.0.0.11/24更改为10.0.0.15/24

1. ssh root@10.0.0.11
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh root@10.0.0.15
5. ip addr del 10.0.0.11/24 dev eth0 

问题:由于10.0.0.11是主要地址,所以最后一个命令将同时删除IP地址和连接丢失,并且在删除后会删除其辅助地址(10.0.0.15属于该地址)。

我知道我可以通过添加10.0.0.11/ 25(而不是24)来“作弊” 。但是,我认为从理论上讲是可以做到的。

你怎么看?


如果您使用/ 32遮罩,那就没有作弊...
zb'13年

但它不起作用,因为/ 32除自身外无法与其他任何设备进行通讯……
Totor 2013年

好的,但是/ 25也不行。
zb'13年

Answers:


11

您需要promote_secondaries在接口或所有接口上设置该选项:

echo 1 > /proc/sys/net/ipv4/conf/eth0/promote_secondaries

要么

sysctl net.ipv4.conf.eth0.promote_secondaries=1

进行更改eth0all使其在所有接口上均可工作。

此选项自2.6.12开始

我用一个虚拟接口进行了测试,并在那里工作。


正是我需要的,谢谢!参见原始提交
Totor

1
请注意,此选项自2.6.12开始 2.6.16 之前可用。
Totor
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.