度日如年

这一周真实度日如年啊。

我猜是因为近期的一场盛事,有关部门加强了网络封锁,我的网站也中招了。过去我从来没有想过我会遇到这种情况。

周一的时候还一切正常,到了周二就开始断断续续的遇到问题了。我的服务器上装了 SS,平时手机上也一直连着,而周二我发现有的时候就不好使了。不光是 SS 连不上了,我的网站也无法访问了,从本地也 ping 不通。我当时也没在意,因为之前从来没有遇到过类似情况。

到了周三,我发现彻底不行了,一时间有些无助。我的 VPS 是 Vultr 的,我再上面尝试了添加一个 IP 地址,结果不行。之后我尝试着在 Linode 的 Tokyo 2 数据中心买了一个,一开始可以,我在新服务器上 ping 过去的地址,没有问题。不过好景不长,当我转移数据的时候,就又连接不上了。

这两天因为要上班,我也没有把主要精力放在解决这个问题上面。一方面,我想这次盛事过去后,会不会解除啊;另一方面,我也在琢磨一些解决方法。后来我看到了一篇文章,心想这也不失为一个解决办法。不管怎样,先注册再说。

注册的时候,又一起悲剧发生,这个网站给我填写的邮箱地址发送了一个验证码,需要填写。而我的邮箱用的是 Google Apps,现在我无法访问 Gmail,也拿不到我这个验证码。过去我对这种情况一直不在意,反正我可以正常访问就行,现在我一个手段都没有了,一下子让我陷入了恐慌。

最后我咬咬牙,还是放弃了 Gmail 吧。我重新给过去用过的 Fastmail 续费,把域名的 MX 换回 Fastmail 的,最终收到了验证码。我发现这个网站也挺慢,这几天一直也没有心情去真正交费。这个事情让我反省自己是不是对 SS 这类工具太过依赖了,如果再次发生这类情况,我能怎么办呢?之后,还是用一些稳妥的邮件解决方案吧。目前 Fastmail 还不错,我不希望有一天我要回到 QQmail。

我记得 imtx.me 是用的 Linode 的服务,查看了一下它的 IP 是 Fremont 的,我于是搬了个家,也去了那里。转移了之后,尝试新 IP,直接连不上。我看到 Linode 的发送工单页面上有些常见问题,其中有一个就是网站被墙了怎么办,上面说用 MTR 工具测试,如果被墙了,发工单,他们给换 IP。看他们说的挺诚恳,我也发了一个工单,收到的回复是他们也无能为力。

我也准备接受目前无法访问一些网站的现实,但中间一直想看看 YouTube,国内的优酷、爱奇异,怎么都无法让我沉下心来观看,我还想上 Twitter,还有 Instagram,但都无法访问。这让我心中的悲哀更甚。

今天有了点时间,就真正开通了一个 InterServer 的 VPS,当中也遇到了一些问题。这个服务开通后,我按照说明,用 VNC 登录可以,但 SSH 怎么都连接不上,一直提示“ssh_exchange_identification: read: Connection reset by peer”,这让我太诧异了。我上网找了很多文档,又是改默认 iptables,又是检查 Fail2Ban,都没有效果。还把操作系统由 Debian 7 换成了 CentOS 7,原因是我担心是系统老旧的原因,结果还是不行。到最后发现因为我的粗心,我把 IP 地址搞错了。我之前没用过 VNC,想当然的以为 VPS 的 VNC 地址就是 IP 地址,结果不是这样。当我输入了正确的 IP 地址,连接问题也就解决了。当然,InterServer 的网站设计的也不清晰,比起 Linode 和 Vultr 都差了很多。

配置好 SS 后,我又重新连上了,虽然速度比过去差了很多,但毕竟是连上了。这种重见天日的感觉,真的让我不知道该怎么表达。过去我在网上想去那里就去那里,经过这个事情,我发现生活远不像想象中那么稳定,眼前生活来之不易,一定要珍惜啊。

后来,我尝试在 Vultr 的 LA 机房新买了一个 VPS,通过快照功能,很方便的把之前的 VPS 整个转移到了新的上。可以说这个快照功能太好用了,新的 VPS 我一点都没配置,之前的网站、博客、wiki 都可以正常运行。更好的是,我发现这个 IP 还是好的,这样我很快的也回复了之前的状态,网站也回来了。

