本篇文章记录了救援与重新配置服务器组的全过程,作为自己的备忘录。

起因

起初我原计划是就在家呆一个星期,一个星期后回学校,所以只充了一百的电费。但由于武汉封城,在家呆了两个月,学校电费终于耗尽。由于只能用电费卡充电费,无法远程用支付宝/微信充值,在电费用完后,我断开了与黑群晖的通信。由于我的appnode控制面板是放在黑群晖上的,并且我所有服务器都是关闭了22端口,最终我也失去了对我所有服务器的维护能力。
原本我基本上配置好了我所有服务器,它们即使不维护也可长时间运行。但无法维护服务器始终有点不舒服,并且阿里云还赠送了大学生2h4g的服务器,如果我账号有ecs服务器的话也没法领取。刚好博客所在的学生机要续费了,因此我决定在3月2日,做好服务器快照与镜像,停止续费学生机并删机,去领学生机。

经过

配置503

我谷歌到网站维护需要弄个503界面给蜘蛛,但我折腾了半天,最后担心在CDN处301后,蜘蛛抓取了我维护界面后再也不来了。而一个个修改域名解析和CDN太麻烦了,我还是直接关站完事。

抢赠送学生机

我的学生认证出问题了,好在提交工单后,使用我学信网截图加学生证照片后,阿里云客服手动通过了学生认证。原本赠送的学生机压根不用抢,只不过随着二手贩子的介入,现在赠送学生机也不好抢了。在3月3号,终于抢到赠送的学生机。

和学生机相比,阿里云赠送大学生的机器虽然是t5,但最少是单核双线程,爆发后速度还是比单线程的n4学生机要强,因此我决定在赠送的机器上搭建博客,在月付9元的机器上搭建面板。

赠送的学生机和n4学生机一样,都是8163的CPU

CPU个数
1个物理CPU,1个核心

CPU线程
共有2个线程,型号如下:

Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz

重新联系博客服务器

由于我的ssh端口都关了,并且防火墙都设置了“自启”与“守护”,使用systemctl stop iptablessystemctl disable iptables关不了防火墙,并且appnode的防火墙配置文件是放在数据库内,无法手动在ssh内手动修改配置。因此我首先去appnode官方社区询问了:请问appnode的防火墙在开启自启和守护后怎么在ssh内手动关闭

我的控制端被我折腾挂了。。。受控端的ssh端口我都被我设置成拒绝。
我能通过VPS服务商提供的救援模式进入受控端的服务器,但我尝试使用systemctl stop iptables和systemctl disable iptables,依然关闭不了防火墙。请问怎么手动关闭防火墙?或者临时开启一下ssh端口。

官方答复我:

先停止受控端就行了: systemctl stop appnode-agent

搭建控制端

又购买了半年的学生机,按照正常的配置搭建appnode的控制端。

恢复镜像

在赠送学生机上恢复镜像时出了问题,通过阿里云控制台的VNC访问时,虽然我明确记得密码,但密码一直不对,我就只好重置实例密码了。

重置实例密码后,我虽然关闭了appnode,关闭了iptables,重启了sshd,但依然连接不上服务器。
当我使用ip addr后我发现,服务器网卡有问题,ip addr显示的内网ip和我控制台显示的内网ip对不上。
因此我立马提交工单给阿里云客服。
2小时后,阿里云工程师给我回复了:

您可能由于镜像的原因之前的路由和网卡配置和现在的服务器配置都不匹配,这边为您改好了,您试一下

我试了一下确实可以。

随后我询问了阿里云客服救援的方法。我维护服务器的知识都是从阿里云/腾讯云客服那学来的,买大厂的服务器不仅省心还能学到运维的知识。

阿里云客服教我这样做:

您好,将您的网卡其他配置注释掉参考截图1只保留这三个配置,您可以登录服务器直接查看网卡配置文件复制一份。

然后添加路由配置 route add -net 0.0.0.0/0 gw 网关

您这台服务器的网关是172.17.223.253 所以我执行的是route add -net 0.0.0.0/0 gw 172.17.223.253

如果有其他服务器也这样配置一下就可以

我先去看了下服务器网卡的配置文件,然后记下阿里云客服给修改好的配置,然后重置服务器,修改网卡配置,执行route add -net 0.0.0.0/0 gw 172.17.223.253果然能连上网了。

使用appnode控制端,通过ssh添加使用镜像恢复后的服务器。因为我想趁这个机会修改网站的文件夹名称,因此选择手动备份网站文件,导出数据库文件,下载到本机,而不是自动备份全站。

恢复网站

因为我同账号下有两台服务器了,因此我决定做站库分离,使用9元的学生机做数据库,赠送的机器做前端。
连接数据库的时候出了点小问题,前端联系不上数据库了,原本我以为是数据库监听有问题,实际上是阿里云安全组需要单独设置对内网ip开放端口。
我设置针对内网ip端口全开后,前端就能正常联系数据库了,再手动配置了下网站。

优化网站

