查看IP属于服务器哪个端口,本质不是让IP直接“对应”端口,而是先通过IP锁定服务器,再登录该服务器执行端口监听查询,常用命令是 netstat -ano 或 ss -tulnp。
很多刚接触服务器的人会把IP和端口当成一回事,其实它们完全在两个层级,IP像一栋楼的地址,端口像楼里的房间号,一台服务器只有一个主IP,却可以同时开放数千个端口,每个端口背后绑定一个具体服务,弄清楚怎么查服务器端口占用,是所有运维排查的第一步。
怎么查服务器端口占用?先分清IP和端口的关系
IP负责在网络里找到服务器,端口负责把数据交给服务器上哪个程序,两者组合起来叫套接字,格式就是 IP:端口。168.1.10:443 表示访问这台机器的443端口,一个IP从0到65535共有65536个端口号,常用的是1024以下的系统保留端口。
服务器上常见端口与服务对应关系如下:
- 22:SSH远程登录
- 80:HTTP网页服务
- 443:HTTPS加密网页
- 3306:MySQL数据库
- 3389:Windows远程桌面
- 6379:Redis缓存
当你问“这个IP属于服务器哪个端口”时,实际想问的是:这台服务器上哪些端口正在监听、分别被哪个程序占用,这个信息没法从IP本身直接读出来,必须登录目标服务器执行查询命令,远程扫描也能看到端口,但那是探测行为,未经授权扫别人服务器有法律风险。
查看IP对应端口命令:Linux与Windows实操对比
不同系统命令差别很大,下面分Linux和Windows两条线说清楚,命令都要在服务器本地终端执行,前提是你有对应服务器的登录权限。
Linux查看端口属于哪个服务用什么命令
Linux下最常用三条命令:ss、netstat、lsof。ss 速度最快,是多数现代发行版默认推荐。
执行:
ss -tulnp
这条命令会列出所有TCP和UDP监听端口,输出内容包括:协议、本地地址和端口、进程名、PID,比如看到 0.0.0:3306 对应 mysqld,就说明MySQL正在监听所有网卡的3306端口。
如果只想查某个端口属于哪个服务:
ss -tulnp | grep :3306
输出里会直接带上进程名和PID,想进一步确认进程路径,用:
ls -l /proc/PID/exe
或:
lsof -i :3306
lsof -i :端口号 适合快速定位单个端口,执行后能看到进程名、PID、程序路径,非常直观。
老系统可能没有 ss,就用:
netstat -tulnp
参数含义:-t 只看TCP,-u 看UDP,-l 只看监听状态,-n 显示数字IP和端口不解析域名,-p 显示进程名和PID,多数情况下 netstat -tulnp 的输出已经足够定位端口归属。
Windows查看端口占用命令
Windows服务器或本地电脑上,核心命令是 netstat -ano。
打开CMD或PowerShell,执行:
netstat -ano
参数含义:-a 显示所有连接和监听端口,-n 显示数字形式IP和端口,-o 显示进程PID,输出会分四列:协议、本地地址、外部地址、状态、PID,本地地址里冒号后面的数字就是端口。
找到可疑端口后,比如看到 0.0.0:3389 的PID是1234,接着查进程:
tasklist | findstr 1234
会返回 svchost.exe 或 TermService 之类进程名,如果是远程桌面服务,就说明3389端口被系统RDP服务占用。
Windows还可以用更直观的资源监视器,按Win+R输入 resmon,切到“网络”标签,在“侦听端口”里能看到端口、协议、进程名、PID,点击列头可排序。
Linux与Windows命令对比
| 需求 | Linux命令 | Windows命令 |
|---|---|---|
| 查看全部监听端口 | ss -tulnp |
netstat -ano |
| 查看指定端口 | lsof -i :端口 |
netstat -ano | findstr :端口 |
| 根据PID查进程 | ps -p PID -o cmd= |
tasklist | findstr PID |
| 图形化查看 | nmap 或
| 资源监视器 |
从使用频率看,Linux日常排障最顺手的是 ss -tulnp 加 grep,Windows则是 netstat -ano 加 tasklist,两者逻辑相同:先看端口和PID,再通过PID定位程序。
服务器IP和端口怎么查?远程排查的正确顺序
实际工作中,你不会每次都有服务器桌面环境,更常见的是本地电脑上只知道一个远程IP,想知道它开了哪些端口、某个端口通不通,这时可以分三步走。
第一步:先确认IP本身通不通,用 ping IP 或 ping 域名,但要注意,很多服务器禁Ping,ping不通不代表服务挂了,只说明ICMP协议被拦截。
第二步:测具体端口通不通,Windows用 telnet IP 端口,PowerShell可用 Test-NetConnection -ComputerName IP -Port 端口,Linux用 nc -zv IP 端口 或 telnet IP 端口,端口通,说明服务在监听且防火墙放行;端口不通,可能是服务没起、防火墙拦截、安全组没放行。
第三步:登录目标服务器,用前面的本地命令查端口归属,拿到PID后判断是不是目标服务在监听。
国内云服务器端口检测有个特殊点:云平台安全组是独立于系统防火墙的层,很多时候服务器内 ss -tulnp 明明看到端口在监听,外部依然连不上,就是因为安全组没有放行该端口,排查顺序应该是:先查系统内监听,再查系统防火墙,最后查云控制台安全组入方向规则。
日常场景:网站无法访问时怎么排查端口
假设你的网站突然打不开,浏览器访问 http://服务器IP 一直转圈,不要只盯着IP看,端口才是关键。
排查顺序如下:
- 登录服务器,执行
ss -tulnp | grep :80,确认Nginx或Apache是否在监听80端口 - 如果80端口没监听,执行
systemctl status nginx看服务是否挂了 - 如果服务正常,执行
curl -I http://127.0.0.1测本地回环,区别是服务问题还是网络问题 - 本地回环正常但外部不通,查防火墙:
firewall-cmd --list-ports或iptables -L -n - 云服务器再去安全组看80端口入方向规则是否放行

