撤掉 DD-WRT,换上 Tomato

上周发现刚配置的 Linksys WRT54GL 无线路由器很不稳定,时断时续,刚开始没注意以为是信号干扰,后来经常发生,1小时就断好几次,已经不能忍受了。检查了所有路由器的配置,发现有2个路由器配置错误,或者说这2个路由器只刷了固件根本没有配就放上去了(现在大学生做事情真让人不放心)。原因没有细想,大概就是 LAN 网络接口从 DHCP 服务器得不到 IP 地址的时候,无线网络模块就企图从周围无线路由器得到 IP 地址,但是 WLAN 的 MAC 地址没有在 DHCP 服务器注册,所以永远不会得到 IP,并且影响了其他无线路由器。

上面是个小问题,重新配置一下就可以了。遇到另外一个问题是,几个 Linksys WRT54GL 刚启动的时候运行稳定,过10分钟左右就出现丢包、连接延迟超长等不正常现象。检查了多遍路由器配置没发现问题,用 sniffer 探包发现路由器运行一段时间后就从 DHCP 服务器那里得不到地址了,然后过段时间又好了。DHCP 服务器应该没什么问题,我们 n 多 PC 都在用,最后怀疑到 DD-WRT 头上。

在 DHCP 服务器上 ping 无线路由器(因为篇幅关系,下面数据是截取的、不完整):

$ ping 192.168.1.96
PING 192.168.1.96 (192.168.1.96): 56 data bytes
64 bytes from 192.168.1.96: icmp_seq=0 ttl=64 time=651.472 ms
64 bytes from 192.168.1.96: icmp_seq=1 ttl=64 time=257.708 ms
64 bytes from 192.168.1.96: icmp_seq=2 ttl=64 time=3.930 ms
64 bytes from 192.168.1.96: icmp_seq=3 ttl=64 time=2.213 ms
64 bytes from 192.168.1.96: icmp_seq=4 ttl=64 time=2.196 ms
64 bytes from 192.168.1.96: icmp_seq=5 ttl=64 time=74.325 ms
64 bytes from 192.168.1.96: icmp_seq=6 ttl=64 time=2.098 ms
Request timeout for icmp_seq 7
64 bytes from 192.168.1.96: icmp_seq=12 ttl=64 time=3391.375 ms
64 bytes from 192.168.1.96: icmp_seq=13 ttl=64 time=2393.664 ms
Request timeout for icmp_seq 14
Request timeout for icmp_seq 15
64 bytes from 192.168.1.96: icmp_seq=26 ttl=64 time=5046.445 ms
64 bytes from 192.168.1.96: icmp_seq=27 ttl=64 time=4046.750 ms
64 bytes from 192.168.1.96: icmp_seq=28 ttl=64 time=2.309 ms
...

换成 Tomato 固件后,再 ping:

$ ping 192.168.1.96
PING 192.168.1.96 (192.168.1.96) 56(84) bytes of data.
64 bytes from 192.168.1.96: icmp_seq=1 ttl=64 time=0.683 ms
64 bytes from 192.168.1.96: icmp_seq=2 ttl=64 time=0.690 ms
64 bytes from 192.168.1.96: icmp_seq=3 ttl=64 time=0.658 ms
64 bytes from 192.168.1.96: icmp_seq=4 ttl=64 time=0.681 ms
64 bytes from 192.168.1.96: icmp_seq=5 ttl=64 time=0.662 ms
64 bytes from 192.168.1.96: icmp_seq=6 ttl=64 time=0.650 ms
64 bytes from 192.168.1.96: icmp_seq=7 ttl=64 time=0.635 ms
64 bytes from 192.168.1.96: icmp_seq=8 ttl=64 time=0.682 ms
64 bytes from 192.168.1.96: icmp_seq=9 ttl=64 time=0.639 ms
...

Tomato 的数据比 DD-WRT 好看的多,事实上也稳定的多,现在已经把所有固件换成 Tomato,这周再继续观察一下。让 VPSee 不解的是 DD-WRT 出来好多年了,n 多的人在使用,界面专业、文档丰富、社区活跃、也有很多人推荐,为什么实际效果这么差强人意呢?本来觉得 DD-WRT vs OpenWrt vs Tomato 这样的讨论和比较 Linux 发行版一样没有意义,现在看来还是要多尝试,多测试,人家的意见只能参考,不能人云亦云。