Skip to main content

如何使用 Packet Filter

Packet Filter(包过滤器)是 GNS3 提供的网络损伤模拟功能,可以在链路层模拟真实的网络环境问题,如延迟、丢包、包损坏等。

note

仅支持特定节点类型:VPCS、Dynamips、QEMU、IOU、Cloud、NAT、Docker。

快速开始

步骤 1:打开 Packet Filter 界面

在项目拓扑图中,右键点击要应用过滤器的链路,选择 Packet filters 选项。

右键菜单选择 Packet filters

步骤 2:选择过滤器类型

在弹出的 Packet filters 对话框中,选择相应的标签页配置过滤器。

Packet filters 对话框

步骤 3:配置过滤器参数

根据需要选择过滤器类型并配置参数:

过滤器类型功能参数
Delay Latency延迟1-32767ms
Delay Jitter抖动0-32767ms
Packet loss随机丢包Chance(0-100%)
Packet corruption包损坏Chance(0-100%)
Frequency drop每 N 包丢弃一个Frequency(-1 到 32767,-1=全丢,0=不过滤)
BPF精准流量过滤BPF 表达式(如 icmpport 80
note

Packet Filter 规则是双向同时生效的。例如配置了 Delay Latency 100ms、Delay Jitter 20ms,那么:

  • A → B 方向:100ms 延迟,±20ms 抖动
  • B → A 方向:100ms 延迟,±20ms 抖动

步骤 4:应用配置

配置完参数后,点击 Apply 按钮应用过滤器。在链路上会出现 Packet Filter 的图标。

链路 Packet Filter 图标

清除过滤器

方法一:重置参数

打开 Packet filters 对话框,点击 Reset 按钮,快速清理参数。

Reset 按钮

方法二:删除链路

删除链路会自动清除所有过滤器配置。

BPF 表达式示例

BPF(Berkeley Packet Filter)支持精准流量过滤,语法与 tcpdump 一致:

表达式功能
icmp丢弃所有 ICMP 流量
port 80丢弃端口 80 的流量
host 10.0.0.1丢弃来自/到特定主机的流量
dst host 192.168.1.100 and port 80丢弃到 Web 服务器的流量
src net 10.0.0.0/24丢弃来自特定子网的流量
tcp and not port 53丢弃 TCP 流量但保留 DNS