在 SSH 本地端口转发中,哪个 DNS 服务器用于解析主机(不是 ssh 网关)?

在 SSH 本地端口转发中,哪个 DNS 服务器用于解析主机(不是 ssh 网关)?

在本地端口转发中,哪个 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

您想要从 host_1 连接到位于 host_3 上的数据库。
通过建议的本地端口转发,您可以将 host_1 的端口 4000 通过 host_2 转发到 host_3 的端口 3306。
为此,您的连接将通过 ssh 从 host_1 到 host_2 建立隧道,然后作为普通 ip 数据包从 host_2 发送到 host_3,就好像 host_2 将连接到数据库一样。
因此,host_2 (sshgateway.com) 必须使用其 DNS 服务器解析 host_3 (internal_db.local) 的 IP 地址。
希望这能解答您的疑问。

相关内容