结论:CC 应该是通过类似于全盘镜像的形式,用镜像修改工具,自动化批量替换了网络配置文件,达到了无感更换 IP 地址。
CloudCone 也就是 CC 在一个多月之前开始提醒要更换机房和 IP 了,因为小鸡没太用所以一直没怎么管,今天下午给发来了已经更换 IP 的邮件,所以今天晚上就尝试连接。
刚开始用原 IP 连接发现已经连不上了,于是就到控制台找到了新 IP,然后 ssh 就连上了。测了个速发现下载速度好像没有之前 MC 机房快了,虽然 speedtest 软件里面显示 IP 还是 MC 的,不过具原因还得后面再排查一下。
接着突然想到我没有手动更换新 IP 呀,而且系统也是 DD 的 Debian 官方原版镜像,不存在什么 CC 的外控软件,难道是 DHCP 自动获取了新 IP?于是就找到了网络配置文件位置 /etc/network/interfaces,进去看到配置文件还是 DD 系统的时候写的固定 IP 和网关地址,不过 IP 和网关已经是新的了。
那 CC 是怎么做到迁移之后,在没有登录密码和密钥的情况下,把网络配置文件修改成了新的。接着在 Gemini 的辅助下分析出来,理论上外人确实没有办法远程修改网络配置文件,但是如果有整个系统镜像的话是可以做到的。
root@watergodfm:/etc/network# ls /etc/cloud
ls: cannot access '/etc/cloud': No such file or directory
root@watergodfm:/etc/network# ls /var/lib/cloud
ls: cannot access '/var/lib/cloud': No such file or directory
root@watergodfm:/etc/network# cloud-init --version
-bash: cloud-init: command not found
root@watergodfm:/etc/network# systemctl status cloud-init
Unit cloud-init.service could not be found.
root@watergodfm:/etc/network# ls /etc/cloud/ # 检查配置文件目录
ls /var/log/cloud-init.log # 检查是否存在运行日志
ls: cannot access '/etc/cloud/': No such file or directory
ls: cannot access '/var/log/cloud-init.log': No such file or directory