如何查看服务器端口号:多系统操作方法
如何查看服务器端口号,覆盖Linux、Windows两大主流服务器操作系统,可通过系统原生命令、图形界面工具完成本地监听端口、已建立连接端口的查询,适合运维人员、后端开发人员排查服务启动异常、端口占用冲突场景;Linux常用netstat、ss、lsof三类命令,Windows支持netstat命令与资源监视器图形界面,查询结果会同时展示协议、本地地址、端口号、进程PID与连接状态,需要注意普通用户执行部分命令时无法获取全部进程关联信息,需切换root或管理员权限。
Linux系统查看服务器端口号
你登录Linux服务器终端后,执行ss命令是当前较推荐的方式,ss属于iproute2工具集组件,相比传统netstat查询速度更快,执行ss-tulnp,-t代表TCP端口、-u代表UDP端口、-l代表仅监听状态端口、-n不做域名反向解析直接显示数字端口、-p输出对应进程信息,命令输出第一列是协议,第二列Recv-Q,第三列Send-Q,第四列LocalAddress:Port就是本地监听地址与端口号,最后一列附带进程名称与PID。
netstat属于net-tools套件,很多新版Linux发行版默认不再预装,需要你手动安装net-tools软件包后才能调用,执行netstat-tulnp参数含义和ss基本一致,适合习惯旧版命令的运维人员,执行netstat-an可以查看全部连接,不局限于监听端口,能看到ESTABLISHED已建立连接、TIME_WAIT等状态的端口会话。
lsof命令侧重通过进程反查端口,如果你已经知道某个服务进程PID,执行lsof-i:端口号,就能反向校验该端口是否被这个进程占用,也可以执行lsof-i-P-n,一次性列出所有网络相关监听端口,-P保持端口为数字格式,-n不解析主机名,该命令在排查端口被未知进程占用场景使用频率较高。
| 命令 | 所属工具集 | 核心特点 | 适用场景 |
|---|---|---|---|
| ss | iproute2 | 查询性能较好,新版系统默认自带 | 日常监听端口巡检 |
| netstat | net-tools | 兼容性强,旧系统普遍预装 | 老版本服务器维护 |
| lsof | lsof独立包 | 可进程与端口双向关联查询 | 端口占用溯源排查 |
Windows服务器查看服务器端口号
Windows服务器打开管理员身份的CMD或者PowerShell,输入netstat-ano,这是Windows原生内置命令,不需要额外安装组件,-a显示所有连接和监听端口,-n数字形式显示地址端口,-o输出对应的进程PID,拿到PID之后,你可以打开任务管理器,切换到详细信息标签页,通过PID找到对应的进程名称,确认是哪个程序占用目标端口。
图形化查询方式不需要记忆命令,你按下Win+R输入resmon打开资源监视器,切换到网络标签,展开侦听端口列表,表格直接展示端口号、协议、本地地址、PID、进程名称,可视化展示适合不熟悉命令行的管理员,查询结果和netstat输出口径保持一致,可交叉核对端口信息。
远程查看其他服务器端口号,不能只依赖本机命令,需要在目标服务器开放对应管理通道,例如SSH远程登录Linux,RDP远程登录Windows,也可以使用nmap这类端口扫描工具,从外部主机对目标服务器IP发起扫描,nmap默认扫描常用端口段,可使用nmap-p端口号目标IP,定向检测指定端口是否对外开放监听,外部扫描结果受防火墙规则影响,端口显示关闭有可能是防火墙拦截,并不代表服务器内部没有监听该端口。
查询结果需要区分监听端口与对外可访问端口,二者不是同一概念。
执行命令获取PID之后,不要直接终止进程,先确认进程对应的业务服务,避免误停核心业务,防火墙、安全组规则会改变外部探测结果,如果你只需要确认本机服务是否成功绑定端口,优先使用本机ss、netstat命令,外部nmap扫描仅用于验证网络可达性。
