家里装了新路由器,想把某些设备限制上网时间,结果发现不管怎么设置,手机还是能连上WiFi。折腾半天才发现,问题出在访问控制列表(ACL)的最后一行规则上。
默认放行?其实是隐藏陷阱
很多人配ACL时只关注自己写的那几条允许或拒绝的规则,比如:
deny tcp any any eq 80
permit ip any any
看起来是阻止所有设备访问网页,但实际测试却发现,有些流量还是通了。原因就在于,大多数网络设备的ACL末尾都有一条隐式的“拒绝所有”规则。也就是说,哪怕你没写,系统也会自动补上:
deny ip any any
显式写出来更稳妥
为了避免意外,建议手动把最后一条规则明确写出来。尤其是在企业级路由器或防火墙上操作时,隐式规则容易让人误判。比如这样配置会更清晰:
access-list 101 deny tcp 192.168.1.100 any eq 80
access-list 101 permit ip any any
access-list 101 deny ip any any
这样一来,谁看了都知道——前面放行的才通,其余全部拦下。
家庭用户也别忽视
哪怕是家用华硕、TP-Link这类支持ACL功能的路由器,规则顺序和结尾处理同样关键。曾经有朋友给孩子设了上网时段,结果半夜还能刷视频。查了一圈才发现,他的规则里虽然写了“禁止”,但后面又被另一条更宽泛的“允许”覆盖了,而设备又不显示隐式规则,导致一直没发现。
所以每次改完规则,记得测试几个不在白名单里的设备能不能上网。如果能,大概率就是最后一条没控住。