在服务器上查看端口号,最直接的方法是通过命令行工具如Linux下的netstat或ss,以及Windows下的netstat -ano命令来实时监测当前活跃的连接和监听端口。
服务器端口管理是运维工作中最基础也最关键的环节之一,无论是排查网络故障、优化服务性能,还是进行安全加固,准确掌握哪些端口正在被占用、哪些服务在后台运行,都是第一步,很多新手在面对黑乎乎的终端界面时,往往会感到无从下手,其实只要掌握了正确的命令组合,查看端口状态就像查看手机电量一样简单直观。
Linux系统查看端口号的实操指南
Linux作为服务器领域的主流操作系统,其强大的命令行工具集为端口管理提供了极大的便利,对于大多数Linux发行版而言,查看端口主要依赖于网络统计工具。
使用ss命令快速定位
ss(Socket Statistics)是近年来逐渐取代netstat的新标准工具,因为它执行速度更快,且能提供更详细的信息,在终端中输入以下命令,即可列出所有处于监听状态的端口:
ss -tuln
这条命令中,-t代表TCP协议,-u代表UDP协议,-l表示仅显示监听状态的套接字,-n表示以数字形式显示地址和端口号,避免DNS解析带来的延迟,执行后,你会看到类似如下的输出:
| 状态 | 本地地址 | 端口 | 进程名 |
|---|---|---|---|
| LISTEN | 0.0.0 | 22 | sshd |
| LISTEN |
0.0.1 | 3306 | mysqld |
| LISTEN | 0.0.0 | 80 | nginx |
从表中可以清晰地看出,SSH服务占用22端口,MySQL数据库占用3306端口,而Web服务器Nginx则监听80端口,这种直观的表格化展示,能让你瞬间掌握服务器核心服务的分布情况。
传统工具netstat的使用场景
尽管ss更现代,但netstat在许多老版本系统或特定脚本中依然广泛使用,如果你发现ss命令不可用,或者需要查看更详细的连接历史,可以尝试:
netstat -tulnp
增加-p参数后,命令会显示占用端口的具体进程ID(PID)和进程名称,这对于需要直接杀死某个占用端口的进程时非常有用,当你发现80端口被一个未知的Java进程占用时,可以通过PID找到对应的进程名,进而判断是业务应用还是恶意程序。
Windows服务器端口查看与对比
Windows Server环境下的操作逻辑与Linux略有不同,但核心思路一致,对于习惯图形界面或PowerShell的用户来说,Windows提供了多种查看方式。
命令行与PowerShell的双轨制
在Windows中,最通用的命令依然是netstat,按下Win+R,输入cmd打开命令提示符,输入:
netstat -ano
这里的-a显示所有连接和监听端口,-n以数字形式显示,-o显示与每个连接相关的进程ID,得到PID后,你需要打开任务管理器,在“详细信息”选项卡中找到对应的PID,从而确定是哪个软件在占用端口。
相比之下,PowerShell提供了更强大的对象化处理能力,使用以下命令可以更优雅地筛选出监听中的端口:
Get-NetTCPConnection -State Listen | Select-Object LocalPort, OwningProcess
这种方法特别适合需要进行批量处理或自动化脚本编写的场景,业内专家指出,在混合云环境中,掌握PowerShell命令能显著提升跨平台管理的效率。
图形化监控工具的辅助
对于不习惯使用命令行的管理员,PortQry或Advanced Port Scanner等第三方工具也是不错的选择,这些工具不仅能查看端口,还能进行简单的连通性测试,在正式的生产环境中,建议优先使用系统自带工具,以减少第三方软件带来的安全风险和兼容性隐患。
常见端口号对照与安全检查
知道如何查看端口只是第一步,理解端口背后的含义并进行安全检查,才是运维的核心价值所在,不同的端口号对应着不同的服务协议,了解这些常识能帮助你快速识别异常。
高危端口重点关注
- 22端口:SSH服务,若暴露在互联网且密码简单,极易遭受暴力破解。
- 3389端口:Windows远程桌面,同样面临较高的安全风险,建议更改默认端口并启用网络级别身份验证。
- 3306/5432端口:数据库端口,严禁直接对公网开放,应通过内网访问或配置严格的防火墙规则。
如何排查异常端口
当你发现服务器上出现了陌生的监听端口时,不要惊慌,首先使用上述命令确认该端口的进程名,如果进程名无法识别,或者占用资源的CPU/内存异常,应立即隔离该服务器并进行病毒扫描,据统计,相当一部分服务器入侵案例都是通过开放不必要的远程管理端口导致的。
服务器端口防火墙配置建议
查看端口后,下一步自然是管理端口,仅仅知道端口被占用是不够的,你还需要确保只有必要的端口对外提供服务。
Linux防火墙配置
在现代Linux系统中,firewalld或ufw是常用的防火墙工具,以firewalld为例,开放80端口的命令为:
firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload
这条命令不仅开放了端口,还设置了永久生效,重启后依然有效,这种配置方式比直接修改iptables规则更安全、更易维护。
Windows防火墙策略
在Windows中,可以通过“高级安全Windows防火墙”图形界面,或者使用netsh advfirewall命令来配置规则,建议遵循“最小权限原则”,只开放业务必需的端口,其余全部默认拒绝。
Q&A:服务器怎么查看端口号常见疑问
服务器怎么查看端口号被哪个进程占用?
在Linux系统中,使用lsof -i :端口号命令可以直接列出占用该端口的进程详细信息,包括PID、用户和程序名,在Windows系统中,使用netstat -ano获取PID后,在任务管理器中查找对应进程即可,这是排查端口冲突最准确的方法。
如何查看服务器所有开放的端口列表?
可以使用ss -tuln(Linux)或netstat -tuln(Linux/Windows)命令,这两个命令会列出所有处于监听状态(LISTEN)的TCP和UDP端口,如果只想看TCP端口,可以加上-t参数,这将给你一个清晰的端口全景图。
查看端口号时显示地址为0.0.0.0是什么意思?
地址0.0.0表示该服务监听服务器上的所有网络接口,包括本地回环地址(127.0.0.1)和所有外部网卡IP,这意味着该端口不仅允许本机访问,也允许来自外部网络的连接,如果服务只需要本机访问,建议配置为监听0.0.1,以提高安全性。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/474434.html