这次的收获:在 Linode 上部署的时候,想起了前几天在知乎上看到的关于服务器操作系统的稳定性的讨论,于是尝试了一下 CentOS,开始时也不大适应,不过后来其实也接受了。不过最终还是换回了 Debian,之前一直就用它,更熟悉。我自己的 wiki 上也有一个专门的笔记页面,就是面向 Debian 系的,不用费心找命令了。

大手术

最近我的网站服务器运行的比较糟糕,特别是博客部分,经常发生 500 错误,有的时候 MySQL 会被 mercy killed,导致 WordPress 无法连接到数据库,博客就挂掉了。

过去我买的比较廉价的 VPS,因此时不时就要捣鼓一下,不过自从我买了 Linode,就比较少的去上 VPS,所以近几年对 VPS 的了解也差了很多。VPS 资源不足的时候,一点资源就要精打细算,因此控制的比较好。后来的 VPS 的内存有了 1GB,想比起过去条件好了许多,我就没有在意控制,甚至编写过一个 Rails 应用,后台用的 MySQL InnoDB 引擎,那时候就觉得内存没有不够的时候。

后来经历过 MySQL 升级,默认的引擎变成了 InnoDB,我旧的配置文件一度导致 MySQL 无法启动。从那之后,我基本上没有再在意过 MySQL 资源优化的问题。这导致的问题就是,MySQL 进程经常被杀死,因为 VPS 的内存被用光了。然后我采用了一些办法,不过收效不大,最后我给博客加上了 WP Super Cache 插件,这样哪怕数据库挂掉也能访问一些页面。然后上周五写了几篇文章,发布的时候竟然出现了 500 错误,这简直不能忍受。刷新了几次发布成功文章后,我就考虑修正一下这个问题。

我想计划是不用 Apache 了,采用 Nginx。我刚用 VPS 的时候,内存很小,才 80M,当时就知道 Nginx 占用资源和 Apache 相比不是一个数量级的。当然 Apache 有它的好处,寿命很久的工程有很多插件,比如 WSGI,我安装 MoinMoin 非常方便,在 Nginx 下就要费一些事。再就是 .htaccess 等功能,Nginx 下使用不同的语法,要改变也很麻烦。不过,现在出现了资源不足的问题,我还是决心做一个尝试。我的 VPS 上目前跑的东西也不多了,主要是一个 WordPress 的博客和一个 MoinMoin 的 wiki,之前自己的 Rails 应用也不跑了,有一个 Awstats 在运行,不过现在看的也不多。

我琢磨了一下,我刚开始用 VPS 的时候,拿 Nginx+php-fpm 跑过 WordPress,经验证过基本上没什么问题,就是 Super Cache 之类的东西配置起来很不方便,实际上我的小站点不用缓存问题也不大。MoinMoin 之前有过不成功的经验,也有过成功的经验,后来入门之后,我发现用 Apache + UWSGI 跑 MoinMoin 还是挺简单的。Nginx 上我不敢确定,不过 Nginx 几年前就很火,相信现在一定有所改进。另外,我对 MoinMoin 这个 wiki 还有其它的考虑,不过没有成熟的记下来,改天在新的文章里再写写。

于是我周五晚上开始,一开始没有继续尝试修改原有的 Linode 服务器,而是从 DigitalOcean 上新建了一个 Droplet,系统还是选 Debian,因为最熟悉。从一开始安装 Nginx 到后来配置 WordPress,DigitalOcean 的帮助文档很全面,非常清晰,我还从中学会了用 rsync 从两个服务器之间同步文件。等我把数据库转移了之后,在新服务器上 WordPress 打不开了,查看错误日志,原来是 Cache 插件的问题。新服务器上没有配置插件,导致了无法显示。然后我尝试了各种其它的方法,一直没有成功。后来又尝试了一下 MoinMoin,我发现这个的文档就有些问题了,进行到了 uwsgi 配置这一步,总会有各种各样莫名其妙的不对,比如说执行了一个命令,start wsgi,而我的机器上并没有 start 这个命令,也许是 Ubuntu 特有的。我最终能做到显示一部分的页面,其它的就没有搞定。这时候时间已经到了周六的凌晨三点多,我坚持不住了,就先去睡觉了。

