服务器端口IP怎么查看命令行?核心上文小编总结:Linux系统用netstat、ss、lsof、ip等命令;Windows系统用netstat、Get-NetTCPConnection等;云服务器还需结合安全组与云平台控制台交叉验证,确保结果准确可靠。

Linux系统:主流命令行工具精准定位端口与IP绑定关系
在Linux服务器中,端口与IP的绑定信息是网络诊断与安全审计的核心依据。ss(socket statistics)是现代Linux推荐的首选命令,因其性能高、输出清晰,已逐步替代传统netstat。
查看所有监听端口及对应IP
ss -tuln
-t:TCP端口-u:UDP端口-l:仅显示监听状态(LISTEN)-n:以数字形式显示地址与端口(避免DNS反查延迟)
输出示例:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:80 0.0.0.0:*
LISTEN 0 128 127.0.0.1:3306 0.0.0.0:*
其中0.0.0:80表示监听所有IPv4地址的80端口;0.0.1:3306表示仅本地回环地址监听MySQL端口。
精确查看某进程绑定的端口与IP
sudo ss -tulnp | grep :80
添加-p参数可显示进程PID与名称,结合lsof可进一步确认进程归属:
sudo lsof -i :80 -n
输出包含COMMAND、PID、USER、FD、TYPE、DEVICE、SIZE/OFF、NODE、NAME(含IP:PORT),是排查端口冲突或权限问题的黄金标准。
验证IP地址本身是否配置在网卡上
仅看端口监听状态不够,还需确认IP是否真实绑定:
ip addr show | grep "inet "
或使用hostname -I快速获取所有主IP(多网卡场景下更直观)。

Windows系统:PowerShell与CMD双路径高效查询
Windows环境下,PowerShell的Get-NetTCPConnection是微软官方推荐的现代化命令,支持过滤、排序与状态统计,远超传统netstat -ano。
基础监听端口查询(CMD)
netstat -ano | findstr "LISTENING"
输出含Local Address(IP:Port)、Foreign Address、State及PID,需用tasklist | findstr PID进一步关联进程。
高级查询与进程关联(PowerShell)
Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess | Format-Table -AutoSize
关键优势:直接输出LocalAddress(绑定IP)与LocalPort(端口),并关联OwningProcess(进程ID)。
若需进程名,可扩展为:
Get-NetTCPConnection -State Listen |
Select-Object LocalAddress, LocalPort, @{Name="ProcessName";Expression={(Get-Process -Id $_.OwningProcess).ProcessName}}
检查IPv6与IPv4双栈配置
Windows常同时启用IPv6,需明确区分:
Get-NetTCPConnection | Where-Object {$_.LocalAddress -like "*:*"} | Select-Object LocalAddress, LocalPort
此命令可筛选出IPv6地址(含冒号),避免因双栈导致的端口重复误解。
云服务器特殊场景:安全组与平台控制台的协同验证(独家经验)
在公有云环境(如阿里云、酷番云、酷番云),仅靠命令行无法完全反映“外部可访问性”——安全组、网络ACL、防火墙规则均会阻断端口连通性,即使ss显示监听中。
酷番云案例实证
某客户部署Web服务后,netstat -tuln显示80端口正常监听于0.0.0:80,但外部无法访问,经排查发现:

- 命令行确认端口监听无异常;
- 酷番云控制台安全组规则未放行80端口(仅开放了443);
- 服务器本地
iptables未配置放行规则。
解决方案:在酷番云控制台→安全组→入方向规则中添加0.0.0/0→80→允许;同时执行:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
最终服务恢复。此案例证明:云服务器端口排查必须“三步走”——命令行查监听、平台查安全组、本地查防火墙。
专业建议:提升排查效率的3个关键原则
- 优先使用
ss而非netstat:ss基于netlink套接字,数据获取更实时,避免/proc/net/tcp读取时的锁竞争问题; - 区分“监听IP”与“实际可达IP”:
0.0.1监听的服务仅限本机访问,0.0.0才代表全网可访问; - 自动化验证连通性:
curl -v telnet://<服务器IP>:<端口> 2>&1 | grep "Connected"
直接测试端口是否从外部可达,避免误判。
相关问答
Q1:为什么ss -tuln显示端口已监听,但外部仍无法连接?
A:常见原因有三:① 安全组/防火墙未放行;② 服务绑定IP为0.0.1而非0.0.0;③ 云服务商的“公网IP未绑定”或NAT配置错误,需按“命令行→平台→本地”三级排查。
Q2:如何快速识别被占用的端口及其进程?
A:Linux用sudo ss -tulnp | grep :<port>;Windows用Get-NetTCPConnection -LocalPort <port> | Select-Object LocalAddress, OwningProcess,再结合tasklist或Get-Process定位进程,避免手动查PID的低效操作。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/384191.html


评论列表(5条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
@cool592lover:读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!
读了这篇文章,我深有感触。作者对端口的理解非常深刻,论述也很有逻辑性。内容既有理论深度,又有实践指导意义,确实是一篇值得细细品味的好文章。希望作者能继续创作更多优秀的作品!