我正在尝试使用 tcpdump 和 socat 使用 raspberrypi 进行数据包捕获和重传。但是我不断收到错误:
tcpdump:监听eth0,链路类型EN10MB(以太网),快照长度262144字节 2023/09/26 20:17:17 socat[2400] E sendto(5, 0x3fb000, 24, 0, AF=2 192.168.7.255:14555, 16): 权限被拒绝
请帮帮我。
这是 shell 脚本 `#!/bin/bash
multicast_group="224.1.1.1" # 替换为您的特定多播组地址 multicast_port=12345 # 替换为多播端口号
broadcast_address="192.168.xxx.xxx" # 目标网络的广播地址 forward_port=54321 # 替换为您要用于转发的端口号
虽然是真的;做
sudo tcpdump -i eth0 -n -s0 -U -w -“udp 和端口 $multicast_port”|
sudo socat -u - UDP4 数据报:$broadcast_address:$forward_port
完毕
`
我尝试使用 sudo 使其可执行,但没有成功。
参见 man 5 插座:
SO_广播 设置或获取广播标志。启用后,数据报套接字 允许将数据包发送到广播地址。这个选项 对面向流的套接字没有影响。
在 Socat 中,您可以使用 so-broadcast 选项设置此标志:
sudo socat -u - UDP4-DATAGRAM:$broadcast_address:$forward_port,so-broadcast