在 CentOS 上“开机启动 sniffer”通常有两种常见理解:
下面以 tcpdump 开机自动启动抓包 为例,给你一套最常用、最稳妥的做法(CentOS 7/8,systemd)。
sudo vi /usr/local/bin/sniffer-start.sh
内容示例(抓 eth0,存文件):
#!/bin/bash
tcpdump -i eth0 -nn -s0 -w /var/log/sniffer/eth0.pcap
赋予执行权限:
sudo chmod +x /usr/local/bin/sniffer-start.sh
sudo mkdir -p /var/log/sniffer
sudo vi /etc/systemd/system/sniffer.service
示例:
[Unit]
Description=Network Sniffer (tcpdump)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/sniffer-start.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable sniffer
sudo systemctl start sniffer
查看状态:
systemctl status sniffer
假设你的 sniffer 是:
/opt/sniffer/sniffer -i eth0
只需改 ExecStart:
ExecStart=/opt/sniffer/sniffer -i eth0
如果是 CentOS 6:
chkconfig sniffer on
root 或 CAP_NET_RAW-G / logrotate)如果你能提供:
我可以给你完全对应的配置示例。