web-dev-qa-db-ja.com

ポート転送にnetcatを使用する

IP:portをリッスンするプロセスがあります-実際には、ソケットに接続するsparkストリーミングです。問題は、何らかの方法で=に接続するサーバーを作成することです。 spark 1つのポートで、データは別のポートからこのサーバーにストリーミングされます。

たとえば、sparkストリーミングの例では、netcatユーティリティ(たとえば、nc -lk 5005)を使用していますが、着信メッセージをリッスンしてからメッセージを吐き出す別のサービスがあります。サービスAからのメッセージを聞いてスパークに渡すことができるある種のサーバーが必要です。

私のサービスAはソケットに依存しています。そして、私のsparkコンシューマはソケットに依存しています。

これが私がこれまでに行ったことはポートからポートへの転送ですが、これはうまくいかないようです:

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

私のsparkソケットレシーバーが接続しない、または接続できないようです。次のエラーが表示されます:Error connecting to 127.0.0.1:5006 - Java.net.ConnectException: Connection refused

20
disruptive

フォワードトラフィックにncのみを使用することはできません。nckeep-aliveまたはforkモードを持っていません

代わりに別のツールを使用する必要がありますnc;たとえば、socatまたはncatを使用します


このコマンドはポート5050でリッスンし、すべてをポート2020に転送します

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

Ncatは、コマンドラインからネットワークを介してデータを読み書きする機能満載のネットワーキングユーティリティです。 Ncatは、由緒あるNetcatの大幅に改善された再実装としてNmap Project用に作成されました。

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に転送します source

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