ローカルポート転送でどのDNSサーバーが名前を解決しますかinternal_db.local
?
内部SSHサーバーのDNSですか? (これは私の考えです)
または、外部DNSサーバーがsshgateway.com
アドレスを割り当てていますか?
たとえば、
ssh -L 4000:internal_db.local:3306 [email protected]
答え1
SSHのポート転送には、ローカルIP、ローカルポート、リモートIP、リモートポート、および宛先が含まれます。良い:
ssh -L $LOCAL_IP:$LOCAL_PORT:$REMOTE_IP:$REMOTE_PORT $DESTINATION
$LOCAL_IP
この例では、およびのDNS名は、$DESTINATION
コマンドが実行される環境によって解決されますssh
。 DNS名は$REMOTE_IP
環境によって解決されます$DESTINATION
。
答え2
SSHのフルポート転送順序は
-L [<local_ip>:]<local_port>:<remote_ip>:<remote_port>
local_ipなので、省略できます。
(またはDNS名<local_ip>
)はローカルホストによって解決され、<remote_ip>
(またはDNS名)はリモートホスト(あなたの場合はsshgateway.com)によって解決されます。
あなたのコメントに基づいて編集してください。
理解できない場合は訂正してください。
あなたの環境は次のとおりです
host_1 -> host_2 -> host_3
your_PC -> sshgateway -> internal_db.local
ホスト_1からホスト_3のデータベースに接続しようとしています。
推奨されるローカルポート転送を使用すると、ホスト1のポート4000を介してホスト2を介してホスト3のポート3306に転送できます。
この目的のために、接続はsshを介してホスト_1からホスト_2にトンネリングされ、次にホスト_2がデータベースに接続するのと同じように、通常のIPパケットとしてホスト_2からホスト_3に送信されます。
したがって、host_2(sshgateway.com)はDNSサーバーを使用してhost_3(internal_db.local)のIPアドレスを確認する必要があります。
これがあなたの質問に答えることを願っています。