反过来,如果80端口通但网站还是打不开,监听IP可能是 0.0.1 而非 0.0.0,前者只允许本机访问,外部访问不了,执行 ss -tulnp | grep :80 时注意看本地地址是 0.0.0:80 还是 0.0.1:80。
查看端口时的常见误区
IP和端口是一回事。 这是最基础的误解,IP是主机地址,端口是程序入口,同一个IP上可以跑几十个服务,靠端口区分。
ping通就等于端口通。 ping走ICMP协议,和TCP/UDP端口完全无关,很多服务器禁ping但网站访问正常。
只看监听端口就够。 监听只能说明有程序在等连接,不代表外部一定能连上,还要看防火墙、安全组、服务是否健康。
所有端口都能随便扫。 扫描外部IP端口属于探测行为,未经授权可能违反网络安全法规,行业共识认为,端口检测应限于自己拥有或获得授权的服务器。
忽略UDP端口。 很多人只查TCP,但DNS、部分游戏服务、视频传输依赖UDP,查端口时建议TCP和UDP都看。
怎么查服务器端口占用:Q&A
怎么查服务器端口占用最直接
最直接的方法就是登录服务器后执行 netstat -ano(Windows)或 ss -tulnp(Linux),然后根据PID反查进程,命令输出会同时显示协议、端口、监听地址和进程标识,无需额外工具。
服务器IP和端口怎么查最简单
如果你想查自己服务器的IP和所有监听端口,Linux下执行 ip addr 看IP,再执行 ss -tulnp 看端口,Windows下执行 ipconfig 看IP,执行 netstat -ano 看端口,两条命令即可完成。
Linux下查看端口属于哪个服务用什么命令
Linux下用 lsof -i :端口号 可以直接看到某个端口被哪个进程和程序路径占用。lsof -i :3306 会返回 mysqld 及完整路径,如果没有 lsof,用 ss -tulnp | grep :3306 同样能拿到进程名和PID。
理解端口查询的逻辑比背命令更重要,先定位IP,再登录主机查监听端口,最后通过PID锁定具体服务,这套流程能解决绝大多数端口归属问题。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/825695.html


评论列表(2条)
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!
这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是端口部分,给了我很多新的思路。感谢分享这么好的内容!