问题标签 [socat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4122 浏览

ssh - 通过 ssh 的 UDP 反向隧道(使用 socat)

我想设置一个反向 udp 隧道,因为我需要从远程连接到我的 openvpn 服务器,而 openvpn 服务器位于 NAT 后面。为此,我使用 socat 和 ssh。tcp 隧道命令:

确实可以正常工作,然后我就可以建立到 remoteserver:10000 的 ssh 连接。

但是当我想对 udp 做同样的事情时:

然后尝试建立openvpn连接,我收到以下错误:

隧道起初似乎工作,因为两个日志文件(服务器和客户端)都有连接尝试的条目。但是无法建立连接。

0 投票
0 回答
745 浏览

python - 用于创建设备通信的 Linux 虚拟串行端口

我使用 SOCAT 使用以下命令创建了一个 VSP:

在那里我能够创建一个串行设备 (19200,N,8,1) 并使用 Python 发送和接收数据。

因此,当我这样做时,我必须对配置为(19200,even_aprity,Python 中的硬件流)的另一台设备执行相同的操作,它会抛出以下错误:

引导我

0 投票
2 回答
5542 浏览

sockets - 将输入 unix 流复制到多个 TCP 客户端(使用 socat)

我有一个写入 unix 流的系统日志服务器/tmp/syslog.socket。我需要将此流复制到多个 TCP 客户端。有没有办法使用 socat 来实现这一点?

0 投票
0 回答
2644 浏览

java - socat:如何通过 UDP 创建双向 IP 隧道

我想解决以下问题:假设我有两台计算机,A 和 B。

机器 A 从一个接口(我假设一个“tun”接口)获取所有 IP 数据包,将其发送到 Java 进程(可能会修改数据),然后使用 UDP 将其发送到机器 B。在机器 B 上,内容再次提取并发送到接口。

例如,在机器 A 上,我会键入一个ping B命令,然后 Java 进程(包括 IP 标头)将接收 ping 请求,使用 UDP 发送到机器 B,发送到接口,然后通过接口发送回复同一个隧道。我不能只使用socat,因为我想对 Java 进程中的数据做一些事情。

我尝试的是(假设在机器 A 上):

所有流量(例如 ping 请求)都发送到端口 1234 上的本地 UDP 套接字。我的 Java 进程从该端口接收,将其发送到机器 B,然后在机器上发送到本地端口 1236。似乎 tun0 接口正确收到 ping。问题是两台机器之间的数据包循环,大概是因为第二个socat命令将数据包发送到 tun0,然后第一个命令又将数据包发送回 Java 等。

你知道如何在没有这个问题的情况下通过 Java 在 UDP 中传输 IP 吗?

0 投票
1 回答
3816 浏览

linux - (9600 N,8,1)--> 串口--> 网络--> 串口-->(9600 N81)

如何实现基于 IP 的串行,反之亦然。

我听说可以使用 SOCAT (9600 N,8,1)--> 串行端口 --> 网络 --> 串行端口 -->(9600 N81)

请求人们在这方面帮助我

0 投票
4 回答
7073 浏览

android - 安卓中的 Socat

我想将 Socat 用于我的 android 应用程序。有人在Android下移植过Socat吗?找不到任何有用的链接。任何帮助都会很棒。

0 投票
2 回答
7666 浏览

socat - 网络故障后重新连接socat连接

我正在使用 socat 命令在我的嵌入式 linux 设备上创建一个 tty 接口,例如:

该连接是通过 dsl 线路进行的长距离连接。这条线每晚都断线,我的tty接口也宕机了。是否可以使用重新连接机制创建 tty 交互,直到服务器端再次联机?

下一个问题:是否可以从 java 程序中调用 socat 命令?

非常感谢!卡尔-海因茨

0 投票
1 回答
644 浏览

networking - 包装进程以允许多个连接的工具

是否有任何工具可以包装进程(例如 Bash),以便您可以与“共享”进程建立“多个”网络连接。每个连接都可以向进程发送输入(例如设置环境变量、运行外部命令),并从进程中获得相应的输出。

到目前为止,我发现的最接近的工具是 using socat,如下所示:

但问题是当有多个活动连接时,输出(来自服务器)可能不会到达发送相应输入的客户端。

有解决方法吗?还是有其他工具?如果可能的话,该工具应该“序列化”输入,这样就不会有竞争条件。

我的目的是包装一个使用多个库的脚本,这样我就不必每次都启动它(这需要相当长的时间),我只是连接到正在运行的脚本进程,并发送一个要运行的命令。

0 投票
1 回答
27825 浏览

tcp - 为什么 socat 在连接到 Web 服务器时需要“fork”?

我正在尝试了解浏览器和 Web 服务器之间的 tcp 连接。我在本地机器上运行了一个 Web 服务器,并且可以按预期使用 localhost:3000 或 127.0.0.1:3000 浏览到它。(我正在运行“rails s”和 WEBrick。)

我想在浏览器和 Web 服务器之间放置一个软件中介,因此开始尝试使用 socat。以下工作正常:

我可以浏览到 localhost:8080 并且事情按预期工作。但是,如果我像这样省略 ",fork" 参数,

本地 Rails 网站在浏览器中看起来很糟糕。

为什么那个 fork 参数是必要的?没有它,为什么浏览器 <--> Web 服务器连接不能工作?

0 投票
1 回答
3308 浏览

windows - 如何阻止socat退出?

我正在使用socatWindows 作为客户端通过 SSH 隧道 DNS,它可以完美运行,直到ssh连接断开或暂时不可用 - 当这种情况发生时,socatWindows 客户端终止并需要重新启动。

我在 Windows 客户端上使用以下命令:

有谁知道当 ssh 连接不可用时防止 socat 客户端退出的方法?帮助文件建议-s开关解决了这个问题,但事实并非如此。