TOMATO的相关资料

来源:百度文库 编辑:神马文学网 时间:2024/04/28 21:47:46
一、Tomato是什么?
Tomato固件又叫番茄固件(可简称番茄),它是国外无线路由器资深玩家根据Linksys原厂固件开发出来的驱动程序,通过Tomato刷新操作,无线路由器可以具备更强大的功能以及更灵活的管理能力。
Tomato的特点就是容量小、占用资源少,tomato只有2.7MB大,开机后占内存7.5MB,而ddwrt的std版则有3.5MB,开机后占内存10MB。此外,和DD-WRT一样,Tomato适用于Linksys WRT54G/GL/GS和Buffalo WHR-G54S/WHR-HP-G54以及其他多款基于Broadcom核心的无线路由器。
和DD-WRT相比,Tomato在流量控制、QoS服务质量、管理等多个方面都有不俗的表现。
在刷机之前,我们需要获得适合自己设备的Tomato固件程序,可以到番茄的官方站点下载,地址为http://www.polarcloud.com/tomato/  ,中文用户可以到www.tomatochina.com 查看
TOMATO与DD-WRT的差别:
首先需要了解的是不管我们将自己的设备刷新成何种固件驱动,他的系统都是基于Linux平台的。DD-WRT与TOMATO各有各的长处,DD-WRT固件是目前国内外最为流行和红火的固件之一,该固件是在Open-WRT固件基础上改进后发布的,很多功能都是取自Open-WRT,在应用范围上DD-WRT支持最多的硬件平台,并且新版本的发布也很及时。随着DD-WRT新版本的发布以及多家媒体的宣传DD-WRT的应用范围越来越广。
而TOMATO固件则是在最近非常火爆和逐渐流行的固件,个头比较小,外号番茄也给人一种塌塌实实的感觉,实际使用起来运行非常稳定,基于SVG的图形化流量图非常有特色。他是由HyperWRT研发团队中的一员开发的。
对我们普通用户来说,tomato和ddwrt的最大区别就在于tomato不支持万能中继了,不过tomato仍可以用有线连接的方法来实现中继.鉴于tomato有着优秀的带宽控制,所以你要是经常下载的话,tomato会是个不错的选择。
二、tomato的刷写方法
现在网上流传刷Tomato的方法,看起来很复杂,说要刷Tomato,必须先刷DD-WRT,再用进telnet用nvram show | grep http_passwd 取得密码,再刷Tomato等,这样搞得一些想用Tomato的朋友,因此望而却步了……
首先,你得确定自己的机器支持Tomato固件,否则请不要尝试刷Tomato,关于哪些机器支持Tomato,请看http://www.tomatochina.com/dispb ... mp;ID=20&page=1,如果你的机器型号及硬件版本号出现在了列表中,那么,恭喜你,你可以使用Tomato了
去tomato官方网站下载最新的Tomato固件,一般你会得到image.7z的文件(也可能会是image.rar,解压后仍会得到image.7z)。这个文件也是个压缩文件,需要用最新版的WinRar解压缩软件下解压,如果你的WinRar不能打开image.7z,请上网下载最新版的WinRar来解压。解压后,会得到WRTSL54GS.bin,WRT54GSv4.bin,WRT54GS.bin,WRT54G.bin,WR850G.bin,tomato.trx,readme.htm这些文件,其中tomato.trx是通用固件,在支持列表中的机器都可以用它,那我们就用它吧!
因为一些固件只认bin文件,所以,请先把tomato.trx改名成tomato.bin
然后,就下面的环境刷到tomato分别进行介绍
注:升级固件请用有线而不要用无线,并且在升级过程中千万不要断网断电。
第1种环境:从Linksys WRT54G/GL/GS等原厂固件刷到Tomato
先登录路由器,默认的IP地址是192.168.1.1,密码和用户名都是admin,如果你更好了路由器的IP及密码,请用你自己的设置进行登录,在此我按默认的设置进行介绍:
在浏览器中输入192.168.1.1,在弹出的输入框的两项都输入admin后就成功登录了路由器。
下图以WRT54GS原厂固件为例进行说明:
进去后,点红圈那里的“Administrator”(在WRT54G中文固件就是“管理”),进入下图
点击“Firmware Upgrade”(WRT54G中文固件叫“固件升级”),进入固件升级页面,选“浏览”,然后,到你解压tomato的路径下选中刚刚的tomato.bin,如下图:
点击红圈中的“Upgrade”(WRT54G中文固件叫“升级”),然后就等着Tomato中文版固件出现在你面前吧!
请记住,从WRT54G/GS/GL等固件直接刷过来,你路由器原来的IP和密码是什么,现在仍然是什么!用户名则是admin或root都行!(因为原厂固件和Tomato都采用不加密保存密码的方式,所以刷过来密码是不会变的,并不像网上流传的要先刷DD-WRT再刷Tomato,这样就自找麻烦了!)
清理NVRAM:
为了你的路由器能稳定的工作,在刷到Tomato后,你需要清一下Nvram,这并不是什么复杂的工作,Tomato已提供了这个功能。
在左边的菜单选“超级用户->备份恢复”中,有个
“恢复默认设置”下面,选择“清除NVRAM中所有数据(完全清除)”后,点“确定”,
如下图:
第2种环境:从DD-WRT固件刷到Tomato
DD-WRT因出来的较早,功能也强大,能做中继及有VPN SEVER是它最大的优点,而且当时Tomato还没有中文版,所以DD-WRT是大家很熟悉的第三方固件了,但是,DD的弱点也很明显的,稳定性不好,经常进不了管理页面,一些功能根本没用!这样也导不少用户对他失去了一些信心,而Tomato中文版问世以后,更多的朋友就加入了Tomato阵营中来了,我也是从DD-WRT转学过来的^_^
首先,DD用户想刷Toamto的要注意了,特别是那些路由器没有复位键的朋友,本段一要看要做,如果你的DD登录密码不是admin,请先把登录密码改成admin再进行后面的工作!就是在DD的工“管理->普通管理”中进行设置
因为DD采用了加密方式保存密码,admin加密码后是bJz7PcC1rCRJQ这一串字符,刷到tomato后,用户名是admin或root都行,但密码是bJz7PcC1rCRJQ这串字符,这就是我要求你改 DD管理密码为admin的原因。
然后,到DD的“管理-固件升级”中选“浏览”,在弹出的窗口中,定位到你解压Tomato的文件夹,双击tomato.bin,回到DD的界面,点“升级”按纽,
升级成功后,会出现如下页面:

点红圈中的“继续”按纽,出来tomato的登录页面,用户名输入admin或root都行,密码输入“admin”加密后的密文:bJz7PcC1rCRJQ到密码输入框中,点“确定”按纽,哈哈,Tomato就会展示在你面前了!(其实有硬件复位功能的大多数机器,如果刷后登录密码不对,都可以通过复位键来设定成默认值,比如linksys系列的都支持。)
别高兴太早,登录到Tomato后的第一件事,清Nvram,如何清?请看第1种环境教程中的“清理NVRAM”部分。
第3种环境:从Buffalo原厂固件刷到Tomato
从Buffalo升级到Tomato,需要用TFTP的方式上传固件,还有一些人用WinHex或UE等工具改tomato.bin成相应型号的文件头后,也能直接从WEB中上传。用TFTP升级的操作
用网线连接路由器的任意一个lan口,设置默认网关192.168.1.1,如不是这个修改为相应地址。
开始菜单-运行-键入CMD,确定进入到命令行模式,定位到固件所在位置,假如固件放在C盘的根目录下,则键入cd\  回车即可,再键入tftp命令 :
tftp -i 192.168.1.1 PUT 固件名.bin
接着拔下路由器电源,稍等再插上。
然后看路由器的灯,首先会是所有lan口的灯都亮,然后过一瞬间,会只有和电脑相连的那个LAN口的灯亮,大约过一秒钟时间后按下回车,看见LAN口指示灯会快速的闪亮,表示正在传送数据,过大概一分钟时间,会出现传送数据成功的提示。
出现传送成功字样后,请等待至少3分钟,路由器不能断电,也不要对路由器有所操作。
等待3分钟以后,将电脑的IP设为自动获取。最后应该会获得一个192.168.1.×××的地址,网关192.168.1.1。
然后打开IE,输入192.168.1.1 用户名为root 密码为admin,刷新固件就完成了。
如果键入回车的时间晚了。在经过一段时间的等候,会给出一个出错的提示,如timeout occurred,只要重新照以上步骤来一遍就行,不会对路由器有影响。
有个TFTP软件升级,操作更简单,不用进入到命令行模式去操作了
经过下面的QoS设置可以让BT满负荷下载,上网还是快如飞(当然没有不下BT的时候那么快,不过比不用qos快太多了),一个字,爽。
Basic (基本设置)
Enable QoS        激活QoS,选定。
Prioritize ACK        提升ACK优先级。大家知道TCP协议是基于发送-〉应答机制的。服务器只有收到客户端的应答之后才会发送下一个数据包。ACK就是这个应答。默认这个选项是选定的。不过值得注意的是P2P软件会产生大量的ACK数据包。比如说在下载BT的时候,如果这个选项被选定的话,你就会看到许多不明的Highest流量。这些Highest的流量就是BT产生的ACK数据。所以如果你经常下载P2P软件的话我推荐把这个选项关闭,以免产生不必要的Highest流量。干扰其他正常的网络应用。
Prioritize ICMP        提升ICMP的优先级。ICMP就是Ping之类的数据包。选定这个选项的话,ping值会好看一些。
Strict Rule Ordering        严格按照规QoS则顺序执行。选定这个选项的话,QoS的规则就会按照Classification里面的顺序从头到尾执行,直到碰到一个符合的规则。否则L7,IPP2P规则会先被执行,然后才执行基于端口,IP地址的规则。建议选定,以便于精确控制。
Reset Classification When Making Changes         在设置被改变的时候重置Classification。选定的话每次改变qos设置,所有的连接都会被重新评估。否则你必须从启动正在下载的程序,重新连接才能使设置生效。推荐选上。
Default Class        缺省QoS级别。这个指的是所有未被定义的协议的优先级。这个要配合classification里面的设置来决定。默认是Low。
Outbound Rate / Limit
Max Bandwidth        kbit/s上行速度。注意,这个值千万不能乱填。它直接决定了qos是否能够正常工作。不适当的值不但qos不工作,严重的话在下载的时候连网都上不去了。这个值应该是你网络上行的最大带宽x90%。填得太大的话QoS就会发送比你的网络能承受的更多的数据,从而使网络阻塞,QoS也失去效果了。
而且必须是实际的最大带宽而不理论最大带宽。比如说ADSL最大理论上行是512K,但是我实测下来只有400多K。因为ADSL传输的时候要给每个包加载包头还有校验位,占用了一定的带宽。大家一定想我怎么才能知道我最大上行呢?其实用番茄就可以测到。随便找一个BT的种子下载,要下得人多的。然后不限制上行速度。观察番茄的流量监视表,当上行速度稳定为一条直线的时候就是你的最大上行带宽。
番茄把从高到低级别分为了Highest – 〉Class E几个级别。Highest是最高的级别。Class A -> E是番茄作者自己定义的几个级别,他的优先级比Lowest还低
下面是我的设置,大家要根据自己的实际带宽相应设置。
Highest          320 - 400 kbit/s
High              40 - 396 kbit/s
Medium           20 - 392 kbit/s
Low              12 - 388 kbit/s
Lowest           8 - 380 kbit/s
Class A          4 - 200 kbit/s
Class B          4 - 160 kbit/s
Class C          4 - 120 kbit/s
Class D          4 - 80 kbit/s
Class E          4 - 40 kbit/s
Inbound Limit
Max Bandwidth        kbit/s 下行速度。其实这一项实际意义不大。下行的qos是没有意义的,因为数据包已经通过网络瓶颈(你的宽带线路)到达你的路由器了,再限制速度的话路由器只能丢弃多余的数据包。直接结果就是这些数据包不得不重新传一遍,白白浪费了网络带宽。下行的qos只有ISP支持才可能实现。大家可能会想,我只用上行的QoS有什么作用呢?我要的就是能够控制下行的速率啊。其实控制了上行,间接的也就控制了下行。你想想如果某个协议的网络请求能够优先发送出去,返回的数据是不是也相应的会先到达呢?
这里我填入了一个很大的值10000K,其他全部选None,不限制下行速度。
当然在特定的情况下,这个选项还是有用的。具体我就没有研究了。毕竟我只有512k的带宽,当然要榨干它。
Classification (分类设定)
这里就是设定哪个网络协议拥有什么样的优先级的地方拉。一共有3行。
第一行:
地址:可以是源或目标IP地址或MAC地址。如果你想控制来自某个客户端的,就要在这里填上相应的值。
优先级:Highest -> Class E。定义符合这条规则的网络协议的优先级。
描述:对这条规则的简单描述。
第二行:
网络协议:一般选TCP/UDP。除非是一些特殊的网络应用。
端口:应用于所有经过这个端口的数据
第三行:
IPP2P: 这是一种P2P协议的过滤器。能够识别常见的P2P协议,比如BT,电驴。不过我实际使用下来发现基本没用。
Layer 7:第七层过滤器。这是一种非常高级的过滤器,工作于网络的最高层:应用层。它能够识别数据包里面的字符串,从而识别数据包是那个应用程序发出来的。番茄里面包含了许多常见的网络应用程序,如BT,电驴,迅雷,CS,魔兽等。
值得注意的是L7过滤器因为非常复杂,所以要小心使用。有些过滤器会overmatch,也就是说会把许多其他程序发出的数据包误认,比如说SkypeOut过滤器。有些过滤器会undermatch,也就是说不捕捉到全部的流量,比如说BT过滤器。实际使用中我发现Skype out过滤器会把大约5%的BT数据认为是skype的数据,而BT过滤器则有20%左右的BT数据没认出来。在这里我们要尽量把overmatch的过滤器放在后面,undermatch的放在前面,以减少误报的可能性。有些过滤器是另一些得子集,如果你把这些子集放在他们的父集后面,他们是不会生效的,因为父集过滤器已经把数据包截获了。例如,http-video是http得子集。另外,并不是所有的L7过滤器都能保证工作,有些实际上效果不佳。要了解更多的信息比如那些是overmatch/undermatch的,那些确定是有效的,请参看L7过滤器的主页http://l7-filter.sourceforge.net/protocols
另外值得注意的是L7过滤器很占用系统资源,它会明显占用CPU和内存的使用。加载了不少L7的过滤器后,我的WRT54GS(32M内存)的内存使用稳定在21M左右。用WRT54G的兄弟可得悠着点,因为只有16M。内存溢出的话说不定就死机了。
在这些设置里面,端口/IP地址的过滤器是最有效的,能够100%的有效,而且资源占用率最低。IPP2P和L7过滤器并不是100%有效。
下面是我的一些设置,大家还要根据自己的实际情况量身定做。。
TCP/UDP
Dst Port: 53        Highest        DNS
DNS非常重要,一定要设置为最高,并且放在最前面。不这样的话在大量下载的时候,DNS数据包可能会因为网络阻塞发送不出去,导致网页无法访问。
TCP/UDP
Port: 500,1701,1723,4500,3389,33089        High        VPN,RDP
我经常使用公司的VPN,把VPN设为高,保证VPN连接可靠。
TCP
Dst Port: 80,443
Transferred: 0 - 1024KB        Medium        HTTP 0-1024k
TCP
Dst Port: 80,443
Transferred: 1024KB+        Low        HTTP 1024k+
HTTP优先级设为中。也就是浏览网页的优先级。每个http连接流量超过1024k后优先级为低,保证了HTTP下载文件不会影响网络的浏览。
TCP
Dst Port: 21        Low         FTP
ftp优先级为低,保证ftp下载不会影响网络浏览。
L7: bittorrent        Lowest        BT
TCP/UDP
Port: 25000        Lowest        BT
BT 优先级设为最低,BT下载不会影响其他任何应用。在这里我使用了L7和端口两种过滤器,完全保证了所有BT流量都被过滤了。另外需要注意的是BT客户端的连接数不要设的太高了,否则效果打折扣。我512k的带宽,BitComet设置全局100个下行连接50个上行连接正好。
无线客户端、网桥、AP+WDS简明设置手册Tomato版
先给出一个简单的网络拓扑