周六有时间就继续搞,到晚上,我重新在 Vultr 上建立了一个服务,也是用的 Debian,然后还是进行了各种配置,到了最后 WordPress 有很多页面都是 404,弄得我很郁闷,然后重新建立服务,再搞一次,发现我应该是忘记在 Nginx 上加入 index.php 的识别,最后算是弄好了。我一开始尝试导入从原 WordPress 导出的 xml 文件,结果没有成功,只导入了一部分,看来是中途出了问题。之后我还是在数据库层面导入,还是遇到了 Cache 问题。我从 wp-config.php 开始修改,一点一点删除和 cache 有关的配置和 PHP 文件,最后终于能够正常进入页面和后台,然后在控制台把 cache 相关的插件都关掉,算是正常了。

WordPress 正常了之后,我继续尝试 MoinMoin,很郁闷的是在 uWSGI 这一步怎么也无法正常。我发现 Python 应用这一部分的文档很不完善,而且不同的系统之间也有差异。比如,我从网上找到过在 Ubuntu 下的配置方式,按理说它和 Debian 血缘很近,但两者之间就不同用,还有 CentOS 系统下的配置说明,又是一种方法。MoinMoin 上有 Nginx 下配置的方法,从我的 Debian 服务器里就不能正常工作;Nginx 的页面有 MoinMoin 的配置实例,写的非常简洁,我看的云里雾里,最终还是放弃,等再找时间看看。我之前已经配置成功过,没理由这次会失败。不过这不是一个短时间能够完成的任务,还是找其它时间吧,毕竟 wiki 是给我自己看的记录,短期不上线也问题不大。

剩下的就是 Awstats 的迁移了,我还没有开始进行。另外 Shadowsocks 应该也不难,我看看 Linode 什么时候到期,再决定是继续用 Vultr 还是在 Linode 上新建一个 node。

2017 年的第一天折腾

今天我空闲时间做了一件事,把我的 VPS 换了个服务器。

我的是 Linode 东京机房,自从上次我从 Fremont 搬到东京去就一直用着,那大概是 2012 我回国那年。我对这个服务非常满意,它的速度在大陆很快,我挂了 Shadowsocks 看 YouTube 的 1080p 视频基本不受任何影响。它唯一让我不满意的是,其它机房都升级了,东京这边还是迟迟未动。2014 年 4 月就有其它机房完成升级的消息了,相同的价格,内存翻了一倍,达到了 2G,让我着实眼馋。东京这边一直很沉得住气,我好几次去 Linode 的博客看,一直没有消息。

去年 11 月 21 日,Linode 的博客终于有了文章,说东京有了第二个数据中心,可以享受最新的服务了,KVM、2G 内存等等,我看了很兴奋,但之后就是一盆冷水——文章中说无法升级,只能新买一个东京 2 号机房的节点,然后克隆过去自己的数据,我一看很麻烦,而且之前买了一个测试了一下 Shadowsocks 的链接速度,觉得还不如老的 VPS,于是就删掉了。

后来我不知道怎么的,心里一直痒痒,也许是 2016 年最后的工作太无聊了,我在 12 月 30 日重新买了一个节点,在上面跑起了 Shaodwsocks,测试的速度还能接受,于是就考虑把系统迁移过来。之前一直没有做决定,今天正式执行。

我完全忘了之前文章里说的方法,选择了通过 SFTP 来传递数据,MySQL 的数据库也 dump 了过来,当中也遇到了一些问题。我毕竟不是天天和 VPS 的维护打交道,因此在让 PHP 正常运行的时候卡了一会儿。虽然我之前记录过笔记,这次也参考了,但由于时间长远的原因,还是走了弯路。一开始我确实是想让 Apache 运行在 MPM_WORKER 模式的,但不知道怎么就又成了 Prefork。后来 PHP 文件莫名的不会被执行,而是被下载,然后 Apache 不能启动了,花了一些时间才解决问题。

后来在弄 certbot 的时候也遇到了一些事情。它本身可以自动为你配置好一切,似乎比我之前弄的方便,但对网站配置文件有一些要求,我反复弄了好几遍,才最终弄对了。它的要求之一就是你的域名要指向你的主机,所以我那个时候就改了 DNSPod 的配置,让域名指向了新的主机,也就是那个时候,我的网站就无法正常访问了。

