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


14

私は、リッスンするプロセスを持っていますIP:port-実際には、ソケットに接続するのはスパークストリーミングです。問題は、あるポートでスパークに接続し、別のポートからこのサーバーにデータがストリーミングされるサーバーを何らかの形で作成したいということです。

たとえば、スパークストリーミングの例では、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が開いていますか?!; このコマンド出力に含まwhatisはsudoのnetstatの-nltp
بارپابابا

回答:


22

あなただけ使用することはできませんnc、トラフィックを転送するためにnc 持っていないkeep-aliveか、forkモード

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


このコマンドはポート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でリッスンしていることです。これがないと、エラーが発生します。
破壊的な

ncapには、プロキシ用のオプションもあります...これにより、いくつかの興味深いことが可能になります...(gostしかし、素晴らしいように見えます...)
ゲルト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.