如图所示,AP1和PC2之间距离过长并且有双重厚墙阻隔,只能收到微弱的wifi信号,基本无法顺利上网,这时我们就需要用刷了Tomato的AP2来延长和加强AP1的信号,使得PC2可以通过AP2顺利连上无线网络,并且还可使PC1也通过AP2的Lan口连上Intelnet。另外,因为Tomato不支持中继功能,所以要想用万能中继蹭网的话只能在AP1的Lan口上接个AP3来实现无线中继。
1、  无线客户端模式
首先通过PC1连上AP2,在无线搜寻内刷新一下,看看能不能搜到AP1

我们看到AP1被搜寻到了,多刷新几遍,能稳定在60db上下,信号质量不错!
然后进入网络设置,WAN选DHCP(前提是AP1开启了DHCP,否则选静态IP),为防止网段冲突(大多路由的默认IP都为192.168.1.1),我们把AP2的IP改为192.168.3.1,掩码255.255.255.0,开启LAN的DHCP,无线模式选“无线客户端”,按“信道选择”下拉菜单右面的“扫描”,可以扫描到AP1,在SSID内填入扫描到的SSID也就是“AP1”。最后按“保存设置”,等待路由重启后你的PC2就可以上Internet了。(有时要将本地网卡禁用再启用一下)

