用 Linux Sniffer 优化网络性能的可操作方案
一 抓包阶段的性能优化
tcpdump -i eth0 -w http.pcap 'tcp port 80',避免在显示或分析阶段再丢弃大量无关包。ethtool -G eth0 rx 2048 tx 1024;sysctl -w net.core.netdev_max_backlog=16384。-W 1024 表示使用更大的缓冲池),并将输出写为 pcap/pcapng 二进制格式,减少解析与磁盘 I/O 压力。二 内核与网络栈调优
/etc/sysctl.conf 或 /etc/sysctl.d/*.conf 中设置合理的 net.core.rmem_max、net.core.wmem_max、net.ipv4.tcp_rmem、net.ipv4.tcp_wmem,并开启 net.ipv4.tcp_moderate_rcvbuf=1,让系统在吞吐与延迟间自适应。ip link set dev eth0 mtu 9000 或在发行版网络配置中持久化。三 用 Sniffer 定位瓶颈与验证优化
四 安全与合规要点
五 一键可用的配置示例
sudo ethtool -G eth0 rx 2048 tx 1024
echo 'net.core.netdev_max_backlog=16384' | sudo tee /etc/sysctl.d/99-netdev.conf
sudo sysctl -p /etc/sysctl.d/99-netdev.conf
sudo tcpdump -i eth0 -w http.pcap -W 1024 'tcp port 80'
sudo ip link set dev eth0 mtu 9000
cat <<'EOF' | sudo tee /etc/sysctl.d/99-tcp-buffer.conf
net.core.rmem_max=134217728
net.core.wmem_max=134217728
net.ipv4.tcp_rmem=4096 87380 134217728
net.ipv4.tcp_wmem=4096 65536 134217728
net.ipv4.tcp_moderate_rcvbuf=1
EOF
sudo sysctl -p /etc/sysctl.d/99-tcp-buffer.conf
# 服务端
iperf3 -s
# 客户端(示例:测试 30 秒、4 并发)
iperf3 -c 192.0.2.10 -t 30 -P 4