我已经有一个小代码可以做到这一点,但它似乎没有做我真正需要它做的事情。
我使用以下命令来获取公共IP。
dig +short myip.opendns.com @resolver1.opendns.com
卷曲 ipinfo.io/ip
可悲的是,这些给了我公共 IP,世界其他地方可以将我的机器/服务器视为。实际上,它们都有不同的公共 IP 地址。遗憾的是,我不知道如何从 Linux 终端获取它。
现在我有:
redmine XXX.XXX.XXX.238 邮件 XXX.XXX.XXX.234 git XXX.XXX.XXX.237
但是当我使用下面提到的命令时,我得到
XXX.XXX.XXX.227
这也是每个人都将我们视为的公共 IP,这就是这些命令不起作用的原因。有什么建议么?
答案1
您可能想阅读有关 NAT 的内容(https://en.wikipedia.org/wiki/Network_address_translation)。你没有共享整个IP,所以我只能怀疑,但我相信redmine、mail和git的IP是私有IP(仅在你的网络内部),而以227结尾的IP是所有3个服务的公共IP。
以下命令是否从 redmine、邮件和 git 服务器返回相同的 .227 IP 地址(如果您通过 SSH 连接到它们)?如果是这样,那么你就在 nat 后面,这是所有 3 台机器的公共 IP。
curl v4.ifconfig.co
v6 IP 怎么样? 3个都一样吗?
curl v6.ifconfig.co