查找 cell phone 的 public IP 地址以通过 SSH 连接到 EC2 服务器
Find cell phone's public IP address for purpose of SSH'ing into EC2 server
背景:当我待命时,我需要能够从我的手机快速通过 SSH 连接到 AWS 生产服务器 phone(例如,如果我手边没有笔记本电脑,但有小区覆盖但没有 wifi)。 SSH 访问只允许从少数 IP 地址进行,在我可以 SSH 之前,我需要将我的 cell phone 的 public IP 地址添加到该列表中。我正在使用 Prompt 2 和 AWS 移动控制台。
问题:如何找到我需要添加到 AWS 安全组的单元 phone 的 public IP 地址? (请在将其作为副本关闭之前阅读整个问题)
听起来很简单,对吧?除了我找不到确定我的手机 phone 的实际 public IP 地址的简单方法。例如,当通过小区 phone 网络访问互联网时,whatismyip.com 报告我的 public IP 地址为 107.77.xxx.xxx。将该地址添加到安全组不起作用。 ipchicken.com 和其他一些网站报告了相同的地址。
接下来,我认为中间可能存在各种 NAT,也许一些更智能的网络工具可以处理它。事实上,ifconfig.me 和 checkip.dyndns.org 报告了不同的 public IP 地址,166.170.xx.xx,在我的例子中。将该地址添加到安全组,也不允许我通过 SSH 进入服务器。
现在,作为最后的手段,我从我的手机 phone ssh 连接到另一台不包含生产数据并允许从任何地址进行 ssh 访问的服务器:
$ netstat -an|grep ":22 .* ESTABLISHED"
tcp 0 0 172.31.14.173:22 107.72.xx.xx:23255 ESTABLISHED
$
根据 netstat,我的 ssh 会话来自 IP 地址 107。72.xx.xx(已编辑完整地址)。现在,如果我将 that 地址添加到我的 AWS 安全组,我终于可以从我的 cell phone ssh 进入生产服务器。所以,这最后一种方法确实产生了我需要的正确地址,但它有点难以获得,特别是如果我无法访问另一台允许从任何地址使用 SSH 的服务器。
所以,简而言之:是否有像 whatismyip.com 或 ifconfig.me 这样的网站可以让我访问我的手机 phone 的 "true" public IP 地址,由 netstat 确定。
我正在使用 iPhone,所以我不能 运行 本地 UNIX 命令。如果有帮助的话,我的手机服务提供商是 AT&T。我也将我的 phone 置于现场测试模式,但它只给我 AT&T 不可路由的内部 10.x.x.x 地址。
听起来网络流量被代理了,因此您需要通过非 HTTP 方法检查地址。
Getting a public IP without access to a browser? - Networking - Spiceworks 建议使用 DNS 查找来获取地址,这样可以避免代理。
免责声明:https://api.ident.me
的作者
假设相同的 IP 用于所有 SSH 目标,ident.me 应该支持您的需要:您可以使用 SSH(例如 ssh -q v4.ident.me
)找到用于 SSH 的 IPv4 地址,假设您的 NAT框对其他目的地使用相同的框。它还支持 DNS 查找(例如 dig +short @v4.ident.me
),尽管这似乎不太可能可靠地匹配(例如,如果您的 ISP 根据目标端口转换地址)。
背景:当我待命时,我需要能够从我的手机快速通过 SSH 连接到 AWS 生产服务器 phone(例如,如果我手边没有笔记本电脑,但有小区覆盖但没有 wifi)。 SSH 访问只允许从少数 IP 地址进行,在我可以 SSH 之前,我需要将我的 cell phone 的 public IP 地址添加到该列表中。我正在使用 Prompt 2 和 AWS 移动控制台。
问题:如何找到我需要添加到 AWS 安全组的单元 phone 的 public IP 地址? (请在将其作为副本关闭之前阅读整个问题)
听起来很简单,对吧?除了我找不到确定我的手机 phone 的实际 public IP 地址的简单方法。例如,当通过小区 phone 网络访问互联网时,whatismyip.com 报告我的 public IP 地址为 107.77.xxx.xxx。将该地址添加到安全组不起作用。 ipchicken.com 和其他一些网站报告了相同的地址。
接下来,我认为中间可能存在各种 NAT,也许一些更智能的网络工具可以处理它。事实上,ifconfig.me 和 checkip.dyndns.org 报告了不同的 public IP 地址,166.170.xx.xx,在我的例子中。将该地址添加到安全组,也不允许我通过 SSH 进入服务器。
现在,作为最后的手段,我从我的手机 phone ssh 连接到另一台不包含生产数据并允许从任何地址进行 ssh 访问的服务器:
$ netstat -an|grep ":22 .* ESTABLISHED"
tcp 0 0 172.31.14.173:22 107.72.xx.xx:23255 ESTABLISHED
$
根据 netstat,我的 ssh 会话来自 IP 地址 107。72.xx.xx(已编辑完整地址)。现在,如果我将 that 地址添加到我的 AWS 安全组,我终于可以从我的 cell phone ssh 进入生产服务器。所以,这最后一种方法确实产生了我需要的正确地址,但它有点难以获得,特别是如果我无法访问另一台允许从任何地址使用 SSH 的服务器。
所以,简而言之:是否有像 whatismyip.com 或 ifconfig.me 这样的网站可以让我访问我的手机 phone 的 "true" public IP 地址,由 netstat 确定。
我正在使用 iPhone,所以我不能 运行 本地 UNIX 命令。如果有帮助的话,我的手机服务提供商是 AT&T。我也将我的 phone 置于现场测试模式,但它只给我 AT&T 不可路由的内部 10.x.x.x 地址。
听起来网络流量被代理了,因此您需要通过非 HTTP 方法检查地址。
Getting a public IP without access to a browser? - Networking - Spiceworks 建议使用 DNS 查找来获取地址,这样可以避免代理。
免责声明:https://api.ident.me
的作者假设相同的 IP 用于所有 SSH 目标,ident.me 应该支持您的需要:您可以使用 SSH(例如 ssh -q v4.ident.me
)找到用于 SSH 的 IPv4 地址,假设您的 NAT框对其他目的地使用相同的框。它还支持 DNS 查找(例如 dig +short @v4.ident.me
),尽管这似乎不太可能可靠地匹配(例如,如果您的 ISP 根据目标端口转换地址)。