最后遇到的大问题是博客,本来应该一点问题都没有的,但我犯了一些低级错误,在找问题原因的时候也是脑子糊涂了,一点也不得要领。可以说是我是很久没有搞这些了,否则也不应该会犯这种低级错误。遇到的原因是无论打开那个 PHP 网页,都是一片空白,什么也没有。最后我领悟到我应该去看 error.log 日志,看了之后马上发现问题,我的博客用了 Memcached,这些都没装,自然出不来。几个 apt-get 后问题解决。

我目前只转移了博客和 wiki,其他的我没有下决心,比如我写的 Rails 应用,保存我自己所有推,是不是还有保留的价值。还有 Fever,之前更新不好使,我已经换了 Feedly,是不是也不用要了?之外,还应该有一些其它的文件,等这过后再检视吧,最后把老的 VPS 删掉就是了。

最后,我似乎应该对旧 VPS 有一丝怀念,但现实是,完全没有呢。也许归功于 Linode 太稳健了的原因把。

升级 Linode 系统到 Debian 8

昨天晚上,我心血来潮,去了 Linode 的网站去看文档,估摸着 Debian 应该可以升级了。用关键字 debian 搜索果然有这么一篇。粗略看了一下就开始升级,升级完后,发现网站不行了,打开任何页面都显示 404 错误。我有点奇怪,一般来说应该是 Apache 无法启动或者发生 500 错误吧,这种找不到文件的情况还是第一次见到。

于是就找原因,不知道是不是升级后 /srv 下的文件权限被动了,结果找一阵子也没发现。看 access.logerror.log 也没有发现,而且奇怪的是,根本没有升级后的时间的记录。不过好在 ls -l 后发现时间最新的文件居然是 other_vhosts_access.log 文件,并在里面找到了相应的 404 记录。这下稍微有了点头绪,应该是配置文件的问题。可我根本没有搞配置文件,怎么就出问题了呢?

昨天晚上的 SSH 速度尤其的慢,输入命令的时候明显能够感受到延迟,更难过的是,时常会发作一次,直接卡住,按什么键都不起作用,这搞得我极为烦躁。想起傍晚听内核恐慌的时候,主持人讲到 PHP 是一种十分不安全的语言,WordPress 也经历过很多 0day 攻击,因此很多网站都转移到了静态博客。那时我心里想,如果我的博客也是静态话的,也许我就不用这么担心了。哪怕博客程序跑不起来,生成的页面还在,还可以继续访问。

然后静下心来,继续 Google,最后从 Linode 自己的升级说明(就是我开头时看得页面)的开头处,看到写着“如果你是 Apache 网络服务器的用户,注意 Debian 8 将 Apache 2.2 升级到了 2.4。这个版本对配置文件做了数处调整,会搞掉现存的网站。请在继续前阅读《Apache 升级说明》的内容。我当时扫了一眼,知道了 Apache 会从 2.2 升级到 2.4 就没有继续关注,因为我觉得像 Apache 这样的包,应该不会随便修改配置文件,于是就直接进行了下一步。而当我阅读这篇《升级说明》后,才知道 Apache 2.4 的配置文件里有几句配置是必须要添加的,而这篇说明里面把所有要进行的修改都说明了,我仔细一点的话,就不会出这样的问题了。

按照说明里的步骤进行调整,在重启 Apache 的时候,说不能识别 RailsBaseURI 命令,这下我马上反应过来是 Rails 或者 Passenger 的配置上有了问题。我先把配置中有关 Rails 的部分注释掉,重启 Apache 成功,之前的网页就都回来了。随后我找到了 Linode 文档里的这篇:Ruby on Rails with Apache on Debian 8,读了一遍没发现有什么特殊的,于是重新安装了一遍 Passenger,随后问题解决。

网站恢复正常之后,我回忆了这次事件中的“教益”。首先就是粗心大意的问题,之前这样的事情也发生过,不过基于人们的性格,这似乎是个无解的问题。谁也不会故意去犯错误,因此当错误犯下后,很难从当时的环境与心态中跳出来,反应到需要把之前的工作做的细致一些。这个时候,都会觉得自己该做的都做了,怎么结果就是不对,这就是所谓的牛角尖。不知道多犯几次错误,加上反思,能不能让我养成错误发生时有意识的、更细致的、重新考虑一下之前的步骤。

