ADSL 线路上架设 Linux 服务器小结

近几年来,一直把学习日记博客架设在四川电信 ADSL 线路上,使用 oray.com 或 dnspod.cn 动态 DNS 服务,服务器硬件是一台赛扬1.2G+512M 古董机,操作系统用过 Ubuntu 6.06 Server 和 Ubuntu 8.04 Server(参见:手工升级 Ubuntu Dapper Server 到 Hardy),软件环境用过 LAMP 和 LNMP (参见:Ubuntu 6.06下 Apache 转 Nginx),主要是运行 WordPress 博客程序。总的来说,我认为,如果是不重要的网站,有空余的机器,可以架设来玩玩,如果是为了省钱的话,也许你省的那点钱连电费都不够。不过,我在新浪微博上得知,张宴先生竟然也把他的“张宴的博客”搬到家里的北京联通ADSL线路上了,参见:iPhone大小的盒子服务器Cubieboard。不过,他用的是节电的迷你电脑 cubieboard。所以,ADSL线路上架设网站的可行性也未必像我说的这样不堪?下面我主要小结几点心得:网站备案,动态 DNS 解析,邮件服务,数据备份。而像域名申请、服务器软硬件架设、路由器端口映射之类的问题就不提了。

网站备案:
这里的备案是那种非营业性质的如个人网站的备案,不涉及专项审批的备案,而是像"蜀ICP备xxxxxxxx号"的这种。原来我的网站也通过了这个备案,有了备案号。后来,我把网站移到自己架设的 ADSL 线路的服务器上,前几天查询了一下我的这个备案号已经没了。据朋友说,现在的备案信息一般是由接入服务商控制,假设你原来在一个服务商那里买了空间,备了案。后来把网站迁出这个服务商而没有在其他服务商入驻,原来的服务商就会把你的备案号拿掉。还有,我曾经试过在电信部门的备案网站试过另一个网站的自主备案,上面要填一个固定的 IP,显然,ADSL 用户是没有这个条件的。我胡乱填了一个IP。约一年后,电信的备案部门问我还备案不,我那个网站已经自己挂了,自主备案也不用了。网上有说,像这种ADSL用户,要么在一个服务商那里取得备案号再迁出(这种做法貌似在我这里已经证明行不通了),要么就不备案,就那么混就是了。前几天,我不在 ADSL 线路上架设网站了,但也不想再备案麻烦了,在朋友的建议下在网上搜索了一下,就在网上找了一家服务器在海外,不用备案的 WordPress 博客外贸企业主机。买了一款最初级的,主要参数如:Linux 系统,100元/年, 空间600M,月流量8G,数据库5个,建站数5个等,现在还送免费的 ssh 海外代理帐号。有需要的朋友可以用右上角的电子邮件联系我,我告诉他地址。至于缺点嘛,海外的服务器,有可能国内用户访问效果不如国内服务器好?至于没备案号有没有什么缺点,我不太清楚,原来我运行在ADSL线路上的网站备案号什么被取消都不知道,还没人找到我叫我把没备案的网站关掉。而且,国内不是还有专门提供动态DNS解析的商家吗?我觉得,用动态DNS解析域名的网站现在能有正规备案号不会多吧?不过,就算没有备案,也不要在网站上做些违法乱纪的东西,假设问题大了,就算你肉身翻墙,国际上不是还有“引渡”这种手段么?

动态DNS解析:
我试过的动态DNS解析服务有两家,oray.com 和 dnspod.cn ,前者有官方的封闭源码的 Linux 客户端,后者提供了通用的调用 API 接口,在 Linux 可以自己编写脚本使用,也可以使用第三方的各种客户端。还有关于 DNSpod 的开源项目。DNSPod 的免费套餐里面还有邮件或短信(次数限定)提醒的停机监控等等。我后来一直用的就是 DNSPod 的免费套餐,现在就算有了固定IP的虚拟主机,也没打算搬走,因为它还有监控功能呢。在 ADSL 线路上时,我也自己写了一个小脚本,用 curl 进行动态DNS更新。参见:Ubuntu 6.06下 Apache 转 Nginx 里面的 curlddns.sh 。里面的方法是从路由器管理界面里取得公网IP,也可以使用互联网上的公网IP检测工具,如我使用的就是 http://ks.cn.yahoo.com/ipapi.php 。但是,使用互联网上的IP检测工具有一个问题,比如铁通 ADSL,我碰到过它在路由器上显示的公网IP跟用工具检测不一样,只有路由器管理界面的那个IP地址才有效,所以这个时候就只有从路由器管理界面取得公网IP了。

