等我工作了第一件事就是去办一张Visa然后去Linode日本机房开个VPS, 就!是!这!么!没!出!息!
DigitialOcean的SFO1机房速度刚开的时候感觉还好, ping值200上下, 但是好像装了VPN过后ping值就会稳定上升到80左右, ssh上去打字就会感觉略卡, 关于DO SFO1机房具体网络情况, 可以参考以下mtr输出(江西电信网络):
迫不得已, 在网上搜到了Mosh这个东西, 其实之前也听学长说过, 只是那个时候还没有VPS, 所以没有怎么在意. Mosh就是MIT推出的一个轻量级ssh客户端, 基于ssh网络但是用的是UDP通信(ssh用的TCP), 刚好计算机网络学到这里, 我只记得TCP更安全, UDP更快. 确实是这样, mosh相较于普通的ssh就是按键回馈会有一个比较大的提升, 因此比较适合高延迟的网络环境, 另外的话就是可以在变换IP不断线, 长时间不操作不会掉线等等, 详情可见 Mosh主页
首先在client端和server端都要安装Mosh
1 2 3 4 |
sudo apt-get install python-software-properties sudo add-apt-repository ppa:keithw/mosh sudo apt-get update sudo apt-get install mosh |
因为Mosh用的是UDP端口, 所以要在服务器上面打开端口, 打开60001到61000任何一个端口即可.
1 |
sudo iptables -I INPUT -p udp --dport 60001 -j ACCEPT |
因为mosh是基于的ssh的, 所以之前的ssh的设置都可以利用, 无论是密钥登录还是密码登录都是直接吧ssh命令替换成mosh即可, 比如密钥登录就直接
1 |
mosh USERNAME@HOSTNAME |
但是可能会出现以下报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
The locale requested by LANG=en_US.UTF-8 isn't available here. Running `locale-gen en_US.UTF-8' may be necessary. The locale requested by LANG=en_US.UTF-8 isn't available here. Running `locale-gen en_US.UTF-8' may be necessary. mosh-server needs a UTF-8 native locale to run. Unfortunately, the local environment (LANG=en_US.UTF-8) specifies the character set "US-ASCII", The client-supplied environment (LANG=en_US.UTF-8) specifies the character set "US-ASCII". locale: Cannot set LC_ALL to default locale: No such file or directory LANG=en_US.UTF-8 LANGUAGE=en_US LC_CTYPE="en_US.UTF-8" LC_NUMERIC=zh_CN.UTF-8 LC_TIME=zh_CN.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=zh_CN.UTF-8 LC_NAME=zh_CN.UTF-8 LC_ADDRESS=zh_CN.UTF-8 LC_TELEPHONE=zh_CN.UTF-8 LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=zh_CN.UTF-8 LC_ALL= Connection to onijiang closed. /usr/bin/mosh: Did not find mosh server startup message. |
这个就是locale的问题, 因为本地的locale是zh_CN.UTF-8的, 所以需要将服务的LC_TYPE 由en_US.UTF-8改成zh_CN.UTF-8
1 |
sudo echo 'zh_CN.UTF-8 UTF-8' >> /var/lib/locales/supported.d/local |
然后使更改生效
1 |
sudo dpkg-reconfigure locales |
这样再登录就没问题了, 用了过后感觉延迟是要稍微低一点, 但是打字的时候那个像贪食蛇的东西还是略不爽啊…
Update:
突然发现这玩意儿还支持Chrome和Android…我擦嘞简直逆天神器啊…