另一个教益就是备份。当然,备份的重要性如何强调都不为过。不过,我经常会想,我的这个没有多少人访问的网站,有这么需要做好备份吗?常常因为偷懒,我在应该备份的时候,比方在升级 WordPress 的时候,都假装不会失败。我赢了很多次,但有一次失败,就会让我后悔。不过,我之前写的东西,就算没有了,应该也算是自己的遗憾吧。目前没有一个非常方便的备份方法,Linode 的每月 2.5 美元的备份服务我有觉得对我来说有点浪费,所以目前我也不是十分重视备份。等有了精力再琢磨一个一劳永逸的方法吧。

发不了博客了

前天晚上,我遇到一个莫名其妙的问题,当我在 WordPress 里新建一篇博客的时候,页面不是过去那种正常的页面,而是一个类似新建页面的样式,但又没有输入正文的地方。当时我心里有点慌,因此也没有想到截图。我中午的时候还发过一篇文章,怎么到了晚上就不正常了呢?中间我可没有动过后台什么的。

开始我考虑是不是后台自动升级了,结果并没有。之后就有点一筹莫展了。然后我 ssh 到服务器上,升级了一遍系统,重启了 Apache 服务器,都没有解决。之后我重启 MySQL 的时候,问题出现了,重启失败。有了这个思路,事情就好办了。我通过 df 命令,发现硬盘空间用完了。我当初给这个系统分配了 10G 的空间,另外有 10G 安装了 Ubuntu,当时是为了架设 VPN 的需要,后来不用了,但一直没有处理。还有 4G 的空间本来留作机动的,一直也没用上。于是我把 Ubuntu 的这 10G 和用作机动的 4G 一股脑儿补充到了目前在用的 Debian profile 里,问题解决。

之前因为发生了这件事情,我在 Web Archive 恢复后,用 wget 在镜像一些值得收藏的网站。我在本地机器上保存了一部分,后来觉得没必要一直占用本地的空间,就在服务器上也开了一个进程镜像,之后就一直没管它。后来这个镜像目录涨到了 3G,把服务器空间占满了。

这件事情从另一个角度见证了 Linux 的稳健。如果是在别的系统,大概早就崩溃了吧。

惊闻 Linode 升级

前几周就发现 Linode 安卓客户端里我目前的 plan resize 功能失效了,说是我目前的 plan 是 legacy plan,无法升级。当时没有注意,没有其它影响,我自己用当前的 1024 plan 绝对够用,于是就没管。今天早上因为收到了 Linode 的维护 ticket,去客户端里看了看,发现居然还是 legacy plan 的状态,于是我去了 Linode 的网页看看情况,才知道 Linode 的主页又变了,而且更新了 plan。

原来目前我用的 1G 内存的 plan 已经升级到了 2G 的了,除此之外,还有流量、硬盘等升级。之所以我一直没发现是因为我用的东京机房,其它几个机房已经升级完毕,而东京机房还要大约三个星期,估计要到五一节结束才行。话说上次 Linode 升级就属我所在的 Fremont 机房来得慢,这次我换到东京机房,东京机房的升级也就慢了,倒霉。

2G 内存在我想象中大概有些吃不消。当年 Linode 从 512M 升级到 1G 就足够让我爽的了,我已经觉得有些略微浪费了。2G 内存要怎么来用根本没有办法,我这个放置一个 WordPress 博客、一个 MoinMoin wiki 的网站,再架设一个 VPN,用 2G 这么多的资源可以用奢侈来形容了。可惜之前用其它的 VPS 感觉实在是不稳定,让我怕了,而 Linode 偏偏就不出低价低配置的产品。如果 Linode 能保持自己的服务,出一个 5 美元一月 512M 的 plan,或 10 美元 1G 的 plan,绝对会卖疯了,同时其它的 VPS 服务商也就不用干了。

对 DigitalOcean 有些动心

今天下午我在新浪微博上乱翻,看到了一个提到了 DigitalOcean 的条目,于是又去 Google 搜索了一下,看到了两篇推介文章(1|2),上它的官网看了,觉得它的价格确实非常诱人。

DigitalOcean 的评价非常不错,同时它的价格是我目前在用的 Linode VPS 的一半。1G 内存的版本每个月的价格为 10 美元,这已经非常便宜了,比以便宜稳定著称的 Ramhost 都要便宜。如果它的稳定性、服务都可以达到目前宣传的水平,而且能够继续保持的话,它会是一家比 Linode 竞争力还要大的 VPS 公司。

