今天早上收到 vultr 发来的邮件,说由于被 DDOS 攻击,VPS 被空路由了。该 VPS 上架设了我的另一个服务,需要快速恢复访问。vultr 最长的空路由时间是 24 小时,无法等待那么久。于是想通过快照新建机器的方式快速恢复。
首先在 vultr 后台打开 VPS,新建 snapshot:
vultr 的快照目前是无限量 + 完全免费的。
建议在建立快照的时候将服务器 stop 掉。
等待快照建立完成,然后新建机器,在 server type 当中选择刚刚建立的快照,用相同或更高配置恢复:
恢复完成后,会发现虽然提示 VPS 为 Running,但实际并不能连上。这是由于建立快照的时候原先的服务器处于空路由状态,vultr 把机器空路由时会将机器内部的网络配置文件删掉。所以这里需要手动配置网络。
点击机器上部的 view console,通过在线 vnc 连上 VPS,输入 root 用户名和密码登录。vnc 不受网络中断的影响。
键入ifconfig
,发现这时候网络配置确实只有一个 lo,没有公网 IP:
由于 vultr 对不同 Linux 发行版使用的网络配置方式不同,需要在控制台具体查看你的 Linux 发行版对应的网络配置方式:
这里以 Ubuntu 20.04 为例,使用的是 netplan 配置网络。
输入ip a
命令查看需要配置的公网网卡名称,vultr 的话一般是enp1s0
(注意是数字1
而不是小写字母l
,这地方把我坑了好久):
下面新建以该网卡命名的 netplan 网络配置文件,输入命令:nano /etc/netplan/10-enp1s0.yaml
(也可以使用 vim),输入以下配置,表示由交换机 DHCP 自动配置 IP 地址:
|
|
其中 enp1s0 是刚才查出来以及新建配置文件采用的网卡名称。注意 yaml 的格式比较严格,多一个少一个空格都不行,可以上网搜搜 yaml 的规范。
保存后运行netplan apply
更新网络配置,然后再用ifconfig
查看,发现已经正确配置好网卡并分配到了公网 IP 地址,服务可以通过公网访问,ssh 也能正常连上了。
最后将域名之类的解析到新 VPS 的 IP 就行了,注意将旧的 VPS 删掉,因为 vultr 即使在 VPS 关机状态下仍然会收费。