当前位置: 首页 > news >正文

【Linux系列】如何在 Linux 服务器上快速获取公网

csdn

博客目录

    • 为什么需要获取公网 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 地址在以下场景中尤为重要:

  1. 服务器远程管理:当需要通过 SSH 或其他协议从外部网络连接到服务器时
  2. 网络服务配置:部署 Web 服务器、邮件服务器等需要公网访问的服务时
  3. 安全审计:检查服务器的实际对外暴露的 IP 地址是否符合预期
  4. 网络诊断:排查连接问题时确认服务器的网络出口

通过外部服务获取公网 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.comip.gs,结果干净
  • 如果考虑最大兼容性,icanhazip.com是个不错的选择

为什么这些方法有效

这些服务的工作原理都很相似:当您的服务器向这些服务发起 HTTP 请求时,服务端会记录请求的来源 IP 地址并将其返回。因为请求是通过公网路由的,所以返回的 IP 就是您的服务器在互联网上显示的公共 IP 地址。

这种方法比查看服务器本地网络配置更可靠,因为:

  1. 它反映了经过所有 NAT、代理后的最终公网 IP
  2. 不受服务器本地网络配置错误的影响
  3. 可以识别出云服务器可能使用的弹性 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

注意事项

  1. 隐私考虑:使用第三方服务意味着您的 IP 会被该服务记录
  2. 网络依赖:所有方法都需要服务器能够访问外网
  3. 服务可靠性:某些服务可能会不可用或被封锁
  4. 脚本使用:在生产脚本中使用时,应考虑错误处理和备用方案

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

http://www.dtcms.com/a/336288.html

相关文章:

  • 遥感数据介绍——MODIS、VIIRS、Sentinel-2
  • 飞算JavaAI结合Redis实现高性能存储:从数据瓶颈到极速读写的实战之旅
  • 三种变量类型在局部与全局作用域的区别
  • 大模型算法岗面试准备经验分享
  • 【Linux网络编程】NAT、代理服务、内网穿透
  • css中 hsl() 的用法
  • Java-I18n
  • 43 C++ STL模板库12-容器4-容器适配器-堆栈(stack)
  • 百度笔试编程题 选数
  • PWM控制LED亮度:用户态驱动开发详解
  • Soundraw - 你的AI音乐生成器
  • 51单片机-驱动静态数码管和动态数码管模块
  • linux线程被中断打断,不会计入调度次数
  • 解决 SECURE_PCI_CONFIG_SPACE_ACCESS_VIOLATION蓝屏报错
  • 攻防世界—unseping(反序列化)
  • 机器学习----PCA降维
  • RocketMQ面试题-未完
  • 芋道RBAC实现介绍
  • python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建
  • Valgrind 并发调试 ·:用 Helgrind 抓住线程里的“看不见的错”
  • 数据结构:在二叉搜索树中插入元素(Insert in a BST)
  • linux-高级IO(上)
  • 猫头虎AI分享|一款Coze、Dify类开源AI应用超级智能体Agent快速构建工具:FastbuildAI
  • #买硬盘欲安装k8s记
  • Flutter 3.35 更新要点解析
  • ICCV 2025 | Reverse Convolution and Its Applications to Image Restoration
  • 如何运用好DeepSeek为自己服务:智能增强的范式革命 1.2 DeepSeek认知增强模型
  • 计算机基础速通--数据结构·图的基础应用三(基础图算法进阶)
  • Tauri 框架介绍
  • 《Nursing Research》(护理SCI)LaTeX模板详细教程:从入门到投稿(一)