我有些犹豫,因为我目前使用的 Linode 已经非常非常的稳定,可以满足我的日常需求。稳定性是我最最最最看重的,我之前用过的几个 VPS,除了 Ramhost 外,都是因为稳定性被我放弃的。我喜欢用 wiki 来管理一些信息,有时候服务器连不上了会让人非常急躁,很耽误事。因此我当年就痛定思痛,一下子花一倍的价格买了 Linode VPS,从那时候一切就都平静下来了。

DigitalOcean 的价格非常让人心动,不过我觉得最好还是考察一下它的稳定性吧。虽然有很多人在上面用了超过一年还非常满意,不过我过去也不是没有见过因为换老板而导致服务急剧下降的例子。而且我的 Linode 到今年五月份才到期,这将近两个月的时间不能浪费了,虽然 Linode 支持退款,但毕竟麻烦,似乎还有手续费。

更加让人在意的是,为了每个月省 10 美元而再折腾一次是否值得。Linode 反正就是这个价了,但它带给我的是令人放心的服务,以及快速的技术支持。它长时间的优秀服务带来的口碑,让我觉得在 Linode 上放置我的网站不用有任何的担心。归根到底,就是一个口碑的问题。目前还是继续观望吧。

Linode 使用一周年

今天收到了 Linode 的邮件,提示我续费,我发现不知不觉我用了 Linode 一周年多了。

一年前的四月十五日,我买了 Linode 的 VPS。之前我用的是 YardVPS,因为它很便宜。但我深受其苦,因为它太不稳定了。开始的时候有人跟我说,叫我别用它,我还不大相信。结果几个月后,就有几次无论如何也连不上主机的情况。有一次把我急坏了,我的站点上不光有让别人访问的 blog,更重要的是它上面还有我的私人 wiki,我喜欢把日常收集的各种资料,包括学习笔记,都放在上面。那次我正好需要查一个资料,结果几个小时的连不上去,我不知道骂了几次娘,只好傻等。那次之后我下决心一定要弄一个更加稳定的 VPS,坚决不用 YardVPS 了。

我很早就听说过 Linode,看过许多人对它的好评。一开始我没有选择它,是因为它相对太“高端”了。我从来没有想过把自己的个人站点放在 512M 内存的服务器上,因为它太奢侈了。而 Linode 的最低配置就是 512M。后来用过 YardVPS 之后,我考虑下一个 VPS 大概就是 Linode 的,因为实在是没有很多其它的选择了。其它的要么性价比更低,而且也总有各种的差评,Linode 大概是我见过的性价比最高、好评率最高的 VPS 了。想想它的价格我也不是不能接受,每个月少喝几杯咖啡,少下几次馆子就能省出来了。于是终于在 YardVPS 最后一次抽风的时候,我买了 Linode

Linode 还有一点让我顾虑的是它不接受 Paypal 付费,只接受信用卡。虽说它的信誉足够,但总感觉不是最安全(前几天 Linode 确实发生了泄露事故)。不过最终我还是下定了决心。开始时只买了半个月的,只需要支付半个月的费用就好,付款灵活这也是 Linode 的好处之一。用了几天之后就得出了 Linode 相当稳健的结论,让我相当的满意放心。我当时写过

不知道是口碑还是心理上的原因,我开通了 Linode 的服务后,我就没有任何的担心过。过去的两个 VPS 我在使用的时候都要战战兢兢,就怕什么时候就出问题了。Linode 不是这样,我在使用的时候对它有一种微妙的信任——相信它不会出任何问题,相信就算它出问题了我也不会受到损失,它的面板也相当顺手,所有的选项都相当清晰,统计图表也不像别家那样能看不能用。总之,用 Linode 就是让我有一种完全安心的感觉。虽然我不知道是怎样养成这样的感觉的,但就凭这一点,我就觉得值了。

所以,当半个月后,我没有选择更保险的逐月付款,而是直接买了一年的服务,因为可以打折。所以,当我使用了这一年下来后,回想过去,竟然发觉没有什么可写的,因为服务太稳定了,我不需要花精力去处理什么问题,自然话题就少了。

