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

起因

起初我原计划是就在家呆一个星期,一个星期后回学校,所以只充了一百的电费。但由于武汉封城,在家呆了两个月,学校电费终于耗尽。由于只能用电费卡充电费,无法远程用支付宝/微信充值,在电费用完后,我断开了与黑群晖的通信。由于我的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内手动关闭

官方答复我:

搭建控制端

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

恢复镜像

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

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

我试了一下确实可以。

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

阿里云客服教我这样做:

我先去看了下服务器网卡的配置文件,然后记下阿里云客服给修改好的配置,然后重置服务器,修改网卡配置,执行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测试没法测,大佬的发包服务器消耗光了,要等大佬恢复下库存才能测。

最后修改:2023 年 06 月 22 日
如果觉得我的文章对你有用,请随意赞赏