访问控制列表(ACL)配置命令,本质就是给网络设备下发一套“允许谁走、拦下谁”的规则表,核心结论是:只要掌握access-list(思科系)和acl(华为/H3C系)两条命令体系,再配合接口下的调用语句,你就能在十分钟内完成一台企业级交换机或路由器的基本流量管控。这套命令并不神秘,它只是把“源地址、目的地址、端口号、动作”四个要素组合成一句话,设备逐行匹配后执行放行或丢弃。
ACL配置命令的核心语法拆解
很多网络新手拿到ACL配置命令第一反应是去背参数,这其实是弯路,ACL命令的设计逻辑很直白:先建规则,再应用到接口,所有厂商都是这个套路。
思科系设备的标准配置命令
思科(Cisco)的ACL配置命令分编号式和命名式两种,其中编号式使用频率较高。
- 标准ACL配置命令:
access-list 10 permit 192.168.1.0 0.0.0.255 - 扩展ACL配置命令:
access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80 - 编号范围另有门道:标准ACL编号1-99,扩展ACL编号100-199,2000-2699则属于扩展范围,如果记混了,设备会直接报错。
配置命令里那串“0.0.0.255”不是子网掩码,而是通配符位。0代表严格匹配,255代表忽略,也就是只匹配前24位,这个细节容易让不少人踩坑,因为如果写成255.255.255.0,设备会直接拒绝这条ACL配置命令。
华为与H3C系设备的配置命令写法
华为与H3C的ACL配置命令使用acl关键字,语法逻辑区别不大,但命名规则更紧凑。
- 创建基本ACL配置命令:
acl number 2000 - 创建高级ACL配置命令:
acl number 3000 - 在ACL视图内写规则:
rule 5 permit source 192.168.1.0 0.0.0.255 - 应用在接口上的命令:
traffic-filter inbound acl 2000
华为系设备的基本ACL(2000-2999)只能匹配源地址,高级ACL(3000-3999)才能匹配协议和端口,这个限制让不少人吃过亏,比如想在基本ACL里拦HTTP流量,配置命令写进去,设备提示“参数错误”,换成高级ACL立即解决。
华为交换机ACL配置命令详解:从入站到出站的实战思路
行业共识认为,配置ACL的关键不只是记住命令,而是搞清楚流量方向和调用位置,有人问“华为交换机ACL配置命令详解”这类问题时,通常会想找一份能直接抄的作业,下面给出一个可落地的完整过程。
假设场景:公司研发部在VLAN 10(192.168.10.0/24),服务器区在192.168.100.0/24,老板要求研发部只能访问服务器的80和443端口,其他网段不能访问研发部。

第一步,创建高级ACL:
system-view
acl number 3001
rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.100.0 0.0.0.255 destination-port eq 80
rule 10 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.100.0 0.0.0.255 destination-port eq 443
rule 15 deny ip
第二步,把ACL绑定到接口的入方向:
interface GigabitEthernet0/0/1
traffic-filter inbound acl 3001
这里有两个容易忽略的细节:规则编号(rule 5/10/15)默认步长是5,后续插入新规则时不用重排,直接用中间编号,ACL默认末尾隐藏一条deny all,所以最后那条rule 15 deny ip其实是可写可不写的,写上的好处是让规则意图更清晰。
华为ACL配置命令怎么用才能避免方向错误
方向选错在实战中太常见了,配置命令本身没问题,效果却完全反了。
- inbound方向:过滤从外部进入接口的流量,适合放在靠近终端一侧的接口。
- outbound方向:过滤从接口发出去的流量,适合放在靠近服务器一侧的接口。
- 如果同时设置双向过滤,inbound先匹配,通过的流量才有资格匹配outbound,两个方向是串行关系,不是并行。
Cisco与H3C的ACL配置命令对比:选型时你需要知道的事
问“Cisco与H3C的ACL配置命令对比”的人,多半是在做设备选型或交叉维护,两者语法风格差异不大,但细节上各有习惯。
| 对比项 | 思科(Cisco) | 华为/H3C |
|---|---|---|
| 创建命令 | access-list 100 permit/tcp/… | acl number 3000 |
| 删除规则 | no access-list 100 | undo rule 10 |
| 应用接口命令 | ip access-group 100 in | traffic-filter inbound acl 3000 |
| 默认行为 | 末尾隐含deny all | 末尾隐含deny all |
| 通配符写法 | 0.0.255 | 0.0.255(写法一致) |
| 规则编号概念 | 无显示编号,按顺序插入 | rule 5/10/15显式编号 |
思科没有显式规则编号,想插一条规则到中间几乎不可能,只能删除重建;华为/H3C的显式编号则灵活得多,如果设备使用年限较长,内部流量策略复杂,华为/H3C的维护体验会更顺手。
关于价格上的考量,华为/H3C的中低端交换机通常比同配置的思科设备便宜不少,相关采购价格可以咨询当地经销商,不同城市的渠道价差异较大,但ACL配置命令本身是免费的,不开任何功能授权,买了设备就能直接用。