有人说,买 VPS 就是为了折腾,我觉得不全面。当 UNIX-like 的系统用的熟了之后,操纵 Linux 服务器并不是困难的折磨,我在自己的笔记本上也是这么做的。当过了最初接触时的新鲜感之后,像使用自己的电脑一样使用远程的 VPS 之后,其实非常自然,并没有什么让你折腾的感觉。

前几天 Linode 又升级了。在之前提升流量、扩充硬盘之后,又把内存翻倍了。现在最低的配置就是 1G 内存了,而价格比原先贵了 5 美分,这是摩尔定律体现出来的好处。我的 VPS 很早之前就从东京迁移到了 Fremont,而 Fremont 的内存升级迟迟没有完成。不过 Linode 的政策是如果你不升级内存,费用还是跟原来一样。所以这时候续费倒便宜了我,省下了几毛钱 🙂

迁移 Linode 主机到 Fremont

今天我把 Linode 主机从日本东京迁移到了加州的 Fremont。

我从去年九月在 Fenng 的 blog 上看到 Linode 开通了日本机房的消息。那时候我还没有 Linode VPS,只是听说日本机房在大陆访问速度更快,因此有些羡慕。所以这次我买 Linode 的时候,自然就选择了日本的机房。但真正用 ssh 登陆主机之后就立马后悔了——我忘了考虑自己的地理位置了!

如果我人在中国大陆,我一定会选择东京机房,因为速度更快。可目前我人在加拿大,选择东京机房的结果是,国内的人访问速度不知道是不是更快了,但我用 ssh 登陆后明显能感觉到比我过去用 Ramhost 的时候的响应要更迟钝。这种体验实在是太不好了,因为理论上说,终端的响应要比 HTTP 的响应更加敏感,我从键盘上输入字母,要等半秒钟才出现在屏幕上,这比打开网页要延迟两秒钟还要让人心烦。

为了平衡我这里的远程操作速度和国内的网页响应速度,我让朋友 @zhaokai 帮我测试一下 Linode 的 speed test 页面上的文件下载速度。@zhaokai 在青岛给我的反馈是 Dallas 最快,Tokyo、Atlanta 和 Fremont 次之,London 和 Newark 没速度。当然,不同地域的速度会有区别,所以我需要进一步调查,但要换机房是定下来了。

今天正好有时间,我就用 just-ping 来分别测试 speed test 页面给的主机域名。伦敦在英国,所以估计无论如何都不会超过美国和日本,所以我就没测它。其它五个城市,我调查了它们在国内的响应速度,并用本地的 traceroute 工具来检测本地的响应速度。调查结果基本上如下:

From server to my home:
 8  newark1.linode.com (207.192.68.6)  45.461 ms  45.814 ms  46.035 ms
14  dallas1.linode.com (69.164.200.100)  46.899 ms  46.901 ms  47.173 ms
 9  atlanta1.linode.com (63.247.71.196)  53.109 ms  53.801 ms  53.258 ms
 9  fremont1.linode.com (64.71.152.17)  75.233 ms  75.279 ms  74.783 ms
 9  tokyo1.linode.com (106.187.33.12)  161.979 ms  162.831 ms  165.290 ms

=========================================================================== From server to China: Newark: Location Result min. rrt avg. rrt max. rrt IP Hong Kong, China: Okay 224.3 227.5 229.6 207.192.68.6 Shanghai, China: Okay 522.4 529.2 534.3 207.192.68.6 Beijing, China: Packets lost (20%) 454.8 557.3 621.0 207.192.68.6

Dallas: Hong Kong, China: Okay 227.3 228.1 229.1 69.164.200.100 Shanghai, China: Checkpoint temporarily not available - - - - Beijing, China: Checkpoint temporarily not available - - - -

Atlanta: Hong Kong, China: Okay 233.0 236.5 239.7 63.247.71.196 Shanghai, China: Packets lost (10%) 542.2 545.4 547.2 63.247.71.196 Beijing, China: Packets lost (20%) 336.2 344.9 392.7 63.247.71.196

Fremont: Hong Kong, China: Okay 191.7 194.8 196.5 64.71.152.17 Shanghai, China: Okay 271.6 274.5 278.0 64.71.152.17 Beijing, China: Okay 223.3 224.0 225.2 64.71.152.17

