ACL 可以限制哪些流量?入方向和出方向怎么判断?

在配置网络访问控制时,很多人都听说过 ACL(Access Control List,访问控制列表),但一到实战就迷糊了:

到底 ACL 能限制哪些流量?入方向、出方向怎么判断?

我到底是该配在 in 还是 out?一不小心就"误伤"业务,或者干脆不生效。

别急,这篇文章就带你彻底搞清楚。

1. ACL 到底能干嘛?

****本质上,ACL 是用来做"流量筛选"的。你可以理解成一套规则清单,告诉设备:什么样的流量允许通过,什么样的要拒绝。

常见用法包括:

  • 限制某 IP 段访问某网段或某端口(如禁止办公网访问服务器区)

  • 只允许特定用户访问某资源(如只允许某管理员远程登录设备)

  • 配合 NAT、防火墙、策略路由使用,增强网络安全

  • 限速、Qos中流量分类使用

  • 防止恶意流量、控制广播风暴

简单来说,只要涉及"我想控制谁能走、谁不能走",都能用 ACL。

2. ACL 能控制哪些类型的流量?

ACL 的控制范围可以按层级划分,大致包括:

不同厂商(如华为、Cisco)命令格式略有差异,但思路一样:

通过"匹配源、目的、协议、端口"等条件,进行有条件的"允许"或"拒绝"。

3. 入方向、出方向,怎么判断?

这是最容易搞错的部分。

一句话:以"流量进入/离开接口"的角度判断,而不是"包从哪里来/要去哪里"。

举个例子:

假设你在一台路由器的 G0/0/1 接口上:

  • 如果你配置的是 入方向(in)ACL ,表示流量从这一口进来时就要检查**。**

  • 如果你配置的是 出方向(out)ACL ,表示流量从这一口出去时才检查**。**

这就像是门口放保安,in 是门口检查进来的人,out 是出门前再查一遍。

判断方法通用三步走:

  1. 明确你要控制的是哪一段流量(源、目的IP/端口)。

  2. 看这段流量是从哪个接口进/出设备的。

  3. 想在流量从接口进来时控制** ,就用 in;出去时控制,就用 out。**

实战判断举例

需求:阻止内网 192.168.1.0/24 访问服务器 10.10.10.10 的 80 端口

网络结构如下:

[PC1]192.168.1.x ---- G0/0/1[Router]G0/0/2 ---- 10.10.10.10[Server]

方法一:配置在入方向(G0/0/1 in)

acl number 3000
 rule deny tcp source 192.168.1.0 0.0.0.255 destination 10.10.10.10 0.0.0.0 destination-port eq 80
 rule permit ip
interface G0/0/1
 packet-filter 3000 inbound

在流量刚进入设备时就拦截,效率高,常用。

方法二:配置在出方向(G0/0/2 out)

interface G0/0/2
 packet-filter 3000 outbound

这时表示让路由器在转发出去时判断是否允许通过。

两种方式都可用,关键看你想在哪控制,是否有其他影响。

4. 配在 in 还是 out?选错有啥后果?

  • ****配在 in,适合"第一时间拦截",减少资源消耗,效率更高。

  • ****配在 out,适合"最后一口气拦截",但可能已经走了部分路径,浪费性能。

实际建议如下: