Gcloud SSH 隧道代理始终通过美国,甚至来自其他地区

Posted

技术标签:

【中文标题】Gcloud SSH 隧道代理始终通过美国,甚至来自其他地区【英文标题】:Gcloud SSH Tunnel Proxy always through USA, even from other regions 【发布时间】:2020-03-12 00:25:36 【问题描述】:

当我在荷兰创建一个实例时:

gcloud compute instances create p --zone europe-west4-c --machine-type=n1-standard-2

然后像这样做 SSH 隧道:

gcloud compute ssh --zone europe-west4-c p -- -N -p 22 -D localhost:5000

或者在我将我的 SSH 密钥添加到实例并执行以下操作之后:

ssh user@55.66.77.88 -D localhost:5000

(其中 55.66.77.88 是我的 Gcloud 实例的公共 IP)

然后像 https://www.whatismyip.com/ 这样的页面仍然显示我的位置是 Mountain View, CA US 并且我的 ISP 是 Google LLC 在我正确设置了 socks 代理之后。 p>

如果我使用 DigitalOcean 并做同样的事情,情况就不是这样了。

这是否意味着来自美国以外任何其他地区的 Gcloud 实例的所有传出请求仍通过美国路由?

【问题讨论】:

Stack Overflow 是一个编程和开发问题的网站。对于这个问题,您可能应该使用Stack Exchange network 上的另一个站点。另请参阅帮助中心的What topics can I ask about here。 【参考方案1】:

IP 地址是一个全局地址空间; 没有与 IP 地址关联的固有(或固定)位置。

有多种方法可以推断 IP 地址的位置,并且该计算的一部分可能涉及识别 IP 地址的所有者。您应该查找由 Google 和 Digital Ocean 提供的 IP 的所有者。您提到了 whatismyip,它提供了一个 whois service。此功能由多个提供者提供(您可以通过与其中几个检查形成共识)。

Google 拥有 GCE 实例 IP 地址(除非这是客户拥有的 IP [link]),而且 Google 位于加利福尼亚州山景城,因此很可能这就是与该地址关联的位置的原因.

Google 可能会根据需求和一些可预测的机制将 IP 地址分配给区域,这些机制会使 IP 与位置相关联,从而将 IP 与您在欧洲的位置相关联,但更有可能(更灵活)它不这样做,而且 IP根据需要与全球各地的机器相关联。

当您寻址到 Google 拥有(或管理)的 IP 时,您的本地网络提供商会将您快速连接到 Google 的全球网络。此过程通常(并非总是 [link])以最佳方式路由流量。

那么为什么 Digital Ocean IP 指的是您的位置?几种可能:

该位置最近被推断为您; IP 的 Digital Ocean 分配对位置具有粘性(因此推断为在您附近); IP 并非归 Digital Ocean 所有,而是归本地提供商所有(因此推断在您附近)。

【讨论】:

以上是关于Gcloud SSH 隧道代理始终通过美国,甚至来自其他地区的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot Resttemplate通过ssh隧道的动态代理设置连接不识别远程DNS

ssh隧道代理连接

SSH通过代理连接

使用 JSch 创建一个通过 SSH 隧道化的 SOCKS 代理

通过 AWS SSM 代理命令设置 SSH 隧道

ssh的代理和端口转发机制介绍