Tokyo: Hong Kong, China: Okay 53.2 54.4 55.9 106.187.33.12 Shanghai, China: Okay 509.9 516.6 520.6 106.187.33.12 Beijing, China: Okay 159.2 171.4 179.3 106.187.33.12

综合的看结果,发现 Fremont 在国内访问和我家的访问速度种达成了很好的平均,特别是从我家里连接到机房,响应速度比连接到东京的速度要快一倍多;到国内的连接也没有掉包的情况,平均速度比东京的机房还有优势,所以我确定了要往 Fremont 的机房搬迁。

之前看了一些别人写的 Linode 主机迁移的经验,跟别人的经验相比,我这里有一点不同。别人都说客服会给一个新的 IP 地址,因此在迁移完成后不能像过去那样用 ssh 登陆,需要用 LISH 来登陆进去,用命令来修改配置文件中的 IP。而客服给我的新 IP 地址竟然完全和过去的相同,不知道是不是 Linode 升级了技术了,不需要修改自己的 DNS 设置了?

目前我正在迁移中,已经进行了将近 30 分钟了,据报告说还有将近一小时。目前的传输速率在 3.98MB/s,速度不慢。客服告诉我说每 GB 要花 10 到 15 分钟,看来确实是需要更多的时间。

最后赞一下 Linode 的客服。这是我第一次给 Linode 发 ticket,看时间记录有 2 分钟就收到了回复。这种回复速度简直可以用惊艳来形容了。所以说,用 Linode 尽管贵一些,但怎么能不令人安心?

PS:Fremont 机房有一个让我担忧的地方,就是它的机房是 HE 的,网上对 HE 的评价不怎么好。不过 Fremont 是我目前调查出来最平均的速度,只好先用一阵子再说了。

PS2:以前在看 NicoNico 的时候遇到过只有日本用户可以观看的情况,本来像用 东京机房的 Linode 搭个 VPN 去看呢,这回吹了 🙂

PS3:经过了大约一个半小时,系统终于迁移完毕。结果我连不上服务器了。继续跟客服讨论,结果确实是客服没有给我分配新 IP 地址。我给客服说了大约一分钟后,刷新 remote access 页面就看到 IP 地址变了。重启之后,修改了 /etc/hosts 文件后一切正常了。当然,域名的 DNS 能这么快生效,少不了有 DnsPod 的功劳,赞一个。

终于换了 Linode (续)

刚刚发表了上一篇文章后,想起还有一些感受忘了说。

首先就是转移 VPS 的感觉。这次转移有些麻烦,但速度很快。麻烦的是 YardVPS 根本死活连不上,自然没法转。我在后台跑了一个 lftp 来镜像 public_html 的文件,这就弄了好几个小时。不过好在我早就开始用 wiki 了,有了新的知识,就花点小时间整理下来,之后再用时就会节省很多时间,不用再去查资料了,比如这次,这篇《VPS 配置笔记》就省了我很多时间,一条一条走下来,就不用怕漏了什么东西没有配置。当然,Linode 本身有很丰富详细的文档,我这次也参考了一些,学到了一些知识,比如我过去用 VPS 从来不开防火墙,这次总算时学会了如何使用了。

我从上次切换到 YardVPS 的时候学会了使用 DNSPod,觉得它绝对是个好东西。我这次转移 VPS 速度很快也得益于它。我过去换一个 VPS,就用那一家 VPS 的 DNS,这就需要花费一段时间来使设定生效,有的 VPS 厂家,比如 Ramhost,添加一个域名需要发送 ticket,这就需要几个小时。在 VPS 服务商那里添加了一条域名之后,还有其它的各种设置,比如 Google Apps 就一堆 CNAME 和 MX 记录,很麻烦。而我这次转移 VPS,只是在 Linode 服务器那里把数据动放好后,去 DNSPod 改一下域名的 A 记录,然后等了几分钟,这就是全部了。我用过三家 VPS,Ramhost 的 DNS 设定面板是人家自己写的,我用过很多次,当然也为此发送过几条 ticket;YardVPS 的 DNS 设定面板我压根不知道长什么样;Linode 的我从它的文档里看了截图,但自己没有用过,当然我也完全不用考虑这些问题了。

最后再夸耀一次 Linode 带给我的安心感。虽然并不真实,但买了 Linode 后我确实产生了“如果从一开始就用 Linode 的话就少走了很多弯路了”的感觉。当然,从现在开始也不算晚。