linode被qiang了

终于轮到我了。。
已经有一段时间了,今天刚折腾好。

以前一直听说linode tokyo很容易被qiang,都是屏蔽整个IP段的。
我却一直没碰到过。但终究还是躲不掉。。。

先是ssh连不上,但能ping通。可能是端口号被qiang。
诡异的是lish也死活连不上,总是卡住。所以没办法上去改端口号。
只能rebuild了,但我还有些git仓库在上面,所以要先备份下数据。

要用到linode的Rescue Mode,参考:http://www.linode-vps.com/wp/linode-rescue-and-rebuild/
大概的原理就是用cdrom启动你的linode,启动后是一个迷你的Finnix系统。

1.在linode manager界面上进入rescue mode,注意这里的磁盘挂载点,我原来的系统盘是/dev/xvda。进入rescue mode后,相当于原来的linode已经不存在了,是一个新的节点,只能通过lish登陆。
2.在lish中执行命令

1
2
3
4
5
6
7
8
mount -o exec,barrier=0 /dev/xvda
cd /media/xvda
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -t devpts pts dev/pts/
# 这是个很神奇的命令
chroot /media/xvda /bin/bash

之后会进入我本来的ubuntu系统。
3.在ubuntu中修改ssh端口号,然后/etc/init.d/ssh start。即可像平时一样ssh登陆。改过端口号就能ssh,很大可能是端口号被屏蔽。但还是不能解释为何lish连不上。
4.另开一个窗口ssh上去,将所有要备份的git仓库打包成tar.gz,下载到本地。

之后rebuild,但还是连不上。。。试了Debian/Ubuntu,试了各种内核,试了改/不改端口号,但只能偶尔连上,大部分时间都不行。

折腾了一段时间,发现连IP都ping不通了。。。这下彻底被qiang了。
好在域名还能正常解析。

只能申请换IP了。linode的客服非常赞的。很顺利的换了个IP。
上godaddy改下DNS,然后再rebuild,终于正常了。

接下来将备份的git仓库还原。其实很简单,解压后放到原来的路径就好了。
因为域名、端口号、路径都没变,所以git remote的url也不用改。尝试push,报错bash: git-receive-pack: command not found。这是因为服务端没有安装git。在linode上sudo apt-get install git。再次push,成功。

P.S.

用命令ssh -p 8086 foolbear@foolbear.me可以测试公钥是否正确添加。
在git bash中这个命令可以正确执行,这时读取的私钥是用户目录下的.ssh/id_rsa。
在windows cmd中这个命令会出错,读取的私钥是git安装目录下的.ssh/id_rsa(我用的git自带的ssh.exe)。如果用-i参数强制指定私钥为C:\Users\foolbear\.ssh\id_rsa则可以成功。
可以给ssh加上-v参数查看使用的私钥位置。
以前都没注意过这个问题。把私钥copy一份就可以了。