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/