到这里蹭网就基本成功了,不过Tomato设置了无线客户端后只能通过PC1有线上网,AP2本身不再发射无线信号了,这是Tomato的最大弊病,强大稳定的Tomato居然缺了蹭网最有用的中继功能,真叫人扼腕三叹!不过我们也有变通办法,花个几十元购个AP3,把AP2和AP3有线连接,再由AP3发射无线信号,那么PC2就可以无线上网了。这里要注意,AP3的IP最好不要和AP2设在一个网段,有DHCP的话也关闭掉,就是当交换机用。还有AP3的SSID不要和其他两个AP相同。
2、  无线网桥模式
无线网桥模式和无线客户端基本一样,只是网段不同,选了无线网桥模式后WAN口和LAN的DHCP会自动关闭。在客户端模式下PC1从AP2获得IP地址,而网桥模式下,PC1是从AP1分配到IP地址。

看上图,如果我们要再登陆AP2进行其他设置的话,由于前面把AP2的LAN的IP改为192.168.3.1了,但现在PC1的IP不是和AP2一个网段,所以登陆不上AP2,要把本地网卡的IP手动改成192.168.3.x就能登陆了。
以上都是在AP1没有WDS模式或者不能登陆到AP1进行设置的情况下采用的方法,就是通常所说的蹭网了!当然,如果AP1加密了我就没办法了,除非你破解了密码给我。
3、  AP+WDS模式
这个模式下我们就不再需要累赘的AP3了,PC2可以直接通过AP2无线上网。
登陆AP1,其他不变,无线模式选“AP+WDS”模式,在远程MAC清单内填入AP2的无线MAC地址,最多可以填十个副AP的MAC。保存设置。

再登陆AP2,关闭WAN和DHCP,LAN的IP地址必须和AP1同一网段,这里我们写192.168.1.2,网关为192.168.1.1,无线模式同样选“AP+WDS”,MAC清单填AP1的无线MAC地址,保存设置。重启后连上AP2的有线PC1和无线PC2都能上网了。由于两个AP组成WDS后都是同一个SSID,无线终端就可以做到在此两个AP范围内无缝切换,比中继快多了。

4、  无线分布系统WDS
这个模式就是AP只能组成WDS而不再作为无线发射端给无线终端使用,如果AP1选这个模式,那么A区的无线终端就接受不到AP1的信号,此时只有AP2才能接受AP1信号,反过来一样。如果两个AP全是这个模式的话,A区B区就都没有无线信号了,只能采用有线上网。
以上列子都没有采用无线加密,要加密话只要两个AP的加密方式和密钥都设置成一样就可以了