
私の設定は次のとおりです:
[client01] <-A-> [server01] <-B-> [server02]
client01
server01
(接続A
)のポート 9300 にアクセスできます。 (接続)のserver01
ポート9300
にのみアクセスできます。server02
B
SSH経由。 ポート上のすべてのトラフィック9300
をserver01
ポート に送信する最適な方法は何ですか?9300
server02
client01
からserver01
への ssh トンネルでこれを正常に実行できますserver02
が、 で ssh を実行する必要はありません。 からにポート 9300 (上) を転送してclient01
ssh すると、機能しません。間違ったコマンドを使用しているのでしょうか?server01
server02
ssh -g -L9300:localhost:9300 server02
server01
編集: server02 は ssh 経由でのみアクセス可能であることを追加しました
答え1
これは、iptables DNAT ルールを使用して実行できます。次のようになります。
iptables -A PREROUTING -p tcp -d x.x.x.x --dport 9300 -j DNAT --to-destination y.y.y.y:9300
を server01 の IP アドレスにx.x.x.x
、を server02 のアドレスに置き換えるy.y.y.y
と設定完了です。
もちろん、これはすべて、server01 で iptables を実行していることを前提としています。また、server02 がトラフィックをインターネットに戻すために server01 を使用していることも前提としています。server02 が使用していない場合、これは目的どおりには機能しません。
マシン間の SSH のみの接続を考慮して編集します。
SSH ポート転送のコマンドラインは、"L" と "9300" の間にスペースが必要であることを除いて、問題ないように見えます。また、server01 コンピュータがポート 9300 で着信接続を受け入れることを確認する必要があります。フィルタ テーブル ( iptables -L INPUT
) の iptables INPUT チェーンを調べて、トラフィックが許可されることを確認してください。
そのトンネルも継続的に維持する必要があります。