论坛风格切换切换到宽版
  • 543阅读
  • 2回复

路由器固件刷新之蕃茄版 [复制链接]

上一主题 下一主题
离线BG4QOH
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-02-24
DD -WRT是个第三方Firmware,最初主要是针对Linksys无线宽带路由器的。在2003年,有玩家发现Linksys公司型号为WRT54G的无线路由器固件源代码是以Linux开放源码为基础修改而成的,是基于GPL(通用公共许可证)发行的操作系统,所以Linksys公司有责任公开路由器固件的源代码。后来,Linksys公司将路由器的源代码公开,这样一来众多Linux高手就通过修改源代码并重建固件, 使自己的无线宽带路由器性能增强不少。一时间各种修改版本层出不穷, DD-WRT就是其中一个易用性和稳定性都非常好的版本。固件是由BrainSlayer来维护的,放在dd-wrt.com (http://www.dd-wrt.com/) . DD-WRT的第一个版本基于Sveasoft Inc (http://www.sveasoft.com/) 公司的Alchemy开发出来的, 而Alchemy又是基于GPL’d Linksys固件及许多其它开放源程序. 由于后来人们需要向Sveasoft支付20美元才能下载Alchemy固件,直接的后果就是发展出了DD-WRT。 BrainSlayer全职为DD-WRT工作,要给自己支付工资,为此起草了 (http://forum.bsr-clan.de/ftopic4612.html)另外一种商业模型。不过在目前来讲,DD-WRT还是免费的。
而Linux刷新DD-WRT的固件,你将可以:
1. 支持花生壳的DDNS。
2. 支持VPN的PPTP客户端和PPTP服务器端设置,可以提供VPN接入。
3. 可以通过设置,轻松管理各种网络服务,例如封杀BT,电驴,迅雷等。
4. 支持UPNP和端口映射功能。
5. 可以轻松实现无线路由器的定时开关。
6. 可以利用Q0S、限速、限连接数等设置来优化宽带。
7. 支持多国语言,可以搭配802.1X协议,EAP(Extensible Authentication Protocol,可扩展认证协议)来增加网络认证应用。(Micro版只支持英文)
8. 支持IPv6、SNMP协议,SSH服务等。
9.打开很多无线宽带路由器隐藏的功能选项(视芯片而言);
10.增加无线宽带路由器的网络稳定性;
11.增加一些原本本不具备的功能(视芯片而言);
12.增强无线信号和传输覆盖范围,调整无线宽带路由器的发射/接收功率;
13.万能中继。
14. 脱机下载(需带USB)。
15. MP3播放(需带USB)。
16. 摄相监控(需带USB)。
17. 其它USB功能。

二.DD-WRT所支持的无线路由器
DD-WRT支持的常用无线宽带路由器型号大多都使用 Broadcom的处理芯片(FON是用ATHEROS芯片),也就是说, 只要基于“similar Broadcom reference design” (类似Broadcom的参考设计)且固件中运行Linux系统的无线宽带路由器, 大都能够刷新DD-WRT固件。玩家如果不清楚自己的路由器是否支持,可以拆开无线路由器在印刷电路板看看芯片型号, 同时参考说明书和在线搜索,看自己的路由器是否基于Linux系统。 如果两者都满足, 那么你的无线宽带路由器有九成的把握可以刷入DD-WRT固件。
三. DD-WRT所支持无线宽带路由器列表请上官方网站:
http://www.dd-wrt.com/
四.DD-WRT的版本
DD -WRT发展至今,共有多个版本,主要与FLASH的容量有关。由于大多数品牌的无线宽带路由器的FlashROM芯片容量已经达到了4MB,所以首选“Standard”版本。至于其它的版本, 则加入了更多的网络功能, 可以进一步激发路由器的潜能, 有兴趣可以尝试。一般情况下, 推荐大家使用 “Standard”或“Mini” 即可。
必要准备提示:
步骤一:首先,先将路由器恢复到原厂设置Reset to Factory Defaults AGAIN,然后用网线将电脑和路由器的LAN口连接,在这个步骤肯定有许多朋友会问,能否用无线来刷DD-WRT?答案是不行的。因为路由器是在启动过程中被刷新,在这个过程中无线模块是不工作的。
步骤二:获得DD-WRT固件
接下来,你需要下载这个固件,根据你正在使用的路由器和你想要的功能,从DD-WRT官方站点列表(http://www.dd-wrt.com)中下载相应的固件。但是,在你开始浏览这个固件集合之前,你应该让自己了解固件命名和组织的含义。当然了,稳定版应该是最好的选择,它是经过详细测试的固件版本。
刷新方法:
1.在无线路由器web界面升级固件,就是像升级官方固件那样(主要针对linksys、巴比禄等)。
2.用tftp方式刷(如Buffalo,Motorola)
3.用命令行刷,针对支持Telnet/SSH 的无线路由器(FON)

蕃茄版与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固件又叫番茄固件(可简称番茄),它是国外无线路由器资深玩家根据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_1_22.7z 大小有2818K,用最新的winrar解压缩,里面有好几个文件,从其中的readme.htm有描述"tomato.trx is for the Buffalo WHR-G54S, WHR-HP-G54",实际我的WHR-HP-G54-AP和WHR-HP-G54硬件原理是差不多的,除了天线的区别,所以确定解压缩后中的文件"tomato.trx "就是我需要刷的固件的。下面开始刷固件:

下载Tomato的最新固件解压缩, 将tomato.trx 改为 tomato122.bin (有的教程说要改为bin文件,为了安全我把文件后缀改为.bin文件了) 放到C:\  即C盘根目录下(为了后面)

将路由器恢复到原厂设置,具体就是通电状态下用一个东西顶住路由器下部的INIT按钮,至少30秒种, 建议2分钟。

用网线将电脑和路由器的LAN口连接,将电脑的IP地址手动设为固定IP地址,设为192.168.11.2,子网掩码为255.255.255.0,网关为192.168.11.1。请不要用无线来刷 Tomato,因为路由器是在启动过程中被刷新,但是这个启动过程中无线模块是不工作的。

从"开始"菜单→"运行"→键入"cmd",点击"确定"进入到命令行模式。
键入tftp命令:tftp -i 192.168.11.1 put C:\tomato122.bin 千万不要回车 。备注我的tomato122.bin放在C:\路径,如果放在其他路径,必须正确输入。否则后面步骤的回车后会提示tftp命令出错。

拔下路由器电源,确保电脑和路由器的网线连接好,然后把路由器电源插上。等电脑任务栏最右下角的网络连接图标(如果没有看到图标,必须在设置IP地址的时候设置在任务栏显示网络图标)从红叉变成正常连接的时候,在当前的命令行窗口 tftp -i 192.168.11.1 put C:\tomato122.bin 按键盘回车键 。
然后又过一段时间,会出现传送数据成功的字样。

如果你键入回车的时间晚了,在经过一段时间的等候,会给出一个Timeout occurred出错的提示。你只要重复6,7步就行,不会损坏路由器。
当出现传送成功字样后,切记一定要等待至少3分钟,路由器不能断电,也不要对路由器有所操作。

等待3分钟以后,将电脑的IP设为自动获取(DHCP)。电脑会获得一个192.168.1.XXX的地址,网关是192.168.1.1。
然后打开浏览器,http://192.168.1.1,回车,用户名:root 密码:admin。




花开有期,花落无踪,人生景不同

人生苦旅有滋味,我爱青山我爱驴。
辞去繁华觅静处,告别大道走幽途。
心牵山水与心往,彼若闻名向彼出。
云伴星陪吟对月,此情豪饮古今无。
离线BG4QOH

只看该作者 沙发  发表于: 2011-02-24
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个上行连接正好。


花开有期,花落无踪,人生景不同

人生苦旅有滋味,我爱青山我爱驴。
辞去繁华觅静处,告别大道走幽途。
心牵山水与心往,彼若闻名向彼出。
云伴星陪吟对月,此情豪饮古今无。
离线逍遥

只看该作者 板凳  发表于: 2011-02-25
动作非常快,我先顶上,回头研究一下,慢慢将无线工程搞定
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个