要确认Ubuntu系统当前对外暴露的公网IP地址,必须通过向外部服务发起HTTP或DNS请求获取,因本机仅含私有IP或回环地址;可用curl ifconfig.me、wget -qO- icanhazip.com或dig +short myip.opendns.com @resolver1.opendns.com | head -n1等方法。

要确认Ubuntu系统当前对外暴露的公网IP地址,必须通过向外部服务发起HTTP请求来获取,因为本机网络配置中只包含私有IP或本地回环地址,无法直接读取路由器NAT映射后的公网出口地址。
用curl调用在线API获取公网IP
打开终端(Ctrl+Alt+T),输入以下命令:
curl ifconfig.me
该命令会向轻量级服务ifconfig.me发起GET请求,服务器返回纯文本格式的IPv4地址,无多余换行或标签,适合脚本解析。
如果提示curl未安装,先执行 sudo apt update && sudo apt install curl -y。
用wget替代curl获取公网IP
方法一:使用icanhazip服务
wget -qO- icanhazip.com
方法二:使用ipecho.net
wget -qO- ipecho.net/plain
注意:【-qO- 参数缺一不可】,-q表示静默模式避免进度条干扰,-O- 表示将响应体直接输出到终端而非保存为文件;漏掉-O-会导致生成名为“plain”或“index.html”的空文件,且终端无任何输出。
用dig查询DNS服务商公开解析接口
第一步:确保已安装dnsutils
sudo apt install dnsutils -y
第二步:向OpenDNS的resolver1.opendns.com发起TXT查询
dig +short myip.opendns.com @resolver1.opendns.com
该方式不依赖HTTP协议,绕过防火墙对80/443端口的限制,在某些企业网络或教育网环境中更可靠。
第三步:过滤掉可能的额外记录(如SOA)
dig +short myip.opendns.com @resolver1.opendns.com | head -n1
因为部分DNS响应可能附带权威服务器信息,head -n1确保只取第一行——也就是真正的IPv4地址。











