温馨提示×

怎样开机启动centos sniffer

小樊
37
2026-09-27 07:21:00
栏目: 智能运维

在 CentOS 上“开机启动 sniffer”通常有两种理解:

  1. 系统自带抓包工具 tcpdump 开机自动抓包
  2. 第三方 Sniffer 程序(如自己写的 / 开源 sniffer)开机自启

下面分别说明,你可按需选择。


一、使用 tcpdump 作为 sniffer 开机启动(最常见)

1. 编写启动脚本

vi /usr/local/bin/sniffer.sh

内容示例(抓取 eth0 流量,保存到文件):

#!/bin/bash
/usr/sbin/tcpdump -i eth0 -w /var/log/sniffer.pcap -G 3600 -W 24

赋予执行权限:

chmod +x /usr/local/bin/sniffer.sh

2. 创建 systemd 服务(CentOS 7+ 推荐)

vi /etc/systemd/system/sniffer.service

内容:

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

[Service]
Type=simple
ExecStart=/usr/local/bin/sniffer.sh
Restart=always

[Install]
WantedBy=multi-user.target

3. 设置开机启动

systemctl daemon-reload
systemctl enable sniffer
systemctl start sniffer

查看状态:

systemctl status sniffer

二、如果是自定义 sniffer 程序

假设程序路径为 /opt/sniffer/sniffer

1. 创建 service

vi /etc/systemd/system/sniffer.service
[Unit]
Description=Custom Sniffer
After=network.target

[Service]
ExecStart=/opt/sniffer/sniffer
Restart=on-failure

[Install]
WantedBy=multi-user.target

2. 启用

systemctl daemon-reload
systemctl enable sniffer
systemctl start sniffer

三、CentOS 6(旧版,init 方式)

vi /etc/init.d/sniffer
#!/bin/bash
# chkconfig: 2345 90 10
# description: sniffer

case "$1" in
start)
  /usr/sbin/tcpdump -i eth0 -w /var/log/sniffer.pcap &
  ;;
stop)
  pkill tcpdump
  ;;
esac
chmod +x /etc/init.d/sniffer
chkconfig sniffer on
service sniffer start

四、注意事项

  • 需要 root 权限
  • 抓包可能影响性能,建议限制大小或时长
  • 若使用 NetworkManager,确保网卡已就绪
  • 日志建议放到 /var/log 或 /data

如果你指的是 某个具体 sniffer 软件(如 Wireshark CLI、netsniff-ng、dsniff 等),可以告诉我名字,我可以给你精确配置。

0 踩