导读:本期聚焦于大象创作的《ACL访问控制列表如何配置?常见应用场景与配置方法详解》,敬请观看详情。ACL访问控制列表是网络设备上用来过滤流量的基础手段,通过一组有序的规则决定哪些数据包允许通过,哪些需要被拒绝。本文从ACL的工作原理讲起,解释通配符掩码与规则匹配顺序这些容易踩坑的地方,再分别演示标准ACL、扩展ACL以及命名ACL在思科设备上的完整配置命令,并结合Telnet远程管理控制、部门间访问隔离、ICMP流量过滤等典型场景给出可直接套用的配置思路,帮助读者快速掌握ACL的实际用法。

ACL(Access Control List,访问控制列表)是一系列有序规则的集合,路由器或三层交换机依据这些规则对经过接口的数据包进行匹配和过滤。它可以精确到允许或拒绝某个源IP、某个目标端口甚至某种协议的流量,是网络管理中最基础也最常用的安全手段之一。无论是限制内网用户访问特定服务器,还是保护设备的远程管理入口,ACL都能派上用场。下面从原理入手,逐步展开ACL的配置方法。

ACL访问控制列表如何配置?常见应用场景与配置方法详解

ACL的工作原理与匹配顺序

理解ACL的关键在于理解它的匹配机制。数据包到达配置了ACL的接口后,设备会从规则列表的第一条开始逐条比对,一旦某条规则与数据包特征匹配成功,就立即执行该规则定义的动作(允许或拒绝),后续规则不再检查。这就是所谓的“自上而下、首次匹配即生效”原则。

正因为这种匹配逻辑,规则的书写顺序非常重要。如果把范围宽泛的规则放在前面,后面更精细的规则就永远不会被匹配到。例如先写一条允许整个网段的规则,再写拒绝其中某台主机的规则,那条拒绝规则就形同虚设。此外,每条ACL的末尾都隐含一条deny any(拒绝所有流量)的默认规则,这意味着如果列表中没有任何一条规则被匹配,流量将被丢弃。很多初学者配置完ACL后发现全网不通,往往就是这个隐含规则在起作用。

ACL按编号范围分为标准和扩展两类。标准ACL编号为1到99和1300到1999,只能基于源IP地址过滤;扩展ACL编号为100到199和2000到2699,可以基于源IP、目的IP、协议类型和端口号进行精细控制。命名ACL则不依赖数字编号,用名称标识,支持随时插入或删除单条规则,维护起来更灵活。

标准ACL与扩展ACL的配置方法

标准ACL由于只看源地址,应该部署在靠近目的的位置,避免过早拦截流量影响其他路径的通信。配置命令很简单,先创建列表再应用到接口:

! 创建标准ACL,拒绝192.168.10.0网段访问,放行其他流量
Router(config)# access-list 10 deny 192.168.10.0 0.0.0.255
Router(config)# access-list 10 permit any

! 将ACL应用到接口的出方向
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ip access-group 10 out

命令中的0.0.0.255是通配符掩码(也叫反掩码),这一点最容易搞混。通配符掩码与子网掩码正好相反:0表示对应位必须严格匹配,1表示对应位任意。比如要匹配192.168.10.0/24网段,通配符掩码就是0.0.0.255;要匹配单一主机则写0.0.0.0,也可以用关键字host代替,写成access-list 10 deny host 192.168.10.5

扩展ACL功能更强,建议部署在靠近源的位置,让非法流量在源头就被拦截,节省链路带宽。它的语法多了协议、目的地址和端口号等参数:

! 拒绝财务部访问服务器的Telnet和HTTP服务,放行其他流量
Router(config)# access-list 110 deny tcp 192.168.20.0 0.0.0.255 host 10.1.1.100 eq 23
Router(config)# access-list 110 deny tcp 192.168.20.0 0.0.0.255 host 10.1.1.100 eq 80
Router(config)# access-list 110 permit ip any any

! 应用到接口入方向
Router(config)# interface GigabitEthernet0/1
Router(config-if)# ip access-group 110 in

其中eq表示等于某个端口,还可以用gt(大于)、lt(小于)、range(范围)来限定端口区间。协议类型除了tcp之外,udp、icmp、ip等也经常用到,比如过滤PING流量就用deny icmp any any echo

命名ACL与典型应用场景实战

编号ACL一旦写好,想删除其中一条规则只能整表删除重建,这在生产环境中风险很大。命名ACL解决了这个问题,它支持按行号编辑单条规则:

! 创建命名扩展ACL
Router(config)# ip access-list extended BLOCK-WEB
Router(config-ext-nacl)# 10 permit tcp host 192.168.1.10 any eq 80
Router(config-ext-nacl)# 20 deny tcp 192.168.1.0 0.0.0.255 any eq 80
Router(config-ext-nacl)# 30 permit ip any any

! 删除单条规则只需指定行号
Router(config-ext-nacl)# no 20

一个很实用的场景是保护设备自身的Telnet管理入口。在VTY线路下调用ACL,可以只允许管理网段登录设备,这个ACL过滤的是“发往设备本身”的流量,不需要应用到物理接口:

Router(config)# access-list 5 permit 192.168.100.0 0.0.0.255
Router(config)# line vty 0 4
Router(config-line)# access-class 5 in

配置完成后,验证与排错必不可少。用show access-lists查看规则及各条规则的命中次数,用show ip interface确认ACL是否正确绑定到了接口及方向。如果某条规则的匹配计数一直为零,说明流量根本没走到这条规则,多半是前面的规则抢先匹配了,或者ACL应用的方向搞反了。

配置ACL的注意事项

方向问题是新手最常见的错误。in表示流量进入接口时检查,out表示流量离开接口时检查,方向搞反了过滤效果会完全不同,甚至导致业务中断。配置前建议先在纸上画清楚流量走向,确认ACL应该挂在哪个接口的哪个方向。

其次,在接口上应用或修改ACL时要格外小心。删除一个正在生效的ACL,流量会全部放行;而新加一条规则后没有显式的permit,隐含的拒绝规则可能瞬间切断通信。生产环境操作最好安排在维护窗口,并提前准备好回滚命令。

最后,ACL规则数量不宜过多。规则是逐条匹配的,列表越长,设备转发每个数据包时的处理开销越大,在低端路由器上可能明显影响性能。华为设备还可以配合traffic-filter等命令在接口下调用ACL实现同样的过滤效果,思路与思科一致,掌握了一种平台的配置方法,换平台时只需对照语法差异即可快速上手。

ACL访问控制列表ACL配置网络访问控制修改时间:2026-09-12 21:10:31

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/20260912/55557.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。