另外,非常重要的一点是,并不是所有的ADSL线路上架设的服务器都可以被全世界访问。如,我曾碰到铁通ADSL上架设的服务器不能被电信ADSL用户、不能通过美国日本的SSH代理访问的情况。有的地区有的线路会封闭80端口,有的互通异常。所以,在你想让全世界都能访问到你架设在ADSL线路上的网站时,你最好是事先多测试一下。这里有一个旧的文章可供参考:全国各地宽带支持花生壳统计(更新日期2011年10月5日)

邮件服务:
据我所试,ADSL动态IP线路上是不能架设常规的邮件服务器的。就算你在域名控制面板中作了正确的邮件服务器A记录和MX记录都不行。我记得好像自己试过通过ADSL线路上架设的邮件服务器往别的邮箱发送邮件被拒收,原因好像就是因为邮件服务器架设在动态IP上。具体情况我忘了,有兴趣你可以试一下。总之,后来,我放弃了在上面架设邮件服务器的企图,转而使用一种 esmtp 转发邮件的方法。原理是通过 esmtp 把要发送的系统邮件通过其它邮箱发送出去,如 gmail 邮箱。通过这种方式,如程序的重置密码邮件、用户通知邮件都可以正常发送。参见:用 esmtp 通过 Gmail 邮局进行转发系统邮件 v0.1b (正在修正)

数据备份:
实际上这个不是 ADSL 线路上架设服务需要特别注意的,不过,因为我们的山寨服务器不在正规的机房,断电或者其它的意外发生的可能性应该更大些,所以我们更应该重视数据的备份。因为服务器跟备份机器(也是 Linux)在同一局域网,所以给充分备份带来更大的方便。我后来一直采用的方案是:脚本每天定时备份打包数据库先存放到服务器上,当检测到备份机器存在时,就把备份的数据库压缩文件自动scp到备份机器上,成功后删除服务器上的被备份打包数据库文件;web 相关目录每天用rsync增量同步到备份机器上来(变化的内容主要是上传的附件之类)。mysql 数据库备份的命令如:mysqldump -h$hostname -u$username -p$passwd $dbname > $backupname ;通过秘钥实现scp不输入密码传送文件:发送端: ssh-keygen -t rsa,然后 scp ~/.ssh/id_rsa.pub 接收端:/home/user/.ssh/authorized_keys,如果报错,rm ~/.ssh -fr 再重复上面的步骤。题外话,在我另外的备份Linux机器文件的方案中,如果备份机器是 Windows,我的作法是在 Windows 中建一个 Linux 虚拟机,给 Linux 虚拟机分配一个几十G的大虚拟硬盘用于数据备份。我觉得这样可以很好的把备份数据跟 WIndows 中的其它文件分离,还有一个就是省事,免得再研究 Windows 机器怎么样备份 Linux 中的数据了。至于有没有其它后遗症,我还暂时没想到过。

另外,我还在这台 ADSL 线路上架设的服务器上试验过负载平衡,不过失败了,问题可能主要在于动态 IP DNS 解析生效时差和虚拟机过多导致路由器负荷加重。参见:是误入岐途还是勇于探索?

好了,几点ADSL线路上架设 Linux 服务器上的心得至此为止,欢迎访问来信来评批评指正加油交流。谢谢。

4 thoughts on “ADSL 线路上架设 Linux 服务器小结”

    1. 学习一下,Ubuntu Server 还是很好配置的,基本上 apt-get 工具就可以解决安装问题了。配置好了,放在那里,除了 apt-get upgrade 更新外,就不用怎么管了。因为没有多余的冗余软件和图形界面等原因,Linux 的硬件利用效率应该比较高。而且我用了7年Linux了,包括桌面系统,还没有发觉中过病毒什么的。

  1. 你好!
    我看了您的这篇博文,觉得我有个东西你可能会感兴趣。
    我在淘宝上花80大洋买了一台pogoplug的基于arm的NAS。内置定制的linux。
    我最近在花费大量的时间折腾这玩意,发现它很有搞头。
    起初我购买它的原因是想在家里用旧电脑做一个NAS,不过旧电脑的功率确实有目共睹,费电。然后我就考察了一下,ARM是必选无疑的。于是我淘到了pogoplug。
    主要是这玩意配置还算不错,armv6l 700mhz双核,千兆的网卡,关键还内置sata口及minipcie口。
    我在上面自己加电源安上了硬盘,装上了debian,而且重新编译了内核,着实不错。当然做你的web服务肯定是戳戳有余的,我编译了arm的花生壳,开机自动解析,还算不错。自己做个家用的NAS也不错。额定功率才18瓦。
    你可以考虑考虑这玩意。用arm替换你的赛扬,省电些,也蛮有意思。

  2. 嗯,这类的定制系统确实有用。我看张宴用的那种迷你电脑最大功率是10瓦,估计你的18瓦是加了硬盘的原因。以后有条件了再玩玩。

Comments are closed.