使用netcat进行端口转发


19

我有一个监听的进程IP:port-实际上,它是火花流连接到套接字。问题是,我希望以某种方式创建一个连接到一个端口上的spark的服务器,并将数据从另一个端口流式传输到该服务器中。

例如,spark流示例使用netcat实用程序(例如nc -lk 5005)。但是,我还有另一个服务,它监听传入的消息,然后吐出一条消息。因此,我需要某种可以侦听来自服务A的消息并将其传递给spark的服务器。

我的服务A,依靠套接字。而我的火花使用者依赖插座。

到目前为止,这是我从端口到端口的转发,但这似乎不起作用:

nc -X 4 -x 127.0.0.1:5005 localhost 5006

以服务A:5005->套接字-> 5006-> Spark 的想法

我似乎找不到正确的方法来完成这项工作。

一些答案建议如下:

socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006

我的火花塞接收器没有连接,或者似乎无法连接。我得到错误:Error connecting to 127.0.0.1:5006 - java.net.ConnectException: Connection refused


您确定端口5006已打开吗?; 头朝下输出中该命令的netstat须藤-nltp
بارپابابا

Answers:


27

你不仅可以用nc正向业务,nc 没有keep-alivefork模式

您必须使用其他工具nc; 例如使用socatncat


此命令在端口上侦听5050并将所有转发到端口2020

socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020

Ncat是一个功能丰富的网络实用程序,可从命令行跨网络读取和写入数据。Ncat是为Nmap项目编写的,是对久负盛名的Netcat的重新改进。它

ncat -l localhost 8080 --sh-exec "ncat example.org 80"

您可以使用其他工具:

侦听端口1234并将其转发到地址“ 1.1.1.1”上的端口4567

./proxy tcp -p ":1234" -T tcp -P "1.1.1.1:4567"

侦听端口1234并将其转发到地址“ 1.1.1.1” 上的端口4567

./gost -L tcp://:1234/1.1.1.1:4567

1
谢谢,我尝试了第一个socat测试,但是问题是我的流式传输实例一直都希望有东西,并且在5006处侦听-否则,我会得到一个错误。
2016年

ncap也有代理选项...这允许一些有趣的事情...(gost虽然看起来很棒...)
Gert van den Berg,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.