如何更改远程主机基本的无需断开连接的 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
更改eth0
为all
使其适用于所有接口。
该选项已在自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。