为什么我应该“在创建隧道时指定IP地址而不是主机名”?

为什么我应该“在创建隧道时指定IP地址而不是主机名”?

在我之前的帖子中询问为什么 SSH 协议无法成功连接到目标? 我原来的命令是

ssh -L 9000:google.com:80 testme@localhost

为了解决这个问题,斯蒂芬·基特写道

例如,使用 Web 浏览器,您可以在创建隧道时指定 IP 地址而不是主机名

ssh -L 9000:216.58.213.142:80 testme@localhost

我想知道为什么要“在创建隧道时指定 IP 地址而不是主机名”?

如果 google.com 解析为 216.58.213.142,这两个命令不是一样吗?

IP地址和虚拟主机之间有什么区别吗?

谢谢。

答案1

如果 google.com 解析为 216.58.213.142,这两个命令不是一样吗?

是的,但这里的重点是处理 google.com 无法解析为 Google IP 地址的情况,就像您编辑/etc/hosts.通过指定 IP 地址(您通过执行自己的 DNS 查找来确定,以获得有效的 IP 地址,在 Google 的情况下是适合地理位置的 IP 地址),您可以确保隧道按照您的预期设置,而无需首先检查/etc/hosts或任何其他解决机制。 SSH 根据需要解析并打开与转发端口的连接;如果您将端口转发到主机名,然后覆盖该主机名的地址,SSH 将尝试将连接转发到被覆盖的地址,而不是您期望的地址。

相关内容