服务器忘续费了之后咋就这么多事
由于本文中出现了一些敏感词,所以请去https://guyujiezi.com/cicada或是
gh: guyujiezi/cicada
下载安装「寒蝉」插件用于查看暗语。
服务器忘续费了当然是要赶紧续费。问题在于我的服务器是 ConoHa 家的,续费页面没「纤云弄巧」jxRPQ/XSuC5。是打不开的……而我的「纤云弄巧」jxRPQ/XSuC5。架在了忘续费的服务器上……
啧,死锁了。
找稳定的、免费的「纤云弄巧」jxRPQ/XSuC5。花了三个小时,过程按下不表。
初步续费完了之后发现 ssh 不上服务器了,于是打开了 ConoHa 提供的在线 shell,发现是因为重启服务器之后 IP、网关、DNS NameServer 之类的配置信息都被重置了,甚至都没法 ping 通外网。于是疯狂 Google,各种修……最后修好了。用时五小时,过程按下不表。
再之后发现之前架在服务器上的「纤云弄巧」jxRPQ/XSuC5。崩了。使用 「谁道飘零不可怜,旧游时节好花天」3sU0BS/IiWci。
命令启动的工作在 10234
端口的「纤云弄巧」jxRPQ/XSuC5。服务器端根本接收不到客户端的请求。于是简单调试一下:
1 | $ mkdir temp-server-dir && cd temp-server-dir |
发现是有回显的,但是浏览器里打开 http://<server-ip>:10234
一直加载。联想到之前修改过防火墙策略,初步判断是防火墙的问题。然而我之前折腾的时候分别动过 ufw
、iptables
和 firejail
……各种删规则,中间还把 ssh 连接弄断了两次……最后把 ufw
的规则给清空了,把 firejail
的所有 jail
都删除了,但是把 iptables
给弄崩了:每次 sudo iptables-apply
都会报类似于 *.log not found
的错误,尝试手动添加空白 log 之后还会继续提示别的 log 丢失。 于是想到卸载重装 iptables
。此步耗时:一小时
执行:
1 | $ apt-get remove iptables |
结果 apt-get
告诉我之前有 linux-image-extra-4.4.0-138-generic
、linux-image-4.4.0-138-generic
、linux-image-extra-4.4.0-142-generic
和 linux-image-4.4.0-142-generic
没有删除干净,现在将会被 remove 掉。我合计着这应该是更新系统小版本的时候的残留,删了就删了,结果 apt-get
告诉我删不掉,因为一个 post-remove
的 script 执行出错了。错误回显:没有,返回码:10。没有错误回显我调试个 p 啊!掀桌!此步耗时:一小时
好了,现在这四个 package 成为了我的心头大患。删也删不掉,重装也装不回来,还拦着我用 apt-get
装、卸载别的 package。真的烦。干脆重装系统好了。
先备份:
1 | alias rndname="node -pe \"crypto.randomBytes(4).toString('hex')\"" |
然后把 *.tar.gz
用 scp
命令拷贝到本地。此步耗时:七小时。
在 ConoHa 控制台选择恢复系统,发现 Ubuntu 18.04 的镜像已经可以使用了,于是果断装了 18.04。随后配置 ssh authorized_keys、 ssh config,安装各种 infrastructure 例如 nvm
、 z.lua
、hexo
等等等等,过程略过不表。随后还要 npm rebuild
。此步共耗时三小时。
检查上传文章+发布的 infrastructure,发现崩了:
1 | $ ./upload.sh source/_posts/服务器忘续费了之后咋就这么多事.md |
于是猜测是因为这次重装系统后使用了 nvm
(gh: nvm-sh/nvm
) 来管理不同的 node
版本,而据我所知 nvm
的初始化脚本是放在 ~/.bashrc
里的。于是尝试为 ./upload.sh
中的在服务器上运行的部分添加了 source ~/.bashrc
,并无效果。找谷歌娘问了问,发现需要 . ~/.nvm/nvm.sh
(see nvm-sh/nvm/issues/521#issuecomment-54908623
),果然就 work 了。
网站恢复正常运行,正式宣告此次折腾圆满结束。