如何查看服务器端口
- 云服务器
- 2026-01-06
- 7
查看服务器端口是网络管理和系统维护中的常见操作,无论是排查服务异常、检测安全漏洞还是确认端口占用情况,都需要掌握多种查看方法,以下是不同操作系统和场景下的详细操作步骤及工具使用说明。
在Linux系统中,最常用的端口查看命令是netstat和ss。netstat是一个传统的网络工具,能够显示网络连接、路由表、接口统计等信息,要查看所有监听的端口,可以使用命令netstat tuln,其中t表示TCP端口,u表示UDP端口,l仅显示监听端口,n以数字形式显示地址和端口,避免DNS解析延迟,输出结果中的0.0.0:22表示服务器所有IP地址的22端口(SSH服务)正在监听,如果需要查看端口关联的进程ID(PID),可以添加p参数,即netstat tulnp,但此参数可能需要root权限,对于更详细的连接状态,如ESTABLISHED(已连接)、TIME_WAIT(等待关闭)等,可以使用netstat an查看所有连接的数字形式信息。

相较于netstat,ss命令是Linux下更高效的替代工具,默认安装在新版系统中,速度更快且功能类似,查看监听端口的命令为ss tuln,查看进程关联信息则使用ss tulnp。ss tlnp | grep :80可以快速筛选出80端口(HTTP服务)的监听情况及其关联进程。lsof(list open files)也是实用的端口查看工具,通过lsof i :端口号可以查看指定端口被哪个进程占用,如lsof i :3306查看MySQL数据库端口的使用情况。lsof i则能显示所有网络连接的端口信息。
Windows系统中查看端口的方法与Linux有所不同,命令行工具netstat同样适用,基本命令为netstat ano,其中a显示所有连接,n以数字形式显示,o显示进程PID,输出结果中的LISTENING状态表示端口正在监听,最后一列的数字即为PID,通过任务管理器可以进一步定位PID对应的进程:在“进程”选项卡中,右键点击列标题,勾选“PID”列,然后根据PID值查找进程名称,若需筛选特定端口,可使用netstat ano | findstr "端口号",例如netstat ano | findstr :8080,PowerShell是Windows更现代的管理工具,使用GetNetTCPConnection LocalPort 端口号可查看TCP端口的详细连接信息,包括状态、进程PID等,结合GetProcess Id PID可获取进程名。
对于图形化界面操作,Windows的“资源监视器”提供了直观的端口查看方式:通过任务管理器进入“性能”选项卡,点击“打开资源监视器”,在“网络”部分展开“TCP连接”,即可按端口或进程筛选查看,Linux系统下,也可以使用nmap工具进行端口扫描,nmap sT O localhost可扫描本机的开放端口及系统类型,需提前安装nmap包。

以下是不同命令的参数对比表:
| 命令 | 常用参数组合 | 功能说明 | 适用系统 |
|---|---|---|---|
| netstat | tulnp | 查看监听端口及关联进程 | Linux/Windows |
| ss | tulnp | 高效查看网络连接和端口信息 | Linux |
| lsof | i :端口号 | 查看指定端口被哪个进程占用 | Linux |
| netstat | ano | 显示所有连接及PID(Windows) | Windows |
| PowerShell | GetNetTCPConnection | 查看TCP端口连接详情 | Windows |
在实际操作中,若发现端口被未知进程占用,需警惕恶意软件风险,建议结合ps(Linux)或任务管理器(Windows)进一步分析进程来源,对于服务器安全,应定期检查不必要的开放端口,并使用防火墙工具(如Linux的iptables、Windows的防火墙)限制访问权限。

相关问答FAQs:
-
问:提示“端口被占用”但无法确定具体进程怎么办?
答:可尝试使用lsof i :端口号(Linux)或netstat ano | findstr "端口号"(Windows)获取PID,然后通过kill 9 PID(Linux)或任务管理器结束进程,若仍无法解决,可能是系统服务占用,需检查相关服务配置。
-
问:如何查看远程服务器的端口开放情况?
答:使用nmap工具扫描远程服务器,例如nmap 远程服务器IP p 端口号可检测指定端口是否开放,若需查看所有端口,使用nmap sT 远程服务器IP,注意:扫描前需获得服务器管理员授权,避免违反安全策略。