socat

无法使用 nohup 和 socat 捕获远程客户端数据
socat

无法使用 nohup 和 socat 捕获远程客户端数据

我需要捕获socat在远程服务器上运行的详细和调试输出。 socat我可以在前台运行时实现上述操作: $ socat -x -d -d -d tcp-l:8080,bind=0.0.0.0,fork,reuseaddr - 2>stderr.log >stdout.log 然而,stdout.log如果上述操作nohup在后台运行,则不会收到任何输出: $ nohup socat -x -d -d -d tcp-l:8080,bind=0.0.0.0,fork,reuseaddr - 2>stderr.log >stdout.log...

Admin

pppd、docker、socat 和权限
socat

pppd、docker、socat 和权限

我们有一个 [Ubuntu 20.04] Docker 映像,用作测试系统的一部分,我需要在其中运行pppd(以测试拨号连接),其中pppd 通过循环连接到物理调制解调器socat。我的问题是,当 Docker 容器的 [非 root] 用户(我们称之为用户usera)执行时pppd(即setuid,该部分工作正常),pppd无法访问相同的 用户刚刚使用设置socat。usera成功执行: socat pty,link=/tmp/ppp0,echo=0,raw,b115200 pty,link=/tmp/tty0,echo=0,raw,b115200 .....

Admin

“重复”串行设备-从 2 个进程读取/写入
socat

“重复”串行设备-从 2 个进程读取/写入

我有一个串行/RS485 转换器,用于从 Modbus 设备读取/写入。我需要能够从 2 个进程读取和写入。 我怎样才能“复制”真实设备/dev/ttyUSB0以在我的程序中指定虚拟设备,就像我对物理设备所做的那样?例如(/dev/ttyUSB0-1,/dev/ttyUSB-2)。 我已经用socat尝试过了: socat -d -d pty,raw,echo=0,link=/dev/ttyUSB0-1 pty,raw,echo=0,link=/dev/ttyUSB0 socat -d -d pty,raw,echo=0,link=/dev/ttyUSB0-...

Admin

当设备实际上是虚拟化的时候,是否有可能欺骗设备让其认为客户端位于同一子网上?
socat

当设备实际上是虚拟化的时候,是否有可能欺骗设备让其认为客户端位于同一子网上?

我是一名软件工程师,只具备非常基本的网络技能,因此,如果我在这里的解释有些不准确,我提前道歉。 我有一台实体设备(具体来说,是一台较旧的这个网络电视调谐器) 那需要客户端与它位于同一子网。它的客户端软件会进行广播以发现任何调谐器,并且直到发现过程成功后才能继续进行。您不能只给它一个 IP 地址就完事了。 我已经设置了一个基于 Docker 的堆栈(使用 Docker Compose),该堆栈通过使用ipvlan网络成功与此设备集成,以便每个容器在我的子网上分配自己的 IP 地址。但是,Docker 对网络的支持ipvlan相当糟糕,因此我无法让堆栈在我的“生...

Admin

使用 socat 通过 NIC 发送数据
socat

使用 socat 通过 NIC 发送数据

我正在开展一个项目,试图开发一种用于单向数据传输的数据二极管,我希望使用 socat 进行一些测量。作为第一步,我想使用 socat 通过以太网电缆将数据从一个 NIC 发送到同一台 PC 上的另一个 NIC。我正在运行 Ubuntu 22.04。我手动配置了每个 NIC 的 IP 地址,然后使用以太网电缆将它们连接在一起。最后,我添加了一个手动 arp 条目: $ sudo arp -s 10.0.1.1 48:21:0b:3e:76:ce -i enp89s0 $ arp -a story-NUC11 (10.0.1.1) at 48:21:0b:3e:...

Admin

socat 接受连接但忽略发送的字节
socat

socat 接受连接但忽略发送的字节

我正在尝试使用 通过 TCP 连接到串行适配器socat。 这甚至涵盖了官方文档并且(理论上)应该可以工作。 我首先启动服务器 $ socat -d -d -d -x -v tcp-l:9000,reuseaddr,fork file:/dev/tty.usbserial-00000000,nonblock,raw,echo=0 socat[96183] I socat by Gerhard Rieger and contributors - see www.dest-unreach.org socat[96183] I This product inclu...

Admin

使用 socat 将 UDP 转发到 TCP 显示连接被拒绝
socat

使用 socat 将 UDP 转发到 TCP 显示连接被拒绝

我使用这个命令,就像我在 Google 上搜索到的一样,创建一个 TCP 端口并将该端口的请求转发到其 UDP: socat tcp4-listen:1995,reuseaddr,fork UDP:nameserver:1994 并netstat -tulpn | grep 199表明它们都是可以访问的。 但问题是,当我想要连接到 1995 时,我收到错误connection refused,但我可以直接连接到 1994。 而且在应用程序中我可以进行更改,udp:1994并且tcp:1994它也能正常工作。 唯一的问题是当我尝试打开 TCP 端口以将请求转...

Admin

为什么具有丰富终端的 socat 在 OSX 上会被信号 9 杀死?
socat

为什么具有丰富终端的 socat 在 OSX 上会被信号 9 杀死?

