昨天我在数据中心快速重新安装了(物理)服务器,由于我的时间很短,并且没有轻松访问我们的数据库,我只是为它分配了一个我知道可用的IP,并允许我以后访问分配正确的地址,并从温暖的地方继续供应.
今天我登录服务器(172.16.130.10/22)并执行以下操作:
ip addr add 172.16.128.67/22 dev eth0
从我本地工作站上的终端我检查它响应ping新地址并通过它登录:
$ping 172.16.128.67 PING 172.16.128.67 (172.16.128.67) 56(84) bytes of data. 64 bytes from 172.16.128.67: icmp_req=2 ttl=62 time=3.61 ms 64 bytes from 172.16.128.67: icmp_req=3 ttl=62 time=4.87 ms ^C $ssh 172.16.128.67
到目前为止一切顺利,我通过新的IP地址连接,旧的IP地址不再需要.我继续把它删除了:
ip addr del 172.16.130.10/22 dev eth0
但是当我点击Enter时,我的SSH会话冻结,我无法再连接.我不得不请求现场运算符为我重启服务器.
我哪里做错了?为什么删除该地址会导致我的连接中断?
解决方法
在Linux中,IP地址具有“主要”和“次要”地址的概念.主要通常是您添加到系统的第一个地址.删除主地址还具有刷新整个辅助地址列表的隐式操作.
您可以通过将sysctl net.ipv4.conf.all.promote_secondaries设置为1来避免此行为,如下所示:
sysctl -w net.ipv4.conf.all.promote_secondaries=1
这会改变行为,以便在删除主IP时,它不会刷新剩余的地址,而是将新的IP地址作为主要IP地址.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。