查询服务器IP和端口号的核心方法:先区分内网IP、公网IP与端口监听状态,Linux执行ip addr,Windows执行ipconfig查IP;端口用ss -tlnp(Linux)或netstat -ano(Windows)查看监听状态,外部连通性测试用telnet或nc。
查服务器IP的基础操作与内外网区分
服务器IP分两类:内网IP(私有地址,如192.168.x.x、10.x.x.x)和公网IP(用于外部访问),场景不同,查询方式也不同。
Linux系统查内网IP的三种方式
多数云服务器Linux默认无图形界面,操作全靠命令行,按以下顺序尝试,基本都能拿到结果:
ip addr:最推荐,输出内容中inet后面的地址就是IP,比如inet 172.24.10.5/24,斜杠前是IP,斜杠后是子网掩码。lo开头的是回环地址127.0.0.1,直接跳过。hostname -I:一键输出所有IP,空格分隔,没有多余信息,适合脚本调用,人看也直观。ifconfig:老命令,部分新系统未预装,需要先yum install net-tools或apt install net-tools,看到eth0或ens33下的inet就是内网IP。
Windows服务器查IP的操作路径
Windows Server桌面环境查IP没什么难度:
- 图形界面:右键任务栏网络图标 → 网络和Internet设置 → 查看网络属性,列表里的IPv4地址就是,Server 2016及以上版本都走这个路径。
- 命令行:按
Win+R输入cmd回车,执行ipconfig,看以太网适配器下的IPv4 地址。
公网IP怎么查
内网IP查到了,但如果服务器在NAT后面(比如家里电脑映射到公网,或云服务器通过NAT网关出网),ip addr给的是内网地址,无法直接用于外部访问。
云服务器场景,公网IP一般在云厂商控制台的实例列表或实例详情页直接显示,这是最准确的来源,Linux服务器公网IP查询也可以走命令行应急验证:
curl ifconfig.me curl ip.sb curl cip.cc
这几个命令返回的就是当前出网的公网IP,如果和云控制台显示不一致,多数情况下是套了CDN或负载均衡,属于正常现象。
确认IP归属和连通性的常用手段
查到IP后建议做个验证,避免配置时抄错:
ping IP地址:测网络通不通,能通说明IP可达,但注意部分服务器禁ping,不通不代表IP错。ping 域名:如果服务器绑了域名但不知道IP,直接ping域名也能解析出IP。- Windows下
nslookup 域名:能看到域名解析到的IP,和云控制台对比,确认解析有没有生效。
查看服务器端口占用情况的实操命令
端口是服务对外通信的入口,查端口本质是查看端口有没有被进程监听,服务器端口占用查询是常见需求,核心命令如下。
Linux查监听端口的主流命令
ss -tlnp:当前最推荐。-t只看TCP,-l只看监听状态,-n显示数字端口不解析服务名,-p显示进程信息,执行后能看到端口号、监听地址、进程名和PID,比如LISTEN 0 128 0.0.0.0:80说明80端口正在对所有地址开放监听。netstat -tlnp:老牌命令,输出和ss类似,如果提示未安装,装netstat工具包即可,注意-p需要root权限,普通用户看不到进程PID。lsof -i :端口号:精准定位。lsof -i:8080直接显示8080端口被哪个进程占用,排查端口冲突时很好用。
Windows查端口占用和PID
Windows服务器端口占用查询,最常用的是netstat配合tasklist:
netstat -ano | findstr 端口号
输出最后一列是PID(进程标识符),拿到PID后执行:
tasklist | findstr PID号
就能看到对应的进程名,判断是不是预期中的服务,想结束进程就taskkill /PID 端口对应PID号 /F,务必确认进程身份后再操作。
查看对外开放端口的安全视角
上面命令查的是本机监听状态,但监听不代表公网能访问,服务器对外开放端口还受云安全组和系统防火墙双重管控。
- 云安全组:登录云控制台 → 找到实例 → 安全组 → 入方向规则,看端口范围、协议、来源IP。
0.0.0/0代表对所有公网开放。 - 系统防火墙:Linux执行
firewall-cmd --list-ports或以iptables -L -n查看;Windows在“高级安全Windows Defender防火墙”里看入站规则。
判断端口真正对外开放的标准方法:从另一台机器或本机用公网IP测试连通性。
telnet 公网IP 端口号 nc -vz 公网IP 端口号
telnet能进入空界面、nc返回succeeded,说明端口公网可达,否则逐层排查安全组、防火墙、服务进程,哪一环挡住处理哪一环。
实战中查IP和端口的高频场景
真正的难点不在命令本身,而是不清楚该用哪个命令、查出来的结果怎么定位问题,下面几个场景覆盖多数人的真实需求。
买完云服务器想登录,IP在哪看
新购服务器后,很多人第一反应是问IP地址,实际路径是:
- 登录云厂商控制台。
- 进入云服务器ECS / CVM / 轻量应用服务器列表页面。
- 实例名称旁边或者详情页基本信息里,直接标注了公网IP和私网IP。
不需要在服务器内部查,控制台的IP才是用于本地远程登录的地址,如果控制台不显示公网IP,多数是因为带宽计费方式是“按使用流量”且未开通公网,去弹性公网IP面板绑定一个即可。
服务部署好了,外部却访问不了
典型表现:本机curl localhost:8080有响应,但外网IP打不开,排查思路按以下顺序走:
- 确认服务监听地址。
ss -tlnp看8080端口是否监听在0.0.0上,如果监听在0.0.1,外部永远无法访问,需要改服务配置为0.0.0。 - 确认本机防火墙没挡,Linux临时关闭测试(
systemctl stop firewalld),确认问题在防火墙再细化放行规则,Windows检查入站规则有没有允许对应端口。 - 确认安全组放行,控制台安全组入方向放行8080端口,来源IP按需设置。
- 确认公网IP是否正确,如果服务器前面挂了CDN或WAF,源站IP才是直连目标,公网IP可能是中间层。
多数问题的根因是服务监听地址错误或安全组漏放行,这两项优先排查。
域名解析到了哪个IP,怎么查
排查域名问题时,需要知道域名实际指向了哪个服务器IP,执行nslookup 域名或dig 域名,返回的Address就是解析结果,如果有多个IP,通常是轮询负载均衡或多个A记录,这里注意:解析到的IP可能不是源站IP,而是CDN节点或云负载均衡的入口地址,这时需要回源才能找到真实服务器。
高效查询IP和端口的方法论
工具用多了会发现,查IP和端口这件事的核心逻辑是三层确认:
- 第一层:本机视角。
ip addr(IP)、ss -tlnp(端口),确认服务器自身状态。 - 第二层:平台视角,云控制台确认公网IP、安全组放行规则,解决网络策略问题。
- 第三层:外部视角。
telnet或在线工具从公网侧探测,验证最终连通性。
三层都通过,IP和端口就是正常可用的,哪一层不通,就在哪一层找原因。
日常运维建议把常用命令记成笔记或脚本,比如Linux下写一行:ss -tlnp | grep 端口号,Windows下存一条:netstat -ano | findstr 端口号,下次直接调用,不用重新翻文档。
常见问题速查
服务器端口被占用了,怎么查是哪个进程占用的?
Linux执行lsof -i:端口号,直接显示进程名和PID,然后用ps aux | grep PID看进程详情,Windows执行netstat -ano | findstr 端口号拿到PID,再用tasklist | findstr PID匹配进程名,确认进程后,能停就停,不能停就换端口。
公网IP和私网IP冲突时,以哪个为准?
公网IP是外部访问的唯一入口,私网IP是云内网通信用的,比如数据库迁移、内网互访用私网IP,速度更快且不占公网带宽,但用户访问网站、SSH登录,一律用公网IP,两个IP不冲突,只是用途和访问范围不同。
网站打不开,判断是IP问题还是端口问题?
先用ping测试IP连通性,能通说明IP没问题,再用telnet测试端口连通性,端口不通就查安全组和防火墙,端口通就打不开疑问就要看服务状态和站点配置。多数情况下,IP通、端口不通,根因在网络策略;IP和端口都通但网站异常,根因在服务或应用层。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/771805.html


