在 Raspberrypi (Systemd) 中重新启动时使用 scapy 嗅探
Using scapy sniff on reboot in Raspberrypi (Systemd)
TL;DR:为什么 Scapy 的嗅探器在从 systemd 重新启动时没有 运行?
我的 RPI3 上有以下代码 运行ning,专门用于查找网络请求。这使用内置的 ETH0 wifi:
monitorConnections.py
def arp_detect(pkt):
print("Starting ARP detect")
logging.debug('Starting ARP detect')
if pkt.haslayer(ARP):
if pkt[ARP].op == 1: #network request
PHONE_name = "Unknown"
PHONE_mac_address = ""
if pkt[ARP].hwsrc in known_devices.keys():
print ("Known Phone Detected")
logging.debug('Known Phone Detected')
# Grab name and mac address
PHONE_mac_address = pkt[ARP].hwsrc
PHONE_name = known_devices[PHONE_mac_address]
print ('Hello ' + PHONE_name)
logging.debug('Hello ' + PHONE_name)
else:
# Grab mac address, log these locally
print ("Unknown Phone Detected")
logging.debug('Unknown Phone Detected')
PHONE_mac_address = pkt[ARP].hwsrc
print (pkt[ARP].hwsrc)
print("Start!")
print (sniff(prn=arp_detect, filter="arp", store=0))
当我运行通过命令
python2 monitorConnections.py
这 运行 是设计的,但是我一直在尝试将其放入守护程序中,意识到它需要 运行 在建立互联网连接后。我的服务中有以下设置:
MonitorConnections.service
[Unit]
Description=Monitor Connections
Wants=network-online.target
After=network.target network-online.target sys-subsystem-net-devices-wlan0.device sys-subsystem-net-devices-eth0.device
[Service]
Type=simple
ExecStart=/usr/bin/python2 -u monitorConnections.py
ExecStop=pkill -9 /usr/bin/autossh
WorkingDirectory=/home/pi/Shared/MonitorPhones
Restart=always
User=root
StandardOutput=console
StandardError=console
[Install]
WantedBy=multi-user.target
为了在 运行 之后找到我需要我的脚本的服务,我 运行 这个命令:
systemctl list-units --no-pager
在 'After' 下找到以下服务添加到我的服务中 - 这些与以太网相对应
服务(我想!)
sys-subsystem-net-devices-wlan0.device
sys-subsystem-net-devices-eth0.device
据我所知,这是 运行ning 成功了。当我保存所有内容和 运行 以下内容时:
sudo systemctl daemon-reload
sudo systemctl restart monitorConnections
脚本的启动非常漂亮。然后我在重新启动时将脚本设置为 运行,如下所示:
sudo systemctl enable monitorConnections
然后重新启动,我可以看到它 运行 是打印语句 "Start",但是 运行 在 'sniff' 命令中似乎没有任何内容,但是当运行宁
sudo systemctl -l status monitorConnections
我可以看到脚本处于活动状态 - 所以它没有出错!
我的问题:为什么 scapy 的 sniff 在重启时似乎没有 运行?我错过了什么吗
老实说,我对出了什么问题一头雾水 - 非常感谢任何对此的帮助!
RPI3的wifi驱动没有监听模式。经过数周的调试,这被缩小为问题所在。我希望这对其他人有帮助。
TL;DR:为什么 Scapy 的嗅探器在从 systemd 重新启动时没有 运行?
我的 RPI3 上有以下代码 运行ning,专门用于查找网络请求。这使用内置的 ETH0 wifi:
monitorConnections.py
def arp_detect(pkt):
print("Starting ARP detect")
logging.debug('Starting ARP detect')
if pkt.haslayer(ARP):
if pkt[ARP].op == 1: #network request
PHONE_name = "Unknown"
PHONE_mac_address = ""
if pkt[ARP].hwsrc in known_devices.keys():
print ("Known Phone Detected")
logging.debug('Known Phone Detected')
# Grab name and mac address
PHONE_mac_address = pkt[ARP].hwsrc
PHONE_name = known_devices[PHONE_mac_address]
print ('Hello ' + PHONE_name)
logging.debug('Hello ' + PHONE_name)
else:
# Grab mac address, log these locally
print ("Unknown Phone Detected")
logging.debug('Unknown Phone Detected')
PHONE_mac_address = pkt[ARP].hwsrc
print (pkt[ARP].hwsrc)
print("Start!")
print (sniff(prn=arp_detect, filter="arp", store=0))
当我运行通过命令
python2 monitorConnections.py
这 运行 是设计的,但是我一直在尝试将其放入守护程序中,意识到它需要 运行 在建立互联网连接后。我的服务中有以下设置:
MonitorConnections.service
[Unit]
Description=Monitor Connections
Wants=network-online.target
After=network.target network-online.target sys-subsystem-net-devices-wlan0.device sys-subsystem-net-devices-eth0.device
[Service]
Type=simple
ExecStart=/usr/bin/python2 -u monitorConnections.py
ExecStop=pkill -9 /usr/bin/autossh
WorkingDirectory=/home/pi/Shared/MonitorPhones
Restart=always
User=root
StandardOutput=console
StandardError=console
[Install]
WantedBy=multi-user.target
为了在 运行 之后找到我需要我的脚本的服务,我 运行 这个命令:
systemctl list-units --no-pager
在 'After' 下找到以下服务添加到我的服务中 - 这些与以太网相对应 服务(我想!)
sys-subsystem-net-devices-wlan0.device
sys-subsystem-net-devices-eth0.device
据我所知,这是 运行ning 成功了。当我保存所有内容和 运行 以下内容时:
sudo systemctl daemon-reload
sudo systemctl restart monitorConnections
脚本的启动非常漂亮。然后我在重新启动时将脚本设置为 运行,如下所示:
sudo systemctl enable monitorConnections
然后重新启动,我可以看到它 运行 是打印语句 "Start",但是 运行 在 'sniff' 命令中似乎没有任何内容,但是当运行宁
sudo systemctl -l status monitorConnections
我可以看到脚本处于活动状态 - 所以它没有出错!
我的问题:为什么 scapy 的 sniff 在重启时似乎没有 运行?我错过了什么吗
老实说,我对出了什么问题一头雾水 - 非常感谢任何对此的帮助!
RPI3的wifi驱动没有监听模式。经过数周的调试,这被缩小为问题所在。我希望这对其他人有帮助。