温馨提示×

CentOS Sniffer如何后台运行

小樊
36
2026-08-30 08:23:02
栏目: 智能运维

在 CentOS 上让 Sniffer(抓包工具)后台运行,常见方式取决于你用的是 tcpdump、tshark、自己写的程序 还是 第三方 Sniffer。下面按最常见场景说明。


一、使用 tcpdump 后台运行(最常见)

✅ 方法 1:nohup + &(推荐)

nohup tcpdump -i eth0 -w /data/sniff.pcap > /dev/null 2>&1 &
  • -i eth0:指定网卡
  • -w:保存抓包文件
  • nohup:防止终端退出后进程被杀
  • &:后台运行

查看进程:

ps -ef | grep tcpdump

停止:

kill -9 PID

✅ 方法 2:screen(可随时切回查看)

yum install -y screen
screen -S sniffer
tcpdump -i eth0 -w /data/sniff.pcap
  • Ctrl + AD 离开(不中断)
  • 重新进入:
screen -r sniffer

✅ 方法 3:systemd(服务器长期运行,推荐生产环境)

创建服务文件:

vim /etc/systemd/system/sniffer.service

内容示例:

[Unit]
Description=Network Sniffer
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/tcpdump -i eth0 -w /data/sniff.pcap
Restart=always

[Install]
WantedBy=multi-user.target

启动:

systemctl daemon-reload
systemctl start sniffer
systemctl enable sniffer

查看状态:

systemctl status sniffer

二、使用 tshark(Wireshark 命令行)

nohup tshark -i eth0 -w /data/sniff.pcap > /dev/null 2>&1 &

或使用 screen / systemd(同上)


三、自写 Sniffer 程序(C / Python 等)

Python 示例

nohup python3 sniffer.py > sniffer.log 2>&1 &

或使用 systemd 管理(更稳定)


四、注意事项(非常重要)

⚠️ 权限问题

抓包通常需要 root:

sudo tcpdump ...

或使用:

setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

⚠️ 磁盘空间

长期后台抓包 一定要限制大小 或轮转:

tcpdump -i eth0 -w /data/sniff.pcap -C 100 -W 10
  • -C 100:每个文件 100MB
  • -W 10:最多 10 个文件(循环覆盖)

五、总结推荐方案

场景 推荐方式
临时后台抓包 nohup + &
可交互查看 screen
长期稳定运行 systemd
生产环境 systemd + 文件轮转

如果你能告诉我:

  • 使用的是 哪种 Sniffer
  • CentOS 7 还是 8
  • 临时抓包还是长期监控

我可以给你一套 完全适合你环境的命令或 systemd 配置

0