Ubuntu 下 Sniffer 与流量控制的定位与组合
在 Linux 语境中,Sniffer通常指用于抓取与分析网络流量的工具(如 tcpdump),其职责是“观测”而非“限速/整形”。若要进行网络流量控制(限速、延迟、优先级、丢弃等),应使用内核的 tc(Traffic Control) 框架;若需要按规则阻断/放行或限流,可配合 iptables/nftables 使用。典型分工如下:
使用 tc 进行流量整形与限速
sudo tc qdisc add dev eth0 root handle 1: htb default 30
sudo tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
sudo tc class add dev eth0 parent 1:1 classid 1:10 htb rate 20mbit ceil 50mbit
sudo tc class add dev eth0 parent 1:1 classid 1:20 htb rate 10mbit ceil 30mbit
sudo tc class add dev eth0 parent 1:1 classid 1:30 htb rate 5mbit ceil 5mbit
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 443 0xffff flowid 1:20
说明:将接口总带宽设为 100mbit,把 80/443 分别放入 20/10mbit 的保证带宽(上限 50/30mbit),其余流量进入 5mbit 的默认类。sudo tc qdisc add dev eth0 root handle 1: prio
sudo tc qdisc add dev eth0 parent 1:1 handle 10: netem delay 100ms 20ms
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:1
说明:对 22 端口之外的流量增加 100ms ± 20ms 延迟,便于测试弱网场景。sudo tc qdisc del dev eth0 root
tc qdisc show dev eth0
tc class show dev eth0
tc filter show dev eth0
以上命令展示了在 Ubuntu 上使用 tc 实现接口限速、按端口分流、延迟注入与规则清理的常用做法。
按规则丢弃或限流的防火墙手段
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
说明:对访问 80 端口的新连接进行速率限制,超过阈值将被丢弃(常用于缓解 DoS/暴力扫描)。sudo nft add table ip filter
sudo nft add chain ip filter input { type filter hook input priority 0 \; }
sudo nft add rule ip filter input tcp dport 80 limit rate 25/minute burst 200 accept
sudo nft add rule ip filter input tcp dport 80 drop
sudo iptables-save > /etc/iptables/rules.v4
sudo nft list ruleset > /etc/nftables.conf
以上示例展示了如何用 iptables/nftables 按规则对特定端口进行速率限制与丢弃,并提供了持久化方法。
用抓包工具验证与定位
sudo tcpdump -i eth0 -nn -ttt port 80 or port 443
sudo tcpdump -i eth0 -w http_only.pcap tcp port 80
sudo iftop -i eth0
sudo nethogs eth0
vnstat -i eth0
上述工具可帮助你在应用 tc/iptables 前后对比延迟、丢包、吞吐与占用,快速验证策略是否生效。
合规与安全提示