【Linux系列】如何在 Linux 服务器上快速获取公网
博客目录
- 为什么需要获取公网 IP 地址
- 通过外部服务获取公网 IP
- 1. 使用 cip.cc 服务
- 2. 使用 ip.gs 服务
- 3. 使用 Amazon AWS 的 IP 查询服务
- 4. 使用 icanhazip.com 服务
- 方法对比与选择建议
- 为什么这些方法有效
- 其他获取公网 IP 的方法
- 1. 使用 dig 查询 DNS
- 2. 使用第三方 CLI 工具
- 3. 查看云服务商 metadata 服务
- 注意事项
在管理 Linux 服务器时,获取服务器的公网 IP 地址是一项常见且重要的任务。无论是进行远程连接、配置网络服务还是排查网络问题,了解服务器的公网 IP 都是必不可少的。
为什么需要获取公网 IP 地址
公网 IP 地址是互联网上识别您服务器的唯一标识符。与局域网内的私有 IP 不同,公网 IP 可以被全球任何连接到互联网的设备访问。获取公网 IP 地址在以下场景中尤为重要:
- 服务器远程管理:当需要通过 SSH 或其他协议从外部网络连接到服务器时
- 网络服务配置:部署 Web 服务器、邮件服务器等需要公网访问的服务时
- 安全审计:检查服务器的实际对外暴露的 IP 地址是否符合预期
- 网络诊断:排查连接问题时确认服务器的网络出口
通过外部服务获取公网 IP
最可靠的方法是通过外部 HTTP/HTTPS 服务来获取服务器从互联网上看到的 IP 地址。这种方法不依赖于服务器自身的网络配置,而是通过查询第三方服务返回服务器实际使用的公网 IP。
1. 使用 cip.cc 服务
curl cip.cc
cip.cc
是国内一个简单易用的 IP 查询服务,返回结果清晰易读,包含 IP 地址、地理位置和运营商信息。这是中文环境下最常用的方法之一,响应速度快,结果格式友好。
优点:
- 响应速度快
- 返回信息丰富(包含地理位置)
- 国内服务,访问稳定
缺点:
- 仅返回 IPv4 地址
- 需要服务器能够访问外网
2. 使用 ip.gs 服务
curl -4 https://ip.gs
ip.gs
是另一个简洁的 IP 查询服务,-4
参数确保只获取 IPv4 地址。这个服务返回结果非常干净,只有 IP 地址本身,适合脚本处理。
优点:
- 结果简洁,只有 IP 地址
- 适合自动化脚本处理
- 支持 IPv4 和 IPv6(不加-4 参数时)
缺点:
- 功能较为基础
- 需要 HTTPS 访问
3. 使用 Amazon AWS 的 IP 查询服务
curl -4 https://checkip.amazonaws.com
Amazon 提供的这个服务非常稳定可靠,返回结果同样只有 IP 地址,末尾有一个换行符。由于是 AWS 提供的服务,全球访问性能都很好。
优点:
- AWS 基础设施支持,稳定性高
- 全球访问速度快
- 结果格式简单
缺点:
- 可能在某些地区受到网络限制
- 纯英文服务
4. 使用 icanhazip.com 服务
curl -4 https://icanhazip.com
这个有趣域名(“I can haz IP”)的服务已经存在很长时间,是一个老牌的 IP 查询服务。它同样返回纯净的 IP 地址,适合脚本调用。
优点:
- 历史悠久,可靠性高
- 结果格式干净
- 支持多种 IP 版本查询
缺点:
- 域名不太正式,可能在某些严格环境中被屏蔽
方法对比与选择建议
服务 | 速度 | 结果格式 | 额外信息 | 适合场景 |
---|---|---|---|---|
cip.cc | 快 | 多行文本 | 地理位置、运营商 | 人工查看,中文环境 |
ip.gs | 中 | 单行 IP | 无 | 脚本处理 |
checkip.amazonaws.com | 快 | 单行 IP+换行 | 无 | 脚本处理,国际环境 |
icanhazip.com | 中 | 单行 IP | 无 | 脚本处理,兼容性要求高 |
选择建议:
- 如果是人工查看,推荐
cip.cc
,信息丰富易读 - 如果是脚本调用,推荐
checkip.amazonaws.com
或ip.gs
,结果干净 - 如果考虑最大兼容性,
icanhazip.com
是个不错的选择
为什么这些方法有效
这些服务的工作原理都很相似:当您的服务器向这些服务发起 HTTP 请求时,服务端会记录请求的来源 IP 地址并将其返回。因为请求是通过公网路由的,所以返回的 IP 就是您的服务器在互联网上显示的公共 IP 地址。
这种方法比查看服务器本地网络配置更可靠,因为:
- 它反映了经过所有 NAT、代理后的最终公网 IP
- 不受服务器本地网络配置错误的影响
- 可以识别出云服务器可能使用的弹性 IP 或负载均衡器 IP
其他获取公网 IP 的方法
除了上述 HTTP 查询方法外,还有一些替代方案:
1. 使用 dig 查询 DNS
dig +short myip.opendns.com @resolver1.opendns.com
这种方法通过查询特殊的 DNS 记录来获取 IP,适合无法使用 HTTP 但 DNS 可用的环境。
2. 使用第三方 CLI 工具
如ipify-cli
等专门工具:
npx ipify-cli
3. 查看云服务商 metadata 服务
对于 AWS、Azure、Google Cloud 等云服务器:
# AWS
curl http://169.254.169.254/latest/meta-data/public-ipv4# Google Cloud
curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
注意事项
- 隐私考虑:使用第三方服务意味着您的 IP 会被该服务记录
- 网络依赖:所有方法都需要服务器能够访问外网
- 服务可靠性:某些服务可能会不可用或被封锁
- 脚本使用:在生产脚本中使用时,应考虑错误处理和备用方案
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