无论是新买的云服务器还是机房里的物理机,摸清它对外和对内的IP身份,往往是配置远程连接、开放服务端口的第一步。公网IP和内网IP搞混,轻则连不上机器,重则安全规则形同虚设。下面这套查询思路覆盖了常见的系统和网络环境,照着操作就能快速定位。
公网IP是服务器对外通信的标识。如果机器能正常访问外网,直接用命令行工具请求一个IP查询服务,几秒钟就能得到答案,无需安装任何第三方软件。
具体操作分系统来看:
使用过程中有几个容易踩的坑:
比如说,通过跳板机登录一台内网机器后,先跑一句 curl myip.ipip.net,确认出口地址,再去配置防火墙白名单,这样思路就清晰多了。
命令行只能给你一串数字,而想知道这个IP的运营商、大致方位,或者评估一下访问延迟,浏览器里的可视化查询平台会更直观。
这类在线工具的使用要点:
解读查询结果时需要留个心眼:
内网IP用于局域网内的通信。在一台机器上确认自己的私网地址,比查公网IP更简单,因为系统配置里直接就能看到。
按系统类别执行相应命令:
识别内网IP的简单判断标准:地址落在192.168.0.0/16、10.0.0.0/8或172.16.0.0/12这三个标准私有网段内,基本可以认定为内网IP。在云环境里,如果机器配置了VPC网络,私网IP一般由云平台自动分配,且重启后通常保持不变。
需要注意的是,一台服务器可能同时存在多块网卡,分别对应不同网段的内网地址。查看结果时务必对照网卡名称,别把虚拟网卡的地址当成业务网卡来用。
现实中总会遇到一些用常规命令搞不定的情况,比如服务器没有外网权限,或者处于复杂的多层NAT之后。下面几个思路可以应对这些限制。
当服务器无法访问外网时:
当需要比对内网公网是否对应时: 在服务器上执行 curl ifconfig.me 拿到出口IP,再登录交换机或路由器查看端口映射记录,两者比对即可判断当前公网对内网的映射关系是否正确。这一招在排查端口不通问题时非常高效。
另一个容易被忽略的场景是IPv6环境。执行 curl -6 ifconfig.me 可以查看服务器的IPv6公网地址,而内网IPv6一般以fe80开头。如果业务涉及双栈访问,建议把两种协议的地址都记下来备用。
这是因为查询工具返回的是出口公网IP。如果服务器部署在负载均衡或NAT网关后面,出口地址是这些设备的公网IP,并非服务器网卡上绑定的公网IP。以云控制台上的实例公网IP为准。
云环境中的VPC内网IP默认是固定的,只要不手动释放实例,重启不会导致地址变化。自建局域网中由路由器DHCP分配地址时,则存在变化可能,建议在路由管理中为服务器做MAC地址和IP绑定。
直接执行 ip addr show(Linux)或 ipconfig(Windows)即可看到本机内网IP。确认内网IP不依赖外网连接,只要机器正常运行就能查看。
查服务器IP这件事,关键不是记住所有命令,而是先分清查询目标和网络环境。对外提供服务首选命令行的在线查询接口,内网地址直接看系统配置;遇到非标准环境,及时退回云控制台或路由管理后台核实。把这些方法沉淀成自己的排查清单,再复杂的网络身份也能理顺。