![在 SSH 本地端口转发中,哪个 DNS 服务器用于解析主机(不是 ssh 网关)?](https://linux22.com/image/173239/%E5%9C%A8%20SSH%20%E6%9C%AC%E5%9C%B0%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E4%B8%AD%EF%BC%8C%E5%93%AA%E4%B8%AA%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%94%A8%E4%BA%8E%E8%A7%A3%E6%9E%90%E4%B8%BB%E6%9C%BA%EF%BC%88%E4%B8%8D%E6%98%AF%20ssh%20%E7%BD%91%E5%85%B3%EF%BC%89%EF%BC%9F.png)
在本地端口转发中,哪个 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 地址。
希望这能解答您的疑问。