我使用了以下命令这个问题测试一下使用socat搭建一个信号丰富的终端: socat file:'/dev/tty',raw,echo=0 exec:'bash -li',pty,stderr,setsid,sigint,sane 在 Linux 上,它运行良好,一切都如预期。 在 OSX 上,我得到以下输出: 2023/03/24 22:15:52 socat[35049] E waitpid(): child 35050 exited on signal 9 是什么原因导致 OSX 在此处杀死子进程? 是否有可能阻止这种情况发生? 出于好奇,我尝试su...

Admin

socat TCP 服务器双向使用睡眠,非交互式客户端无响应返回。服务器报告:I/O 错误
socat

socat TCP 服务器双向使用睡眠,非交互式客户端无响应返回。服务器报告:I/O 错误

我有以下 TCP 服务器: socat TCP-LISTEN:10000,fork,reuseaddr SYSTEM:'read -r msg && sleep 3 && echo "OK"' 当我执行(交互模式)时: socat - TCP:localhost:10000 > some text here [ENTER] 3 秒后它将返回“OK”(正如预期的那样) 但是,我需要以非交互式的方式进行: response=$(echo "some text" | socat - TCP:localhost:10000)...

Admin

使用socat将TCP连接到虚拟串行端口
socat

使用socat将TCP连接到虚拟串行端口

我有一个程序(程序 1),其中有一个在端口 1234 上监听的 TCP 服务器。我已确认该服务器接受连接并使用实用程序 str2str 发送数据。 同一台机器上的程序 2 需要此数据,但配置为通过串行端口接收。我需要以某种方式将 TCP 数据转发到(我认为)虚拟串行端口。 我尝试设置以下虚拟串行端口对,将 TCP 数据传输到 /dev/ttyVA00,以便程序 2 可以从配对的 ttyVB00 读取数据: sudo socat -d -d PTY,raw,echo=0,link=/dev/ttyVA00 PTY,raw,echo=0,link=/dev/tt...

Admin

我可以使用 socat 代理将 mumble 流量从 IPv4 到 IPv6 吗?
socat

我可以使用 socat 代理将 mumble 流量从 IPv4 到 IPv6 吗?

我家里有一个仅支持 IPv6 的 Mumble 服务器(因为我没有公共 IPv4)。我想使用小型 VPN 让仅支持 IPv4 的用户能够访问它。 VPN 有一个公共 IPv4,我可以 ping 它 VPN 具有 IPv6 连接,并且可以使用其域名 ping 我的 IPv6 服务器 我网络之外的人员可以使用 IPv6 连接 Mumble 服务器 我尝试运行这两个命令: socat TCP4-LISTEN:64738,fork,su=nobody TCP6:mumble.mydomain.tld:64738 socat UDP4-RECVFROM...

Admin

如何使用 socat 发送和接收 UNIX 数据报?
socat

如何使用 socat 发送和接收 UNIX 数据报?

我需要使用 socat 将 UNIX 数据报发送到正在运行的应用程序中的开放端口。当应用程序收到数据报时,它将用另一个数据报进行回复。 我需要执行此操作才能在 Bash 脚本中获取结果数据报。我发现几乎有效的方法是: socat - UNIX-CLIENT:/tmp/app-port.sock app-port.sock作为守护进程运行的应用程序的监听端口在哪里。 通过使用,-我可以从 STDIO 发送数据报,通过键盘,最后按 ENTER。在应用程序日志中,我看到数据报被正确接收,但没有源套接字/端口(空),因此应用程序无法回复,因为它不知道是谁发送了收到...

Admin

单独使用socat可以模拟SSH远程端口转发吗?
socat

单独使用socat可以模拟SSH远程端口转发吗?

请考虑以下场景。 服务器 A 可以访问 serverX:9000。 服务器 A 可以访问 serverB:7000。 服务器 B 无法直接访问服务器 A 上的端口。 服务器 B 想要访问 serverX:9000,但是没有直接访问权限。 解决这个问题的经典方法是使用 ssh 端口转发。 ssh -R 9000:serverX:9000 serverB -p 7000 假设,我不想在服务器 B 上运行 sshd,也不想在服务器 A 上运行 ssh,而是想在两者上运行未经身份验证的网络实用程序(例如socat或nc),并解决相同的问题。 是否可以仅使用 s...

Admin

Socat 下载 - 选择什么文件进行安装?Windows
socat

Socat 下载 - 选择什么文件进行安装?Windows

我的防病毒程序禁止下载 netcat。因此,我选择通过 Winzip 下载 Socat。但是,我完全不知道应该使用哪个文件来安装该工具……或者如果它已经安装,那么当它在本地下载时呢? 我在 zip 文件中下载了大约 20 个不同的包...不确定选择哪一个进行安装。 我已经尝试过这个:获取 tarball 并提取它: tar xzf socat.tar.gz cd socat-1.7.3.0 ./configure make su make install # installs socat, filan, and procan in /usr/local...

Admin

使用 socat 客户端执行的进程的过滤标准输入
socat

使用 socat 客户端执行的进程的过滤标准输入

我的问题是:有没有办法预处理通过 socat 客户端执行的命令的标准输入。 socat上下文:我正在使用以下命令启动反向 shell : $> socat -T30 "openssl-connect:api.hoposhell.com:10000,verify=0,keepalive" "exec:$SHELL,pty,stderr,setsid" 为了保持连接,我的服务器每 10 秒发送一次 ACK ASCII 字符 (0x06)。然而,这在某些应用程序中会产生副作用,并且^F会出现一些字符。 在 bash 或 zsh 中,可以使用 sed 管道,...

Admin