实战场景:access-list命令在办公网中的落地操作
真正考验ACL配置命令功底的,是那些“规则之间互相打架”的场面,拿最常见的办公网举例,公司要求:
- 财务部(192.168.30.0/24)只能访问内网服务器,不能上外网。
- 总经理办公室(192.168.88.0/24)可以访问所有网络。
- 公共Wi-Fi区域(192.168.50.0/24)只能访问互联网,禁止访问内网任何服务器。
这三个需求分别对应三条独立ACL,最管用的做法是在核心交换机的各个VLAN接口(SVI)上分别调用不同ACL,而不是写一条大杂烩ACL,一条ACL规则条数过多,一是排查困难,二是设备转发性能会下降。
给财务部做限制时,在核心交换机上敲:
interface Vlanif30
traffic-filter inbound acl 3005
ACL 3005里写:
rule 5 deny ip
注意,这条ACL会拦掉所有入站流量,包括内网访问,所以还需要放行内网网段:
rule 5 permit ip source 192.168.0.0 0.0.255.255
rule 10 deny ip
顺序很重要,ACL从上往下匹配,命中即停止,意思是,如果先写deny ip,后面的permit永远不会生效,很多人的配置命令逻辑没问题,但顺序写反了,结果整个部门断网,这种教训在业内数见不鲜。
模拟器验证:华为eNSP中ACL配置命令的调试过程
初学ACL配置命令时,强烈建议先在模拟器里跑一遍,华为eNSP(企业网络模拟平台)免费且好用,流程是:启动设备,进入系统视图,敲入ACL配置命令,然后在接口下调用,如果命令执行后没有任何回显,多半是成功的;如果出现“Error: Unrecognized command”,检查关键字拼写和协议名大小写。
配置ACL命令后要验证,不验证等于白配,查看当前ACL规则用display acl all,查看接口上绑定了哪些ACL用display traffic-filter applied-record,这两条命令能帮你快速判断配置命令是否真的生效。
ACL配置命令常见报错与排查思路
每个人在配置ACL时都会遇到的报错,这里挑几个高频的来聊。
- “Error: The ACL is already applied to an interface.”(华为设备)这条ACL已绑定到一个接口上,不能直接删除或修改,先执行
undo traffic-filter inbound解除绑定,再改规则。 - “Access-list cannot be deleted.”(思科设备)ACL还在被接口引用,使用
先解除调用。
no ip access-group
- 通配符写错导致匹配了整个网段这条不会报错,但流量特征会和你预期完全不符,属于隐蔽问题。
- 规则顺序错误导致全通或全断ACL匹配是自上而下的,把deny写在permit前面是新手区最主要的问题。
从排查效率来看,先看规则列表,再看接口绑定关系,最后抓包确认实际命中情况,这个流程能解决绝大多数ACL配置命令引发的故障。
针对CLI操作不熟的人:ACL配置命令怎么用才不慌乱
如果你平时主要用Web界面,一打开CLI就紧张,建议记住一条原则:ACL操作是个三步走的机械流程,创建、调用、验证,缺一不可。
- 创建ACL,进入ACL视图,逐条写permit/deny规则。
- 退出ACL视图,进入接口视图,调用ACL(
traffic-filter或ip access-group)。 - 使用
display类命令查看规则和接口状态,确认无误。
这套流程不依赖设备型号,思科、华为、H3C、锐捷都遵循同样节奏,只要语法细节换一下就行,掌握了这个框架,ACL配置命令就不再是零散的代码,而是一条完整的思维链。
访问控制列表配置命令常见问题解答
华为设备的ACL默认是允许所有流量还是拒绝所有流量?
华为设备的ACL默认规则即末尾隐藏的deny ip any,也就是拒绝一切未匹配的流量,一个ACL如果只写了permit规则,那么只有这些规则命中的流量会被放行,其他全部丢弃,如果是刚刚创建的ACL还没写任何规则,那么所有流量都会被拒绝。
思科扩展ACL里的协议关键字要怎么选?
思科扩展ACL中常见的协议关键字包括tcp、udp、icmp、ip,选协议时有一个基本判断标准:网络层控制用ip,传输层控制端口用tcp或udp,网络排障测试放行icmp,如果摸不准目标应用走的是TCP还是UDP,直接查应用端口号,或使用ip关键字放开全部协议类型,代价是管控粒度变粗。
修改ACL后为什么没有立即生效?
ACL修改后通常会在数秒内生效,但部分老款交换机存在硬件转发表延迟刷新的情况,可以先执行display acl确认规则条目已更新,再用reset命令清除相关会话表项,强制设备重新匹配新规则,另一种可能是ACL被多次调用,流量走的接口不是你改的那个,检查所有接口的绑定关系,ACL配置命令本身没问题,但生效范围和你预期不一致,这种情况在跨设备联动配置时较常见。
