linux查看哪些端口被占用:三条命令按需选用

linux查看哪些端口被占用,优先选用ss命令列出全部监听端口,搭配lsof锁定单个端口对应的进程,老旧系统可使用netstat;ss预装在iproute2工具包,无需额外安装,netstat依赖net-tools包,多数新版系统没有预装,不加sudo执行命令时,大概率只能看到端口,无法显示进程PID;高并发服务器优先用ss,它读取内核netlink接口,查询速度明显更快,lsof适合精准定位单个端口进程,但遍历所有文件句柄,大批量端口查询时效率偏低。

主流端口查询命令对比

命令依赖软件包适用场景查询效率
ssiproute2(系统预装)现代CentOS7、Ubuntu18.04及以上版本,批量查看所有端口较高,支持万级连接查询
netstatnet-tools(需要手动yum或apt安装)CentOS6、Debian7等老旧Linux发行版,兼容旧脚本一般,连接量大时查询变慢
lsoflsof(多数系统预装)只排查某一个指定端口,定位进程名称与PID较低,只适合单端口精准排查

批量查看全部占用端口

你执行ss-tulnp可以一次性列出所有TCP、UDP监听端口,-t代表TCP协议,-u代表UDP协议,-l只保留正在监听的服务端口,-n只显示数字IP与端口,不解析域名与服务名,-p输出进程PID与程序名;加上sudo才能完整读取所有进程信息。

不带sudo会隐藏root进程的PID。

如果你使用老旧系统,执行netstat-tulnp实现相同效果,没有netstat工具时,CentOS系列运行yuminstallnet-tools,Ubuntu系列运行aptinstallnet-tools完成安装。

精准查询单个端口占用进程

你直接执行sudolsof-i:端口号,就能直接查到占用该端口的程序、PID与运行用户;例如查询80端口,命令写成sudolsof-i:80;增加-nP参数可以关闭域名与服务解析,进一步加快查询速度。

这条命令只适合单端口排查,不要用它遍历全量端口。

补充操作:根据PID结束占用进程

拿到PID之后,你可以执行killPID平缓关闭进程,进程无法正常退出时,再使用kill-9PID强制终止端口占用;也可以组合命令一键杀掉端口进程:kill-9$(lsof-t-i:端口号),-t参数只输出PID数字,省去手动复制编号的步骤。

边界限制说明

仅监听状态的端口才会被-l参数筛选出来,已经建立连接的端口不会出现在列表里;同时普通非root用户执行查询,只能看到自己启动的进程,系统服务类端口只能用sudo查看完整进程信息。

敬慕百科汇集百科知识与游戏文化,带你发现世界的每一个精彩角落。

想要了解更多关于linux查看哪些端口被占用的文章欢迎访问:百科