因为要面对将近200人上网的管理,所以低级的路由器会比较麻烦,没有办法控制带宽,到时候就会带来很xxx烦。高级路由器可能用不上那么好,那就可以折中考虑好一点的路由器,可以刷第三方固件的,比如刷tomato固件,可以方便的控制带宽的使用问题,相应的,按它支持的型号购买相应的路由器即可。
这里选择了Buffalo WHR-HP-G54-AP,无线效率会高一些,可以满足更多的人使用无线,距离也会更远。
刷固件按照官方的readme似乎总刷不上,可以考虑改名后,自己上传,可以参考以下做法:
成功的示例,关键把握网络刚好恢复的时候执行:
TOMATO与DD-WRT的差别:
QoS设置参考
参考阅读:
1
2
3
4
原创内容如转载请注明:来自
这里选择了Buffalo WHR-HP-G54-AP,无线效率会高一些,可以满足更多的人使用无线,距离也会更远。
刷固件按照官方的readme似乎总刷不上,可以考虑改名后,自己上传,可以参考以下做法:
下载后的Tomato_1_22.7z 大小有2818K,用{zx1}的winrar解压缩,里面有好几个文件,从其中的readme.htm有描述"tomato.trx is for the Buffalo WHR-G54S, WHR-HP-G54",实际我的WHR-HP-G54-AP和WHR-HP-G54硬件原理是差不多的,除了天线的区别,所以确定解压缩后中的文件"tomato.trx "就是我需要刷的固件的。下面开始刷固件:
下载Tomato的{zx1}固件解压缩, 将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。
下载Tomato的{zx1}固件解压缩, 将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。
成功的示例,关键把握网络刚好恢复的时候执行:
C:\aslibra.com>tftp -i 192.168.11.1 put C:\tomato.bin
Timeout occurred
C:\aslibra.com>tftp -i 192.168.11.1 put C:\tomato.bin
Timeout occurred
C:\aslibra.com>tftp -i 192.168.11.1 put C:\tomato.bin
Transfer successful: 2818048 bytes in 5 seconds, 563609 bytes/s
Timeout occurred
C:\aslibra.com>tftp -i 192.168.11.1 put C:\tomato.bin
Timeout occurred
C:\aslibra.com>tftp -i 192.168.11.1 put C:\tomato.bin
Transfer successful: 2818048 bytes in 5 seconds, 563609 bytes/s
TOMATO与DD-WRT的差别:
首先需要了解的是不管我们将自己的设备刷新成何种固件驱动,他的系统都是基于Linux平台的。DD-WRT与TOMATO各有各的长处,DD-WRT固件是目前国内外最为流行和红火的固件之一,该固件是在Open-WRT固件基础上改进后发布的,很多功能都是取自Open-WRT,在应用范围上DD-WRT支持最多的硬件平台,并且新版本的发布也很及时。随着DD-WRT新版本的发布以及多家媒体的宣传DD-WRT的应用范围越来越广。
而TOMATO固件则是在最近非常火爆和逐渐流行的固件,个头比较小,外号番茄也给人一种塌塌实实的感觉,实际使用起来运行非常稳定,基于SVG的图形化流量图非常有特色。他是由HyperWRT研发团队中的一员开发的。
对我们普通用户来说,tomato和ddwrt的{zd0}区别就在于tomato不支持{wn}中继了,不过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固件则是在最近非常火爆和逐渐流行的固件,个头比较小,外号番茄也给人一种塌塌实实的感觉,实际使用起来运行非常稳定,基于SVG的图形化流量图非常有特色。他是由HyperWRT研发团队中的一员开发的。
对我们普通用户来说,tomato和ddwrt的{zd0}区别就在于tomato不支持{wn}中继了,不过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服务质量、管理等多个方面都有不俗的表现。
QoS设置参考
Basic (基本设置)
Enable QoS xxQoS,选定。
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地址的规则。建议选定,以便于xx控制。
Reset Classification When Making Changes 在设置被改变的时候重置Classification。选定的话每次改变qos设置,所有的连接都会被重新评估。否则你必须从启动正在下载的程序,重新连接才能使设置生效。推荐选上。
Default Class 缺省QoS级别。这个指的是所有未被定义的协议的优先级。这个要配合classification里面的设置来决定。默认是Low。
Outbound Rate / Limit
Max Bandwidth kbit/s上行速度。注意,这个值千万不能乱填。它直接决定了qos是否能够正常工作。不适当的值不但qos不工作,严重的话在下载的时候连网都上不去了。这个值应该是你网络上行的{zd0}带宽x90%。填得太大的话QoS就会发送比你的网络能承受的更多的数据,从而使网络阻塞,QoS也失去效果了。
而且必须是实际的{zd0}带宽而不理论{zd0}带宽。比如说ADSL{zd0}理论上行是512K,但是我实测下来只有400多K。因为ADSL传输的时候要给每个包加载包头还有校验位,占用了一定的带宽。大家一定想我怎么才能知道我{zd0}上行呢?其实用番茄就可以测到。随便找一个BT的种子下载,要下得人多的。然后不限制上行速度。观察番茄的流量监视表,当上行速度稳定为一条直线的时候就是你的{zd0}上行带宽。
番茄把从高到低级别分为了Highest – 〉Class E几个级别。Highest是{zg}的级别。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行。
{dy}行:
地址:可以是源或目标IP地址或MAC地址。如果你想控制来自某个客户端的,就要在这里填上相应的值。
优先级:Highest -> Class E。定义符合这条规则的网络协议的优先级。
描述:对这条规则的简单描述。
第二行:
网络协议:一般选TCP/UDP。除非是一些特殊的网络应用。
端口:应用于所有经过这个端口的数据
第三行:
IPP2P: 这是一种P2P协议的过滤器。能够识别常见的P2P协议,比如BT,电驴。不过我实际使用下来发现基本没用。
Layer 7:第七层过滤器。这是一种非常高级的过滤器,工作于网络的{zg}层:应用层。它能够识别数据包里面的字符串,从而识别数据包是那个应用程序发出来的。番茄里面包含了许多常见的网络应用程序,如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地址的过滤器是xxx的,能够{bfb}的有效,而且资源占用率{zd1}。IPP2P和L7过滤器并不是{bfb}有效。
下面是我的一些设置,大家还要根据自己的实际情况量身定做。。
TCP/UDP
Dst Port: 53 Highest DNS
DNS非常重要,一定要设置为{zg},并且放在最前面。不这样的话在大量下载的时候,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 优先级设为{zd1},BT下载不会影响其他任何应用。在这里我使用了L7和端口两种过滤器,xx保证了所有BT流量都被过滤了。另外需要注意的是BT客户端的连接数不要设的太高了,否则效果打折扣。我512k的带宽,BitComet设置全局100个下行连接50个上行连接正好。
Enable QoS xxQoS,选定。
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地址的规则。建议选定,以便于xx控制。
Reset Classification When Making Changes 在设置被改变的时候重置Classification。选定的话每次改变qos设置,所有的连接都会被重新评估。否则你必须从启动正在下载的程序,重新连接才能使设置生效。推荐选上。
Default Class 缺省QoS级别。这个指的是所有未被定义的协议的优先级。这个要配合classification里面的设置来决定。默认是Low。
Outbound Rate / Limit
Max Bandwidth kbit/s上行速度。注意,这个值千万不能乱填。它直接决定了qos是否能够正常工作。不适当的值不但qos不工作,严重的话在下载的时候连网都上不去了。这个值应该是你网络上行的{zd0}带宽x90%。填得太大的话QoS就会发送比你的网络能承受的更多的数据,从而使网络阻塞,QoS也失去效果了。
而且必须是实际的{zd0}带宽而不理论{zd0}带宽。比如说ADSL{zd0}理论上行是512K,但是我实测下来只有400多K。因为ADSL传输的时候要给每个包加载包头还有校验位,占用了一定的带宽。大家一定想我怎么才能知道我{zd0}上行呢?其实用番茄就可以测到。随便找一个BT的种子下载,要下得人多的。然后不限制上行速度。观察番茄的流量监视表,当上行速度稳定为一条直线的时候就是你的{zd0}上行带宽。
番茄把从高到低级别分为了Highest – 〉Class E几个级别。Highest是{zg}的级别。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行。
{dy}行:
地址:可以是源或目标IP地址或MAC地址。如果你想控制来自某个客户端的,就要在这里填上相应的值。
优先级:Highest -> Class E。定义符合这条规则的网络协议的优先级。
描述:对这条规则的简单描述。
第二行:
网络协议:一般选TCP/UDP。除非是一些特殊的网络应用。
端口:应用于所有经过这个端口的数据
第三行:
IPP2P: 这是一种P2P协议的过滤器。能够识别常见的P2P协议,比如BT,电驴。不过我实际使用下来发现基本没用。
Layer 7:第七层过滤器。这是一种非常高级的过滤器,工作于网络的{zg}层:应用层。它能够识别数据包里面的字符串,从而识别数据包是那个应用程序发出来的。番茄里面包含了许多常见的网络应用程序,如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地址的过滤器是xxx的,能够{bfb}的有效,而且资源占用率{zd1}。IPP2P和L7过滤器并不是{bfb}有效。
下面是我的一些设置,大家还要根据自己的实际情况量身定做。。
TCP/UDP
Dst Port: 53 Highest DNS
DNS非常重要,一定要设置为{zg},并且放在最前面。不这样的话在大量下载的时候,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 优先级设为{zd1},BT下载不会影响其他任何应用。在这里我使用了L7和端口两种过滤器,xx保证了所有BT流量都被过滤了。另外需要注意的是BT客户端的连接数不要设的太高了,否则效果打折扣。我512k的带宽,BitComet设置全局100个下行连接50个上行连接正好。
参考阅读:
1
2
3
4
原创内容如转载请注明:来自