0x01 前言

pfsense的安装过程请参考:安装配置pfsense 配置安全可靠的家用网关

网络质量对于每个人来说是非常重要的,如果你在玩游戏的时候却有人在下载文件、看视频占用过多带宽,又或者有访客的时候,访客的设备通过Wi-Fi占用了大量的网络资源,估计我们都会抓狂,但类似的情况且经常出现。

我将家里的网络通过区分IP段的方式进行管理,分为A、B、C、D段。A段作为家庭基础硬件设备使用、B段分配给常开的虚拟机、C段分配给家庭移动设备(拥有固定IP的DHCP客户)、D段分配给访客。

分配网段很重要,这样就可以通过电子掩码统一管理网络,而不是一个又一个独立的IP。

在这里,我需要控制分配给访客的IP段的网络带宽,这包括上行和下行带宽。

0x02 思绪

首先要理解两个概念:上行和下行。

网络流量的上下行是相对的,在pfsense中的网卡关系如下图:

以pfsense为中心,所有流入pfsense的流量都视为下行、所有流出pfsense的流量都视为上行。

在下面的配置过程中,我使用内网网卡进行限速。

0x03 Limiters

打开Firewall>Traffic Shaper>Limiters,然后点击New Limiters添加新的Limiters:

配置以下内容:

  • Enable:勾选即为启用规则
  • Name:名称,自定义
  • Bandwidth:带宽,请注意单位
  • Mask:掩码为None
  • Description:描述,自定义

以下是我的其中一个配置,速度限制为4Mbit/s,也就是512kb/s:

另外再新建一个速度限制为128Kbit/s,也就是16kb/s用于限制上行速度:

0x04 Rules

使用配置好的Limiters新建限速规则,打开Firewall>Rules>Floating:

在底部点击add在规则列表顶部添加规则:

在配置页面中的Edit Firewall Rule栏目中需要配置以下内容:

  • Action:这里配置四种动作:放行、丢弃、拒绝、匹配
  • Interface:选择网卡
  • Direction:网络流量方向
  • Address Family:IP协议版本
  • Protocol:IP协议

在Source和Destination中分别配置为内网IP和外网IP:

在最后的In / Out pipe中分别选择在Limiters中新建的两个规则:

保存后即可生效。

如果需要控制单个IP的流量,只需要将Source中的掩码改为32即可。 

0x05 结语

在实际应用中,pfsense的限速非常到位。我在服务器中配置了迅雷远程添加离线下载功能,无论在家中还是远离家的地方,只要有网络我就能添加迅雷下载任务。任务开始时会占用全部网络,那么用上面这种配置方法,即可在有人活动的时间段控制相关流量,晚上睡眠时间充分利用网络。

但这里不包含定时任务配置方法,这个日后再写文章介绍。

0x06 相关视频

https://www.bilibili.com/video/av15823557/