我的超级路由器——兼谈澳洲宽带

说起来,这个月除了忙着复习考试,倒还做了一件很有趣的事情——用捡来的电脑组了一台路由器。说起捡,这里还真能捡到满多东西:床、桌子、柜子、茶具……不仅仅留学生爱捡,貌似当地人也有“勤捡”的习惯,看着能用就拿回去用了。反过来,不想用的也不费神去卖,直接往门口一丢,谁爱拿谁拿。

这个电脑就是我半年前捡的。当时检查了一下,奔三733的CPU,VIA693A的主板,S3的显卡,10G的昆腾硬盘,没有内存条,倒是SCSI卡,SCSI刻录机的带了一堆。花$5从电脑商店拿了根二手128M SDRAM,呵呵,还真跑起来了。想当年上大一的时候用VIA693A主板把赛扬850超到1.2GMhz,真令人怀念。已经快8个年头了吧。

于是这个破电脑就被我存着,直到前段时间想到了一个十分严肃的用途。缘由是这里的宽带计费。

澳洲的宽带不像国内包月那么普遍,这里极少有公司提供不限流量的宽带计划。月租在限定的带宽下只涵盖一定的流量,超出的部分要不额外交钱,要不就限速使用。以我申请的TPG 1.5Mbps ADSL为例,$69.99月租包50G(高峰25G,非高峰25G)流量,超出部分限速到64k。值得注意的是,一般广告中的ADSL速度只是下载速度,实际上传速度会比较低(比如我的上传最大256k,限速后为64k);再是不同公司对于高峰时段的计算方法不一样。TPG在很多包月计划中是这样计算的:高峰为早晨9点~凌晨4点的19个小时,其余5个小时为非高峰。这样计算明显不公;但尽管如此,TPG仍然是墨尔本公认的性价比最高的公司。

50G是够我一个人用,但如果给全屋6个人共用的话就紧紧巴巴了。最快的一个月,我们十天用完了全部,然后余下的日子在连Modem速度都不如的网络(想象一下六个人共享64k带宽)中熬过。唯一的解决方法就是限制出口带宽,延长使用时间;但仅仅限制出口带宽的话,有可能一两个人的使用就占满所有线路而导致其他人无法上网——尤其是遇到讯雷这样的垃圾软件。所以必须通过路由器来限制每一个终端的带宽。

但能提供这种限速功能的路由器都是昂贵的企业级路由,我也只能从软件实现上来考虑。Windows下的宣称能实现类似功能的软件有不少,我也试用了一些,但基本上都与宣称的相差甚远。它们一般可以分成三类:

  1. 以ISA为代表的大型专业软件。配合相关插件能够满足对内网客户端的精确控制;但系统要求高,资源占用大,貌似不适合那台8岁的老电脑;
  2. 以SoftPerfect Bandwidth Manager为代表的小型网关型软件。我试用它的多个版本,发现它在那台装上精简版Win2000的老机器上仍然不够利索,经常造成很大的网络延时。功能上的确是恰好满足我的需求,但装在网关上简直就是一堵墙。没办法,只能再找别的;
  3. 以“网络执法官”为代表的黑客型软件。它们号称什么能“穿透防火墙”进行局域网“管理”,可以运行在局域网的任何一台电脑上;其本质就是利用ARP欺骗进行的对路由器为主的赤裸裸的网络攻击。通过客户端和路由器端的防火墙可以很容易屏蔽掉这种“管理”。

在搜索Linux解决方案的时候,一款绝佳的路由软件进入我的视线:MikroTik RouteOS。其实它是一款基于Linux内核的路由操作系统,可以轻易的在一台数十年前的奔腾电脑+32M内存上运行起来。它有号称ISP级的路由管理和防火墙扩展;通过简单的命令组合,可以实现很多高级路由器才有的功能——甚至可以通过一块无线网卡组建一个无线接入热点。也许下一步我就打算这么做,不过现在先用两块网卡组接了我的家庭网络:一块接我从ebay上买的二手ADSL Modem,一块接我从国内带的四端口家用无线路由器。大致罗列一下我那台“超级路由器”——也就是捡来的破电脑正在运行的服务/功能:

  • 路由(废话!)。别小看这个功能,路由效率直接关系到上网速度。要知道Win2000高级服务器版不经过设置还没有路由功能呢;这个系统装上就是台路由器了;
  • DNS转发;
  • NAT转发;
  • DHCP服务器,支持ARP绑定,相当于一个MAC地址过滤器,防止未经授权的计算机蹭网;
  • 防火墙。目前只用了基本的设定,觉得没有必要导入所谓的“企业级”防火墙设定;
  • 具有缓存的透明代理。这个功能在这里很实用!它能帮你一个月节约上G的流量!通过NAT重定向80端口的流量到服务器,就能缓存所有人上网的内容。这样重复访问一个网站的时候,大部分内容可以由缓存提供从而达到节约流量、浏览加速的效果。其实TPG之所以能那么便宜(相对于墨尔本其他的大服务商)很大程度上也是因为它在ISP级别上使用了透明代理;
  • FTP服务器;
  • 客户端限速管理;
  • P2P限速管理;
  • ……

这个月直到今天还没有超出50G的流量,真是可喜可贺,可喜可贺~

确切的说,MikroTik RouteOS并非开源软件,只是在系统核心和一些组建上使用了开源的代码;勉强打上一个开源的标签吧。其相关中文资料相当丰富,有兴趣的话大家可以自己搜索。

MikroTik RouteOS官方网站