更强——用脚本武装无线路由器
网络设备
相信不少读者都通过刷新无线路由器核心固件了解了“玩”路由器的真谛(如使用Tomato、DD-WRT等第三方固件),如果你想自己动手将无线路由器变得更加完美,这时就需要根据自己的实际情况自定义脚本来设置路由参数和功能了。
自定义脚本的意义
使用过Tomato以及DD-WRT固件的读者都知道此类固件的强大之处在于它们可使用户能通过QoS服务质量动态分配网络流量,保证重要的网络服务数据优先传输。不过,并不是每个网络服务(例如针对P2P软件分配带宽而不是彻底封锁)都默认集成于第三方固件中,有时固件中默认的流量限制使用起来也不太方便。
为了解决以上问题,有些网友开发出了具备各种功能的脚本,弥补了固件设置不灵活的缺陷,我们可通过脚本“武装”无线路由器,根据自己的使用环境和网络应用来自定义流量传输优先级以及带宽大小。
原理及准备工作
众所周知,不管是DD-WRT还是Tomato,它们都是基于Linux系统研发的,自身的每个功能实际上都是通过程序段来实现的。我们常说的程序脚本、执行脚本就是程序段的一种。恰巧第三方固件为我们提供了运行脚本的基础,所以我们可以在对应窗口中运行我们自定义的功能脚本,从而获得另类服务和扩展应用。
要使用脚本必须先编写相应的脚本语句,相信大部分读者都对脚本语句非常陌生,要自己编写难度非常大,因此笔者在这里向各位推荐一款简单方便的脚本生成器(下载地址:http://download.cpcw.com),通过该生成器提供的脚本生成向导,我们可以轻松生成自己需要的脚本程序。虽然这款工具是针对Linksys WRT54无线路由器开发的小工具,不过适用范围非常广泛,生成的脚本同样可以正常运行在其他品牌的无线路由器上。
开始武装
通过脚本程序让自己的无线路由器获得某种特定功能需要两个步骤来实现,第一是生成脚本,第二是应用脚本。
1.生成脚本
生成脚本的工作由脚本生成器来完成,启动脚本生成器后选择英文。
第一步:在程序主界面中点击左上角的齿轮按钮,出现基本参数设置界面,填写路由器的管理IP地址、网络连接的下载速度(Download speed)以及上传速度(Upload speed)(例如笔者使用的是1Mbps ADSL,所以填写下载速度为1024Kbps、上传速度为512Kbps)。
第二步:点击右下角的下一步按钮进入固件版本选择界面,在这里可以根据无线路由器的固件类型选择正在使用的版本(包括hyperWRT、DD-WRT、Tomato等)。还可在右边的固件设置自定义中针对上传/下载速度进行选择,不过笔者建议各位用户保持默认选项(图1)。

第三步:接下来修改TTL界面。由于黑客可以通过Ping命令查看目的设备的TTL信息,从而了解无线设备的基本参数以及计算机操作系统的种类,因此为了提高安全性,我们可以修改默认TTL值,在TTL修改界面中可以针对自己的TTL值进行“+1”或“-1”操作,也可以强行设置TTL的值。
第四步:最后进入生成脚本的核心窗口,在这里点击右键可以看到“automatically share bandwidth”(自动分配带宽)选项,该选项中是软件提供的几个默认的QoS脚本,可以根据需要针对WWW服务、Mail服务、P2P类软件的带宽使用情况进行“均衡”,对于初学者来说可以直接选择默认脚本来达到合理利用网络资源的目的(图2)。

第五步:如果你希望自己设定脚本或默认脚本没有适合自己的,那么可以自行添加新规则。在核心窗口中选择“add new user”(添加新规则),会出现规则设定窗口,在该窗口中我们可针对多项内容进行限制(可针对单IP、IP段、MAC地址、端口地址、第七层应用服务等参数进行设置)。
第六步:当我们按需求添加多个规则后,这些规则会显示在脚本生成器规则列表中。点击“下一步”后,程序会自动生成执行脚本,我们可以通过下方的按钮将脚本保存下来或复制到剪贴板中(图3)。至此我们就完成了执行脚本的生成工作,接下来就需要将它们应用在无线路由器上了。

2.应用脚本
一般的高级固件都会保留脚本执行接口,在管理界面中往往有选项来执行这些脚本命令,我们只要把脚本指令复制到执行窗口中然后应用即可。运行脚本后,无线路由器会自动根据脚本中的内容控制带宽流量并将指令保存在自己的NVRAM中,即使重新启动设备也不会丢失。
下面笔者介绍一下应用脚本的办法。在DD-WRT中,可以进入“管理”中的“诊断”,然后在“命令外壳”的“命令”窗口中粘贴全部脚本命令,接着保存并应用即可。在Tomato中,进入管理界面的“Scripts”界面,在Init窗口中粘贴脚本命令即可。
脚本的功能不仅局限于本文介绍的限制带宽,我们完全可以通过脚本实现多项应用,例如建立自己的NAT防毒体系、在无线设备上加载功能更强的过滤指令、制定更灵活的访问控制策略等。一个真正的脚本高手可以将无线设备的各项功能发挥得淋漓尽致。