有两种方法可以检索Linux 服务器或系统的外部/公网 IP 地址,最快的方法是解析DNS(dig、host),另一种是通过 HTTP 协议(cURL、wget)检索服务器数据。”
Local和Public是分配给不同网络的两个变体。本地 IP 地址分配给连接到同一网络的笔记本电脑、手机和其他设备,以进行本地网络通信。
ISP提供商将公网IP 地址分配给您的本地网络,以便通过 Internet 进行外部通信,它们可以是静态的或动态的,具体取决于连接。
动态 地址用于一般用途,每次连接到 Internet 时都会更新,而静态 地址在手动更改之前保持不变。
今天,您将学习如何使用OpenDNS和External Services显示外部或公网 IP 地址。
使用 OpenDNS 显示外部/公网 IP 地址
在 dig 命令中
dig命令是一个有价值的网络管理工具,用于对域名系统 (DNS)进行故障排除和查询。
此处的其他示例通过HTTP协议对服务器进行响应,并以不同的格式进行响应,或者依靠用户代理使服务器以纯文本形式响应,从而使处理速度变慢。
但是,DNS(OpenDNS、Google DNS 等)响应协议是最快、最标准化的,并且保持兼容的时间更长。
您可以将 dig 与OpenDNS一起用作解析器,以显示您的服务器或本地 Linux 系统的外部/公网 IP 地址。
$ dig +short myip.opendns.com @resolver1.opendns.com
##.###.###.###
在主机命令中
host 命令是用于 DNS 查找的简单实用程序,它通常查找 IP 地址的域名,反之亦然。
以下带有 OpenDNS 的主机命令会查找您的外部/公网 IP 地址。
$ host myip.opendns.com resolver1.opendns.com | awk '/address / {print $4}'
##.###.###.###
使用外部服务显示外部/公网 IP 地址 外部服务易于使用,需要使用HTTP 协议通过服务器并以纯文本格式解析输出数据或读取用户代理标头。
这会减慢结果的速度,并且不如DNS 查找稳定。由于这些原因,建议使用上述方法而不是这种方法。
在 cURL 命令中
curl 命令从服务器传输数据或向服务器传输数据,并支持各种协议,例如FTP、FTPS、HTTP、IMAP、POP等。
以下命令是目前最稳定的显示服务器或 Linux 系统的外部/公网 IP地址的命令。
$ curl ipinfo.io
##.###.###.###
$ curl ifconfig.co
##.###.###.###
$ curl ifconfig.me
##.###.###.###
$ curl https://checkip.amazonaws.com
##.###.###.###
在 wget 命令中
wget命令是一个用于从 Internet 下载文件的非交互式实用程序。它支持HTTP、HTTPS和FTP协议,并通过 HTTP 代理进行检索。
以下命令可以帮助您显示 Linux 系统当前的外部或公网 IP 地址。
$ wget -qO- https://ipecho.net/plain; echo
##.###.###.###
$ wget -qO - icanhazip.com
##.###.###.###
TL;DR
显示 Linux 系统或服务器的外部/公网 IP 地址的最快方法:
$ dig +short myip.opendns.com @resolver1.opendns.com
OR
$ host myip.opendns.com resolver1.opendns.com | awk '/address / {print $4}'
显示 Linux 系统或服务器的外部/公网 IP 地址的最简单方法:
$ curl ifconfig.me
OR
$ curl https://checkip.amazonaws.com
OR
$ wget -qO - icanhazip.com