私はプロセスを受信していますIP:port
。実際には、ソケットに接続されたスパークストリームです。問題は、あるポートでSparkに接続し、別のポートからデータをストリーミングするサーバーを何とか作成したいということです。
たとえば、Sparkストリーミングの例では、netcatユーティリティ(たとえばnc -lk 5005
)を使用します。ただし、着信メッセージを受信してエクスポートする別のサービスがあります。したがって、サービスAからのメッセージを受信し、それをSparkに転送できる一種のサーバーが必要です。
私のサービスAはソケットによって異なります。私のSpark消費者はソケットを使用しています。
ポートからポートに転送するためにこれまでに行ったことは次のとおりです。しかし、うまくいかないようです。
nc -X 4 -x 127.0.0.1:5005 localhost 5006
アイデアはサービスA:5005
- >ソケット - > 5006
- >スパークです。
これを行う正しい方法が見つからないようです。
一部の回答では、以下を提案しました。
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
答え1
または、モードなしでnc
転送トラフィックのみを使用することはできません。nc
keep-alive
fork
代わりに別のツールを使用する必要がありますnc
(例:socat
または)。ncat
このコマンドはポートでリッスンし、5050
すべてをポートに転送します。2020
socat tcp-l:5050,fork,reuseaddr tcp:127.0.0.1:2020
ncat
もっと読む
Ncatは、コマンドラインからネットワーク経由でデータを読み書きできる機能豊富なネットワークユーティリティです。 NcatはNmapプロジェクト用に書かれており、歴史的なNetcatをはるかに改善して再実装しました。それ
ncat -l localhost 8080 --sh-exec "ncat example.org 80"
使用できる他のツールは次のとおりです。
- プロキシサーバー:(ダウンロードソースコードまたはbinファイル)
ポート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
答え2
同様のユースケースがあります。私の目的は、外部ポートでリッスンし、リバースSSHトンネルを指す内部ポートに転送することです。
外部ポート:8001
内部ポート:18820
nc -l -k -p 8001 -c "nc 127.0.0.1 18820"
引用:
答え3
net catを介したポート転送の場合、パイプを使用できます。
mkfifo pip
nc -l -p port_to_listen < pip | nc target_ip port_to_be_forwarded > pip
または:
nc target_ip port_to_be_forwarded < pip | nc -l -p port_to_listen > pip