CentOS Sniffer自动化网络管理实战
一 架构与工具选型
二 自动化抓包与定时任务
#!/usr/bin/env bash
set -euo pipefail
IFACE="${1:-eth0}"
COUNT="${2:-100}"
DIR="/var/log/sniffer/$(date +%F)"
mkdir -p "$DIR"
PCAP="$DIR/${IFACE}_$(date +%H%M%S).pcap"
sudo tcpdump -i "$IFACE" -c "$COUNT" -w "$PCAP" \
'tcp or udp or icmp' || true # 可按需收紧过滤器
# 示例:统计Top 10 IP
tshark -r "$PCAP" -q -z io,stat,1,"COUNT(tcp.port)" \
| tail -n 12 | head -n 11 >> "$DIR/summary_$(date +%H%M%S).txt"
*/5 * * * * /usr/local/bin/sniffer_automation.sh eth0 200 >> /var/log/sniffer/cron.log 2>&1
三 提升效率与性能的关键配置
四 从抓包到自动化响应的闭环
#!/usr/bin/env bash
PCAP="$1"
TOP_IP=$(tshark -r "$PCAP" -q -z io,stat,1,"COUNT(tcp.port)" \
| tail -n 12 | head -n 11 | awk 'NR>1 {print $2; exit}')
if [[ "$TOP_IP" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] && (( TOP_IP > 1000 )); then
echo "ALERT: Top IP $TOP_IP exceeds threshold" \
| tee /var/log/sniffer/alert_$(date +%s).log
# 可在此调用 Ansible/Salt 或 nmcli/ip 执行联动
fi
五 合规与风险控制