466 字3 分钟
用 curl 获取 Linux 本机外网 IPv4 与 IPv6 地址
在 Linux 运维或日常开发中,经常需要在没有图形界面的终端环境下快速确认当前主机的公网出口 IP 地址。通过 curl 命令行工具请求公网 IP 查询服务是最便捷的做法。
本文整理了常用且稳定的 IPv4 / IPv6 查询接口及命令技巧。
1. 获取公网 IPv4 地址
可以使用以下任一命令获取本机的 IPv4 地址(建议添加 -4 参数强制解析 IPv4,避免在双栈网络中混淆):
# 常用极速接口(推荐)curl -4 ip.sbcurl -4 icanhazip.comcurl -4 ifconfig.mecurl -4 ident.mecurl -4 myip.dnsomatic.com
# 国内花生壳查询接口(返回快,需管道截取纯文本)curl -s http://ddns.oray.com/checkip | awk -F ": " '{print $2}' | awk -F "<" '{print $1}'
# cip.cc 附带运营商与地理位置信息(适合排查国内网络出口)curl cip.cc2. 获取公网 IPv6 地址
在已配置 IPv6 的网络环境中,使用 -6 参数强制通过 IPv6 协议向支持双栈的接口发起请求:
# 常用 IPv6 查询接口(推荐)curl -6 ip.sbcurl -6 icanhazip.comcurl -6 ifconfig.cocurl -6 ident.me
# 仅提供 IPv6 的独立域名(直连访问)curl -s https://v6.ident.mecurl -s https://ipv6.icanhazip.com提示
如果本机或所在局域网未分配公网 IPv6 地址,使用
-6查询时会报类似curl: (7) Couldn't connect to server或Network is unreachable的错误。
3. curl 常用参数说明
-4/--ipv4:强制 curl 仅解析 IPv4 地址并走 IPv4 通信。在双栈主机上测试非常重要。-6/--ipv6:强制 curl 仅解析 IPv6 地址并走 IPv6 通信。-s/--silent:静音模式,不输出加载进度条或通信统计信息,适合写在脚本中提取变量。
