更改远程主机 IP 地址而不失去控制 (Linux)

更改远程主机 IP 地址而不失去控制 (Linux)

如何更改远程主机基本的无需断开连接的 IP 地址根本不(不处于“无 IP 地址”状态)。

这个问题在互联网上的讨论很少(根据我的研究)。最好的资源我发现有点棘手。

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

1. ssh [email protected]
2. ip addr add 10.0.0.15/24 dev eth0 
3. logout

4. ssh [email protected]
5. ip addr del 10.0.0.11/24 dev eth0 

问题:最后一个命令将删除两个 IP 地址,并且连接会丢失,因为 10.0.0.11 是主地址,并且在删除时会删除其辅助地址(10.0.0.15 所属的地址)。

我知道我可以通过添加 10.0.0.11/ 来“作弊”25(代替24)。不过,我认为理论上可以正确地做到这一点。

你怎么认为?

答案1

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

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

或者

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

更改eth0all使其适用于所有接口。

该选项已在自2012年6月2日起

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

答案2

因此,程序是我将其更改/etc/sysconfig/network-scripts/ifcfg-en2xxx ,然后运行此命令(以 root 身份):

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

或者

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

目前,我的 CentOS 服务器采用 DHCP,我想在不丢失连接的情况下远程为其提供静态 IP。

相关内容