跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Linux如何查公网出口IP_Linux查公网IP法【出口】

在Linux中确认公网IP需依赖外部服务,可用curl/wget请求HTTP服务(如ifconfig.me)、dig查询OpenDNS的TXT记录、curl+json API(如ipinfo.io)配合jq提取,或编写多服务轮询脚本提升可靠性。

如果您在Linux系统中需要确认当前网络对外通信所使用的公网IP地址,该地址即为数据包离开本地网络时经由NAT或路由器映射后的出口IP,则需依赖外部服务返回真实出口地址。以下是多种可直接执行的查询方法:

一、使用curl命令请求纯文本IP服务

curl是最轻量且广泛预装的HTTP客户端,通过向提供IP回显的公开服务发起GET请求,可直接输出无格式的IPv4地址,适用于脚本集成与快速验证。

1、执行命令:

curl ifconfig.me

2、执行命令:

curl icanhazip.com

3、执行命令:

curl checkip.amazonaws.com

4、执行命令:

curl whatismyip.akamai.com

5、执行命令:

curl ipecho.net/plain

二、使用wget命令替代curl获取IP

wget同样具备发起HTTP请求并输出响应体的能力,其-qO-参数组合可静默下载并直接打印到终端,不保存文件,行为与curl等效。

1、执行命令:

wget -qO- ifconfig.me

2、执行命令:

wget -qO- icanhazip.com

3、执行命令:

wget -qO- ipinfo.io/ip

4、执行命令:

wget -qO- ipecho.net/plain

三、利用dig命令查询OpenDNS提供的TXT记录

该方法不依赖HTTP协议,而是通过DNS查询机制向OpenDNS服务器请求myip.opendns.com的TXT记录,由DNS基础设施直接返回出口IP,规避HTTP代理或防火墙拦截风险。

1、执行命令:

dig +short myip.opendns.com @resolver1.opendns.com 2、若返回为空,请确认系统DNS配置可用且能访问resolver1.opendns.com

3、如需强制使用TCP查询以绕过UDP限制,可添加+tcp参数

四、调用支持JSON响应的API并提取IP字段

部分服务返回结构化JSON数据,包含IP、地理位置、运营商等扩展信息;配合jq工具可精准提取所需字段,适合需要元数据的运维场景。

1、执行命令:

curl -s ipinfo.io/json | jq -r '.ip'

2、执行命令:

curl -s ipapi.com/ip

3、执行命令:

curl -s httpbin.org/ip | jq -r '.origin'

4、若未安装jq,可先运行:

sudo apt install jq(Debian/Ubuntu)或sudo yum install jq(CentOS/RHEL)

五、使用多服务轮询脚本增强可靠性

当单一服务不可达时,可通过shell脚本按顺序尝试多个高可用IP接口,首个成功响应即终止并输出结果,提升查询鲁棒性。

1、创建脚本文件:

echo '#!/bin/bash\nfor url in ifconfig.me icanhazip.com checkip.amazonaws.com; do ip=\$(curl -s --max-time 3 \$url 2>/dev/null); [ -n "\$ip" ] && echo \$ip && exit 0; done' > get_public_ip.sh

2、赋予执行权限:

chmod +x get_public_ip.sh

3、运行脚本:

./get_public_ip.sh

相关文章