数据包捕获和重传,socat 权限被拒绝

问题描述 投票:0回答:1

我正在尝试使用 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 # 替换为您要用于转发的端口号

虽然是真的;做

启动tcpdump捕获UDP组播数据包

sudo tcpdump -i eth0 -n -s0 -U -w -“udp 和端口 $multicast_port”|
sudo socat -u - UDP4 数据报:$broadcast_address:$forward_port 完毕 `

我尝试使用 sudo 使其可执行,但没有成功。

raspberry-pi packet-capture socat
1个回答
0
投票

参见 man 5 插座:

SO_广播 设置或获取广播标志。启用后,数据报套接字 允许将数据包发送到广播地址。这个选项 对面向流的套接字没有影响。

在 Socat 中,您可以使用 so-broadcast 选项设置此标志:

sudo socat -u - UDP4-DATAGRAM:$broadcast_address:$forward_port,so-broadcast
© www.soinside.com 2019 - 2024. All rights reserved.