使用 netcat 进行端口转发

dis*_*ive 29 linux networking netcat nc

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

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

我的服务 A,依赖于套接字。我的火花消费者依赖于套接字。

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

nc -X 4 -x 127.0.0.1:5005 localhost 5006
Run Code Online (Sandbox Code Playgroud)

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

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

一些答案提出了以下建议:

socat tcp-l:5005,fork,reuseaddr tcp:127.0.0.1:5006
Run Code Online (Sandbox Code Playgroud)

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

Bab*_*aba 49

你不能只nc用于转发流量,nc 没有keep-alivefork模式

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


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

socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020
Run Code Online (Sandbox Code Playgroud)

Ncat 是一个功能丰富的网络实用程序,它可以从命令行跨网络读取和写入数据。Ncat 是为 Nmap 项目编写的,是对古老的 Netcat 进行了大幅改进的重新实现。它

ncat -l localhost 8080 --sh-exec "ncat example.org 80"
Run Code Online (Sandbox Code Playgroud)

您可以使用其他工具:

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

./proxy tcp -p ":1234" -T tcp -P "1.1.1.1:4567"
Run Code Online (Sandbox Code Playgroud)

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

./gost -L tcp://:1234/1.1.1.1:4567
Run Code Online (Sandbox Code Playgroud)