背景:当我随时待命时,我需要能够从我的手机上快速地将SSH放到AWS生产服务器上(例如,如果我手头没有一台笔记本电脑,而且有手机覆盖,但没有wifi)。SSH访问只允许从少数IP地址进行访问,在我能够访问SSH之前,我需要将手机的公共IP地址添加到该列表中。我使用提示2和AWS移动控制台。
问:我怎样才能找到我的手机的公共IP地址,我需要添加到AWS安全组?(请阅读完整的问题,然后再将其作为副本结束)
听起来很容易,对吧?除了我找不到一个简单的方法来确定我的手机的实际公共IP地址。例如,当通过手机网络访问互联网时,whatismyip.com将我的公共IP地址报告为107.77.xxx.xxx。将该地址添加到安全组不起作用。ipchicken.com和其他一些站点报告的地址相同。
接下来,我想可能有各种各样的NAT在中间,也许一些更聪明的web工具可以处理这个问题。事实上,在我的例子中,ifconfig.me和checkip.dyndns.org报告了一个不同的公共IP地址166.170.xx.xx。将该地址添加到安全组,也不允许我将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 (完整地址编辑)。现在,如果我将该地址添加到我的AWS安全组中,我最终可以将ssh从我的手机添加到生产服务器中。因此,最后一种方法确实提供了我所需的正确地址,但是获得它有点困难,特别是如果我无法访问允许从任何地址获得SSH的另一台服务器。
因此,简而言之:是否有像whatismyip.com或ifconfig.me这样的网站可以让我访问由netstat决定的手机的“真实”公共IP地址。
我使用的是iPhone,所以我不能运行本地的UNIX命令。我的手机服务提供商是AT&T,如果这有帮助的话。我也把我的手机投入现场测试模式,但它只给我的AT&Ts内部10.x.x.x地址不可路由。
发布于 2018-11-26 23:14:52
这听起来像网络流量被代理,所以你需要检查地址通过一个非HTTP方法。
在没有浏览器访问的情况下获得公共IP?-网络- Spiceworks建议使用DNS查找来获取地址,这将避免代理。
发布于 2022-02-26 18:19:37
狄克拉默尔:“https://api.ident.me”作者
假设对所有SSH目标使用相同的IP,ident.me应该支持您的需要:您可以使用SSH (例如ssh -q v4.ident.me)查找用于SSH的IPv4地址,假设NAT框对其他目的地使用相同的地址。它还支持DNS查找(如dig +short @v4.ident.me),尽管这似乎不太可能可靠地匹配(例如,如果您的ISP翻译的地址基于目的端口)。
https://stackoverflow.com/questions/53423237
复制相似问题