纷飞冷雨 发表于 2008-8-1 09:46

[科普]《精彩的WIFI世界》之二&TOMATO的相关资料

一、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会是个不错的选择。

[ Edited by纷飞冷雨 on 2008-8-1 09:49 ]

纷飞冷雨 发表于 2008-8-1 10:02

二、tomato的刷写方法

现在网上流传刷Tomato的方法,看起来很复杂,说要刷Tomato,必须先刷DD-WRT,再用进telnet用nvram show | grep http_passwd 取得密码,再刷Tomato等,这样搞得一些想用Tomato的朋友,因此望而却步了……

      首先,你得确定自己的机器支持Tomato固件,否则请不要尝试刷Tomato,关于哪些机器支持Tomato,请看http://www.tomatochina.com/dispbbs.asp?boardID=4&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中所有数据(完全清除)”后,点“确定”,
如下图:

清除成功后,会出现下面的页面:
点红圈中的“继续”按纽,路由器会恢复默认设置,不管你以前路由器IP和密码是多少,清完后的IP都是:192.168.1.1,用户名admin或root都行,密码是admin,如果点“继续”后要你输入登录账号信息的话,只要照此输入就行了。

耶耶耶!搞定!什么?还想知道怎么使用,这不在本教程范围内了,你先慢慢研究一下。

纷飞冷雨 发表于 2008-8-1 10:08

第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”部分。

纷飞冷雨 发表于 2008-8-1 10:12

第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软件升级,操作更简单,不用进入到命令行模式去操作了

纷飞冷雨 发表于 2008-8-1 10:17

番茄QoS设置超详细教程, DD用户也可参考。(让BT满负荷,上网照样快如飞)


经过下面的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个上行连接正好。

[ Edited by纷飞冷雨 on 2008-8-1 10:37 ]

纷飞冷雨 发表于 2008-8-1 10:22

Tomato WDS设置

上个教程吧,自己看的好。

viaj 发表于 2008-8-1 10:48

有点深. 不知NETGEAR的可以不?

网络守望者 发表于 2008-8-1 11:05

:D 学习了

plauger 发表于 2008-8-1 11:19

NETGEAR也有用Broadcom, 自己查查就知道了, 可惜我的这个烂路由是wgr614 v7, 现在还没有一个第三方的固件可用, 换了又可惜

lu7023813 发表于 2008-8-2 16:29

请教:Aoiynk wbr204g不知能不能刷

Aoiynk wbr204g不知能不能刷

纷飞冷雨 发表于 2008-8-3 15:37

去http://www.polarcloud.com/firmware查查就知道了。估计你的十有八九不能刷

apec 发表于 2008-8-3 16:03

不错,支持!

luckydevil 发表于 2008-8-3 16:47

楼主转的资料很详细,我的番茄现在用的也很爽,比ddwrt爽,呵呵

磊磊爱宝宝 发表于 2008-8-4 21:06

做个记号~~~^u^

trcben 发表于 2008-8-12 16:34

有点看不懂,只好照葫芦画瓢了!

xinhuaking 发表于 2008-8-20 22:47

标记一下,慢慢学习

ycren 发表于 2008-8-22 02:17

留记号,呵呵~~~

纷飞冷雨 发表于 2008-8-22 08:44

共同讨论,共同学习,共同进步。

毕+索 发表于 2008-8-22 10:49

做个记号,但我主要还是中继,如果写一篇很牛b的关于命令这些,还有就是ddr出了什么问题,用什么办法来解决就实用很多了

twj1682004 发表于 2008-8-30 07:45

做个记号

kzg197432 发表于 2008-8-30 09:02

收藏,慢慢研究

jjlovesll 发表于 2008-8-30 18:38

skfu 发表于 2008-8-30 23:52

真是好文章,做记号以后学习

Magnificent 发表于 2008-9-3 22:11

最近正打算从DD转向tomato,先学习一下

happyle0802 发表于 2009-2-23 16:06

相当的好!!!收了

billliuyu 发表于 2009-2-23 16:46

回复 #24 Magnificent 的帖子

快转吧
我已经受不了了DD的不稳定,已经从DD转向了TOMATO。很好,非常稳定

没虫吃的叶子 发表于 2009-9-21 21:38

留名 学习

九月鹰飞 发表于 2009-9-23 17:55

good!!!

uc|234 发表于 2009-9-23 19:05

留个记号

纷飞冷雨 发表于 2009-9-24 17:13

使用一周年留念!
我用tomato1.19版直到现在~~~
页: [1] 2
查看完整版本: [科普]《精彩的WIFI世界》之二&TOMATO的相关资料