我联系了祥林嫂,请他使用CC攻击了我的网站,峰值请求20K/S,之前网站和数据库在一个服务器时,服务器直接挂掉了。
现在站库分离后,虽然前端与数据库的服务器负荷只有80%,但nginx依然挂了,于是我手动修改了下nginx的配置,保持连接请求数限制设置到1万,超时限制到120s。修改后nginx基本上抗住了请求。
但由于阿里云内网带宽限制了只有0.5G,在被CC过程中内网带宽直接被跑满了,再加上PHP拉到上限后。4g内存完全不够排列请求,后台直接出现了几KB的PHP请求数据库错误。虽然PHP参数拉满后前几秒抗住了,但最后还是崩了。看来只有前端负载均衡才能完美抗住压力。

设置加速服务

我在网站恢复后,便在3月4号凌晨在加速页面放出了维护公告,并关闭了北京节点的后端服务器,按照之前的方法重装系统、重新配置。在配置完北京节点后,才关闭香港节点,重装系统、重新配置。

配置云企业网CEN实例

阿里云不同账号在同地域之间内网通信是需要配置云企业网CEN实例,只有同账号的服务器在同地域内网才互通。
其实我的博客自从推出加速服务后一直被ddos攻击,1m的带宽不太够用,迫使我不得不将CF常开CF盾。
因此我决定趁这次重装博客,利用云企业网CEN来将我现有的几台服务器组网,增加博客带宽出口。

云企业网CEN实例其实就是iplc,同地域通信是免费的。

我与阿里云客服部分对话记录

问题描述 : 你好,我这里有两个账号(我和我同学)的机器想要实现内网通信,我们的服务器都在北京区,内网ip分别是172.17.-.-、172.17.-.-
为什么我已经在安全组放通了内网ip,两台机器之间还是无法通信?之间ping公网可以ping通,ping内网没反应。

2020-03-04 11:58:43

售后工程师 : 您好,我们已经收到您提交的问题,正在为您查看,请稍等

2020-03-04 12:12:34

售后工程师 : 您好。另一台需要内网互通的实例ID,您提供下。

2020-03-04 12:12:57

------- : i-2ze4k--------

2020-03-04 12:13:36

售后工程师 : 您好,您的问题我们已经在为您处理,该问题处理需要一些时间,请您耐心等待,我们有进展会第一时间反馈您,如果问题处理时间超出了您的期望,请您不要担心,您的问题并没有被搁置,我们仍然还在为您处理的,您可以随时工单反馈我们咨询处理进度,谢谢您的理解。

2020-03-04 13:24:27

售后工程师 : 您好,感谢您的耐心等待,核实您服务器是不同账户下的,默认是不能内网互通的,由于服务器是不同账户、同地域下的VPC类型服务器,您可以参考以下文档,使用云企业网实现内网互通。网络实例互通是否收费取决于网络实例的地域,与网络实例所属账号无关。同地域网络实例互通无需购买带宽包,不收取互通费用。

创建云企业网CEN实例:https://help.aliyun.com/document_detail/128625.html
加载网络实例:https://help.aliyun.com/document_detail/128653.html

2020-03-04 13:34:45

----- : 你好,请问:
在VPC/边界路由器/CCN详情页,进行跨账号授权申请,再回到本页进行实例加载
是不是两个账号要互相对对方授权?

2020-03-04 16:54:52

----- : 我知道了,是“被拉进云企业网”的用户需要对创建云企业网用户单方面授权

2020-03-04 17:04:20

售后工程师 : 是的,是在一个账户下创建云企业网,另一个账户授权,然后将两台服务器都加入。

2020-03-04 18:16:45

售后工程师 : 您好,核实两台服务器目前已加入同一云企业网,感谢您选择阿里云,我们将您的工单置为待确认状态。 如果您的问题已经解决,还请您在工单下方对我们的服务进行评价。 如果您的问题仍未解决,可以开启工单或新建工单与我们反馈; 工单中如果您提供了服务器口令等信息,也建议您修改密码使用。 祝您工作生活愉快。


我利用CEN将北京节点两台服务器和我博客服务器通过CEN连在了一起,用内网反代我的博客,再用CDN分别指向服务器ip,最终扩容了博客出口,从原来的1m扩充到现在的4m。
测试了下响应确实比以前快了不少,当然,我还是常开CF盾。

阿里云配置CEN的教程写的不错,我就不写了。

创建云企业网CEN实例:https://help.aliyun.com/document_detail/128625.html
加载网络实例:https://help.aliyun.com/document_detail/128653.html

配置安全组

ip暴露后防止被dd进黑洞最好的方法就是配置安全组,配置的方法在我博客内有。需要注意的是,除了对CDN回源服务器配置以外,还需要单独设置内网之间的互通,安全组控制了组网后的服务器之间的互相通信。

结果

我花了2天时间,恢复了对服务器控制,博客对外带宽扩容到4M(腾讯云4M,cloudflare 2M),DDOS测试没法测,大佬的发包服务器消耗光了,要等大佬恢复下库存才能测。

最后修改:2020 年 03 月 08 日 09 : 23 PM