用pfSense真正把带宽管起来
m0n0wall的流量整形(TrafficShaping)功能一直被很多朋友当作带宽控制工具来使用,但是,实事求是的讲,我认为它的规则、队列和管道的概念过于复杂,因此我希望能找到一个现成的产品来实现简单易用的带宽控制。
不过,最近看了一个朋友的一篇文章后,我决定开始尝试一下pfSense。pfSense是源自于m0n0wall的一个操作系统,它可以运行在一台单独的计算机上,而不是可以仅仅运行在一个嵌入式单片机上。
我下载了1.2版的pfSense,并且在我的DellInspiron4100笔记本(赛扬1G,512内存)上进行了简单的试用,尽管由于我的机器配置较低使用起来感觉有些慢,不过通过一些简单的实验我发现它可以非常漂亮的实现带宽的控制。
当然,由于我把我的笔记本当作一台路由器用,因此我首先要具有第二个以太网口。pfSense检测到了4100的3Comcompatible3c905C网卡作为内部网卡,但是它不能检测到LinksysPCM20010/100Cardbus以太网卡。在查阅了pfSense的硬件兼容列表后,我购买了一个D-LinkDFE-690TXD网卡,一切正常了。
pfSense安装完毕后,我使用Jperf进行一个快速吞吐率检查,发现LAN>WAN和WAN-LAN都具有90多Mbps的带宽。我不可能在这儿对pfSense进行所有功能的全面试用,但是它的确有一些令人印象深刻的功能。即使你不能把它像DD-WRT、Tomato那样加载到一个路由器中,从它的功能你可以明白为什么m0n0wall具有如此广泛的用户群。
![]() |
pfSense甚至具有不同的皮肤,不过我只是使用了它的默认皮肤(如图4所示)。如果你更习惯使用m0n0wall的左侧菜单条的风格,你可以切换到"pfSense"皮肤。
流量整形(TrafficShaper)功能在Firewall菜单下,当你第一次使用它的时候会有一个向导来帮助进行设置。通过该向导,可以为常见应用自动配置规则、队列和管道,并且可以分类管理。你可以非常轻松的实现带宽控制的设定,而且可以对它们修改或复制来创建新的设置。
第一个屏幕要求你输入实际的互联网上行和下行网速。这个地方我建议你输入你所测到的实际带宽的80%。举个例子来说,如果我的ADSL连接的带宽是"3Mbps/640Kbps",那么我可以输入2500和350(Kbps)。然后你可以点击VOIP屏幕,这儿只有两个控制选项,Provider和你希望保证VOIP应用可以使用的带宽(Bandwidth)。
接下来一个屏幕是PenaltyBox,这是控制带宽的第一个强大功能。如图5所示,可以仅仅根据IP地址(你可以输入多个IP地址)实现简单的控制,设定上行或下行的带宽控制。
![]() |
尽管PenaltyBox功能非常简单,它只是限定进出一个IP地址的所有通信的带宽。但是它也可以让那些喜欢修改端口来躲避带宽控制的用户不再不受约束。
接下来是PeertoPeer向导。这个控制同样非常简单;通过设置上行和下行带宽来限制众多p2p应用程序。注意,这儿的P2PCatchAll选项要慎用。
![]() |
一旦你选择了这个功能,除非你另外有一个更高优先级的规则来设定其它应用带宽不受限制,所有通信都将受该带宽限制的约束,换句话说,该选项把所有的通信都当为p2p来处理。
![]() |
| (点击看大图) |
下一个向导屏幕是网络游戏(NetworkGames),该功能可以用来提升不同游戏的优先级(如图7所示)。在这个屏幕上你无需设定一个带宽;只需要选中你希望优先保证的游戏即可。
![]() |
| (点击看大图) |
最后一个向导"RaiseorLowerOtherApplications(提高或降低其它应用程序的优先级)"屏幕带有详细的功能描述(如图8)。你可以针对不同的应用程序来提高或降低优先级。
![]() |
| (点击看大图) |
完成该向导后,规则和队列就已经被自动创建了。如果你感觉还有什么没有设定好,只需再次运行该向导;你会发现它会记住你之前的选择。
| 条 |
| 条 |
| 条 |