知易通
第二套高阶模板 · 更大气的阅读体验

网络访问控制列表设置方法详解

发布时间:2026-01-02 06:10:30 阅读:62 次

什么是网络访问控制列表

网络访问控制列表(ACL)是路由器或交换机上用于控制数据包进出接口的一组规则。它就像小区门口的保安,决定哪些人可以进,哪些车必须拦下。比如公司内网不允许员工访问游戏网站,或者只允许财务部门访问特定服务器,这些都可以通过ACL实现。

常见的ACL类型

在实际配置中,主要用到标准ACL和扩展ACL。标准ACL只根据源IP地址做判断,适合简单的放行或拦截需求。扩展ACL则更精细,能同时指定源IP、目标IP、协议类型和端口号,适用于复杂场景。

举个例子,你想阻止某个部门访问外部FTP服务,但其他流量照常,这时候就得用扩展ACL,光靠标准ACL做不到这么细的控制。

标准ACL配置示例

假设要禁止来自192.168.3.0网段的所有访问,可以在路由器上这样设置

access-list 1 deny 192.168.3.0 0.0.0.255
access-list 1 permit any
interface gigabitethernet0/0
ip access-group 1 in

这里编号1是标准ACL的范围(1-99),通配符掩码0.0.0.255表示匹配整个C类网段。最后应用到接口的入方向。

扩展ACL配置示例

如果需要更精确的控制,比如只允许192.168.1.0网段访问Web服务器(端口80),但禁止访问FTP(端口21),可以这样写:

access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.10 eq 80
access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 10.0.0.10 eq 21
access-list 101 permit ip any any
interface gigabitethernet0/1
ip access-group 101 out

注意扩展ACL编号从100开始,使用host关键字指定单个目标IP,eq表示等于某个端口。规则顺序很重要,设备会从上往下逐条匹配,一旦命中就停止。

配置时容易踩的坑

很多人在写完规则后忘了应用到接口,结果策略形同虚设。就像装好了监控系统却没接电源。另外,默认每条ACL末尾隐含一条“deny any”,所以最后通常要加permit any放行其他流量,除非你真的想全拦掉。

还有一点,修改现有ACL时不能直接插入中间行。Cisco设备上得先删除再重写,或者用命名ACL配合行号调整。这点在生产环境中要格外小心,别一改导致全网断连。

命名ACL更方便管理

比起数字编号,命名ACL可读性更强。比如把上面的规则改成:

ip access-list extended BLOCK_FTP
permit tcp 192.168.1.0 0.0.0.255 host 10.0.0.10 eq www
deny tcp 192.168.1.0 0.0.0.255 host 10.0.0.10 eq ftp
permit ip any any

名字BLOCK_FTP一看就知道用途,后期维护省心不少。而且支持插入行号修改,比如在第10行和20行之间加新规则,不用全部重来。

验证与调试技巧

配置完别急着走人,用show access-list命令看看命中计数。如果某条规则一直没被触发,可能是条件写得太严,或者流量根本没经过这个接口。也可以用ping和telnet测试连通性变化,确认ACL生效。

在关键业务上线前,建议先在测试环境跑一遍。我见过有人误写掩码,把本该屏蔽的一个部门变成了整个公司上不了外网,排查起来挺麻烦。