Linux

在不失控的情況下更改遠端主機 IP 地址(Linux)

  • June 10, 2021

如何在完全不斷開連接的情況下更改遠端主機IP 地址(不處於“無 IP 地址”狀態)。

這件事在網際網路上討論得很少(根據我的研究)。我找到的最好的資源有點棘手。

範例:將 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 

*問題:*最後一個命令刪除了兩個 IP 地址並且連接失去,因為 10.0.0.11 是主要的,並且在刪除時它會刪除其輔助地址(10.0.0.15 所屬的)。

我知道我可以通過添加 10.0.0.11/ 25(而不是24)來“作弊”。但是,我認為理論上可以正確地做到這一點。

你怎麼看?

您需要promote_secondaries在介面上或所有介面上設置選項:

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

或者

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

更改eth0all使其適用於所有介面。

此選項自 2.6.12 以來一直存在。

我用一個虛擬介面對此進行了測試,它在那里工作。

所以程序是我改變它/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。

引用自:https://unix.stackexchange.com/questions/61093