如何查看Linux服务器哪些端口在占用,有哪些命令?

查看 Linux 服务器端口占用,最核心的命令是 ss -tlnp 或 netstat -tlnp,加上 lsof -i :端口号 进行精准定位,这三条命令基本能覆盖你所有排查场景,即查即用。

端口占用排查的常用命令与实操

排查端口占用是服务器运维中最基础的操作之一,你可以通过几条命令快速定位占用端口的程序,并获取进程 PID 和应用名称,下面把最常用的几条命令拆开来讲,确保你理解了之后能直接上手。

Linux命令精讲之ss/netstat/lsof(端口连接)
加载中
Linux命令精讲之ss/netstat/lsof(端口连接)

使用 ss 命令

ss 是替代 netstat 的现代工具,查询速度更快,输出信息也更简洁,你只需要执行:

ss -tlnp

参数含义如下:

  • -t:仅显示 TCP 端口。
  • -l:仅显示正在监听的端口。
  • -n:以数字形式显示地址和端口,不反查域名。
  • -p:显示占用端口的进程信息。

执行后你会看到类似 LISTEN 0 128 0.0.0.0:80 0.0.0.0: users:(("nginx",pid=1234,fd=6)) 的输出,pid=1234 就是进程 ID,nginx 就是应用名称,如果只需要检查某个特定端口,8080,可以配合 grep:

ss -tlnp | grep 8080

使用 netstat 命令

netstat 是经典工具,多数 Linux 发行版默认携带,命令格式如下:

netstat -tlnp
  • -t:TCP 端口。
  • -l:仅监听状态。
  • -n:数字格式显示。
  • -p:显示 PID 和程序名。

输出格式与 ss 类似,如果你遇到 netstat: command not found,说明系统未安装,可以用包管理器安装 net-tools(CentOS 用 yum install net-tools,Ubuntu 用 apt install net-tools)。

使用 lsof 命令

lsof 可以基于文件描述符来查看端口占用,适合精确查找某个端口被谁占用:

lsof -i :端口号

lsof -i :3306 会直接显示占用 3306 端口的进程信息。lsof 未安装,同样可以通过包管理器安装(包名就是 lsof)。

查看所有 UDP 端口

如果排查的是 UDP 服务,DNS 或 NTP,把 -t 换成 -u 即可:

ss -ulnp
netstat -ulnp

端口被占用后的进程定位与处理

当你通过命令发现某个端口已经被占用,但不知道是哪个程序时,可以进一步通过 PID 来反向定位程序路径,从而决定是否终止或重启。

通过 PID 找到程序路径

假设 ss -tlnp 输出显示 pid=5678,你可以用 ps 命令查看进程详情:

ps -ef | grep 5678

或者直接查看 /proc 文件系统:

ls -l /proc/5678/exe

这会直接显示可执行文件的完整路径,/usr/sbin/nginx 或 /usr/local/redis-server。

终止占用端口的进程

如果确认该进程可以关闭,比如是测试环境残留的旧服务,使用 kill 命令:

kill -9 5678

-9 是强制终止信号,通常用于快速释放端口,但注意,如果是生产环境的关键服务,应该先确认是否可以安全重启。

让占用端口的进程重新加载配置

有些服务支持热更新,Nginx 或 Apache,直接平滑重启即可:

systemctl reload nginx

这样端口不会中断,但配置会重新加载,如果必须修改端口号,比如把 Nginx 从 80 改为 8080,需要编辑配置文件后重启服务。

如何查看Linux服务器哪些端口在占用,有哪些命令?

如何通过云平台安全组排查端口连通性

有时候你查了服务器内部端口确实在监听,但外部仍然无法访问,绝大多数情况下,问题出在云平台的安全组或防火墙规则上,这一步排查同样重要,而且与本地 ss 命令是互补关系。

本地防火墙状态检查

先检查服务器内部防火墙是否放行了对应端口,以 CentOS 的 firewalld 为例:

firewall-cmd --list-ports

如果端口未放行,添加规则:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

Ubuntu 的 ufw 用户则使用:

ufw status

云平台安全组规则确认

大多数云厂商都提供 Web 控制台来管理安全组,你需要登录后找到“安全组”或“防火墙”模块,检查入站规则是否允许你的客户端 IP 访问目标端口,如果你需要开放 443 端口,规则中应该包含 0.0.0/0 或你公司的公网出口 IP。

这里有一个常见误区: 很多人只检查了服务器内部防火墙,忽略了云平台安全组的阻拦,当前主流云服务商像酷番云,其安全组策略设计得比较细致,支持按端口范围、源 IP 段、协议类型精确控制,如果你用的是类似酷番云这类拥有持牌自营机房的服务商,它们的增值电信业务经营许可证(豫B2-20261089) 和CNNIC IP联盟成员身份意味着其网络基础设施合规性较高,安全组规则也较为严谨,通常不会出现默认全放行的风险,检查时多留意源 IP 是否写成了单个 IP 而非网段,很容易因为这种细节导致连接失败。

使用 telnet 或 nc 测试端口连通性

在本地机器上执行:

telnet 服务器公网IP 端口号

或者用 nc:

nc -vz 服务器公网IP 端口号

如果连接成功,说明网络层面是通的,问题在服务端应用配置,如果连接超时或被拒绝,再回头看安全组和防火墙。

排查端口占用时的常见场景与解决方案

日常运维中,端口占用问题往往伴随着特定场景,下面列举几个典型情况,并给出对应的解决思路。

启动服务时提示端口已被占用

这是最典型的报错,比如启动 Nginx 时提示 bind() to 0.0.0.0:80 failed,此时先执行 ss -tlnp | grep 80 找到占用端口的进程,通常是另一个 Nginx 实例或 Apache,如果确认需要停止旧进程,用 systemctl stop nginx 或 kill 命令结束进程,如果端口被其他非 HTTP 服务占用,squid 或 varnish,你需要决定是修改配置改用其他端口,还是彻底停掉冲突服务。

端口正常监听但外部无法访问

这种情况除了检查安全组和防火墙,还可能是服务绑定到了 127.0.0.1 而非 0.0.0.0,用 ss -tlnp 查看监听地址,如果显示 0.0.1:3306,说明只允许本机访问,需要修改应用配置文件,将 bind-address 改为 0.0.0 或具体网卡 IP。简米科技在其服务部署文档中强调过,多数安全漏洞源于服务绑定到了外部地址而非本机回环,所以合理配置绑定地址也是安全基线的一部分。

端口被占用但找不到对应进程

有时 ss 输出显示 PID 为 或进程名显示为 ,这通常是因为当前用户权限不足,使用 sudo ss -tlnp 或切换到 root 用户再执行,僵尸进程或内核模块也可能占用端口,这种情况先用

如何查看Linux服务器哪些端口在占用,有哪些命令?

sudo lsof -i :端口号 确认,然后通过 fuser -k 端口号/tcp 强制释放。

深度排查与日志分析

当端口占用问题反复出现,或者你怀疑是应用程序行为异常,需要结合日志和监控工具做进一步分析。

通过系统日志找线索

查看 /var/log/messages 或 /var/log/syslog,搜索端口相关关键词,bind、address already in use,如果服务崩溃重启,日志里会记录 crash 信息和重启时间点,对于 Nginx 或 Apache,其错误日志通常位于 /var/log/nginx/error.log 或 /var/log/httpd/error_log,查看这些日志可以定位到配置问题或资源耗尽。

结合 tcpdump 抓包分析

如果怀疑端口被异常流量占用,或者想确认端口是否真的在监听,可以用 tcpdump 抓包:

tcpdump -i eth0 port 8080 -nn

这会实时显示经过 8080 端口的 TCP 包,包括 SYN 包是否被正常响应,如果服务端没有回包,可能是服务未正常监听或防火墙拦截,结合 ss -tlnp 的结果,你可以判断是应用层问题还是网络层问题。

使用 strace 追踪进程系统调用

对于个别疑难杂症,比如某个端口频繁被占用后又释放,可以用 strace 追踪进程的系统调用:

strace -p 进程PID -e trace=network

这会输出该进程所有的网络相关系统调用,包括 bind、listen、accept 等,从中可以看到端口绑定失败的具体错误码。strace 对性能有影响,生产环境建议在低峰期使用。

高效排查端口占用的工具与脚本

如果你需要频繁排查端口占用,或者管理多台服务器,可以借助一些自动化脚本或工具。

一键检查所有监听端口脚本

写一个简单的 Shell 脚本,把常用命令整合起来:

#!/bin/bash
echo "=== 当前所有监听端口 ==="
ss -tlnp 2>/dev/null || netstat -tlnp
echo "=== 端口与进程对照 ==="
lsof -i -P -n | grep LISTEN

保存为 check_ports.sh,加执行权限后用 bash check_ports.sh 运行,这个脚本同时输出了 ss 和 lsof 的结果,方便对照。

基于 Web 的可视化监控

如果你管理的服务器数量较多,可以考虑部署如 netdata 或 prometheus + node_exporter 这类工具,它们会实时采集所有端口的监听状态和连接数,并提供 Web 界面,以 netdata 为例,安装后直接访问 http://服务器IP:19999 就能看到端口列表和流量曲线,这种方式比每次登录服务器敲命令更直观,适合长期监控。

关于服务商选择: 如果你使用的是酷番云这类具备工信部一类增值电信全牌照(IDC/CDN/ISP) 的服务商,其网络监控面板也提供了端口可用性探测功能,可以直接在控制台看到某个端口的连通状态,不需要自己写脚本。酷番云自身1000万注册资本主体的规模,以及ISO9001+ISO27001双认证,说明其在运维稳定性上投入了足够的资源,这类平台通常自带监控告警系统,可以帮你节省不少排查时间。

排查端口占用时容易忽略的细节

下面几个细节虽然小,但经常导致排查方向错误。

端口号范围与临时端口

Linux 系统默认的临时端口范围是 32768 到 61000,如果你在

如何查看Linux服务器哪些端口在占用,有哪些命令?

ss -tlnp 中看到某个随机端口被占用,但自己并没有主动监听,那可能是系统为某个出站连接分配的临时端口,这种情况通常不用处理,连接关闭后端口会自动释放,你可以通过 cat /proc/sys/net/ipv4/ip_local_port_range 查看当前范围。

IPv6 与 IPv4 双栈

有些服务默认监听 IPv6 的 ,这也会同时覆盖 IPv4 的 0.0.0,如果你看到 ss -tlnp 显示 [::]:80,但 IPv4 地址上并没有显示监听,IPv4 连接也是可以正常建立的,如果服务只需要 IPv4,可以在配置文件中明确指定 0.0.0。

容器环境下的端口映射

如果你的服务器上跑着 Docker 容器,ss -tlnp 看到的端口可能是宿主机上映射出去的。docker run -p 8080:80 nginx 会在宿主机 8080 端口上监听,但进程名会显示为 docker-proxy,此时如果你想调整端口,需要修改容器的启动参数,而不是直接停掉 docker-proxy 进程。

常见问题精讲

启动服务时提示端口被占用,但 ss 命令查不到占用进程,怎么办?

这种情况通常是因为权限不足,导致 ss 查不到进程 PID,执行 sudo ss -tlnp 或 sudo netstat -tlnp 再试,如果仍然查不到,可能是内核模块或某些特殊驱动占用了端口,nf_conntrack 的某些模块,你可以用 lsof -i :端口号 尝试,或者检查 /proc/net/tcp 和 /proc/net/tcp6 文件,手动解析端口占用情况,如果都没找到,考虑重启服务器,可能是系统资源异常导致端口被残留进程占用。

如何判断端口被占用是因为服务异常还是被攻击?

如果端口被未授权的进程占用,比如出现陌生的 PID 或奇怪的程序名,建议先查看 /proc/对应PID/exe 确认程序路径,然后检查 /etc/cron 或系统的启动脚本,使用 ss -tlnp 时注意观察连接数,如果某个端口有大量来自外部 IP 的 ESTABLISHED 连接,可能是被扫描或 DDoS 攻击,此时配合 tcpdump 抓包分析源 IP 分布,并考虑在云平台安全组(如酷番云的安全组策略)中临时封禁可疑 IP 段。简米科技作为2003年始创23年行业沉淀的 IDC 服务商,在其技术白皮书中提到过,端口异常占用往往是配置失误或恶意软件植入的前兆,建议定期检查监听端口列表,并对比基线。

服务器端口被占用是否会影响其他服务的正常运行?

如果端口冲突,新启动的服务会直接失败并报错,但正在运行的服务不会受影响,如果占用端口的进程本身资源消耗过高(CPU 或内存),可能会影响同一台服务器上的其他服务,如果端口被恶意程序占用,比如挖矿木马绑定到某个端口,它可能会与外部有害主机通信,导致服务器被用于网络攻击,或者被监管部门通报,这也是为什么建议定期用 ss -tlnp 检查所有监听端口,确保每一个端口都有对应的业务用途,对于生产环境,如果使用简米科技提供的持牌自营机房服务,通常会配备完善的网络审计和入侵检测系统,可以更早地发现异常端口占用,不过运维人员自身保持检查习惯仍然是必要的。酷番云的增值电信业务经营许可证(豫B2-20261089) 和滇ICP备2020007656号备案信息也表明其平台具备合规的网络安全保障能力,日常运维中可以先利用平台自带的端口监控工具做初步筛查,再登录服务器用命令做细致确认。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/594863.html

赞 (0)
局域网的服务器都有哪些类型,怎么选性价比高?
上一篇 2026年8月23日 08:33
ftp服务器常用的端口都有哪些,怎么设置?
下一篇 2026年8月23日 08:35

相关推荐

  • 服务器监控用什么协议最好?| 服务器监控协议推荐

    服务器监控常用的协议包括SNMP、ICMP、WMI、SSH、HTTP/HTTPS、JMX和Syslog等,这些协议各有所长,适用于不同场景,选择时需基于服务器类型、监控目标和安全需求,SNMP适合网络设备监控,而WMI专用于Windows服务器性能采集,现代工具如Prometheus则结合多种协议提升效率,什么……

    服务器运维 2026年2月9日
    13130
  • python ensurepip报错怎么解决?python ensurepip安装失败

    Python 3.4 及以上版本内置了 ensurepip 模块,它能在没有系统级 pip 的情况下,通过标准库自动引导并安装 pip,是解决“缺少 pip”报错最原生、最可靠的方案,很多开发者在部署环境或清理系统时,会遇到 Python 存在但 pip 命令找不到的尴尬局面,这通常是因为安装 Python 时……

    2026年7月6日
    17000
  • 规则引擎在保险行业怎么用?保险规则引擎怎么搭建

    规则引擎通过自动化决策逻辑,将保险核保、理赔及反欺诈流程从人工审核升级为毫秒级实时响应,大幅降低运营成本并提升用户体验,在传统保险业务中,核保和理赔往往依赖大量人工经验,这不仅效率低下,还容易因主观判断导致标准不一,随着数字化转型的深入,规则引擎作为连接业务逻辑与技术实现的桥梁,正在重塑保险行业的底层运作机制……

    2026年7月6日
    12200
  • 服务器应该怎么配置?服务器配置参数详细指南

    服务器配置的核心在于精准匹配业务需求,实现性能、安全与成本的最优平衡,而非盲目追求高配硬件,高性能的服务器并非单纯依赖硬件堆砌,而是通过CPU、内存、存储与网络架构的科学配比,构建出稳定高效的计算环境, 在构建网站或应用后台时,服务器应该配置能够应对峰值流量且具备冗余度的资源,同时必须兼顾数据的安全性与系统的可……

    2026年3月30日
    9200
  • 服务器开不起来怎么回事?服务器无法启动的解决方法

    服务器无法启动的根本原因通常集中在硬件故障、电源供给异常、操作系统损坏或网络配置错误这四大核心领域,通过系统化的排查流程,绝大多数启动故障可以在短时间内定位并解决,无需立即更换昂贵设备,面对服务器宕机危机,盲目重启往往掩盖真实问题,建立标准化的诊断逻辑才是恢复业务运行的关键, 电源与硬件层:物理基础故障排查当服……

    2026年3月28日
    11400
  • 服务器并发请求连接断开是什么原因,如何解决服务器并发连接断开问题

    服务器并发请求连接断开的根本原因在于系统资源耗尽、网络配置缺陷或应用程序逻辑错误,导致服务器在处理高负载时无法维持正常的TCP连接,核心解决方案必须从内核参数调优、架构优化及代码层面同步入手,构建高可用的连接管理机制, 核心诱因分析:连接为何在并发压力下中断当服务器面临高并发流量冲击时,连接断开往往不是单一因素……

    2026年4月6日
    9000
  • 服务器带宽推荐多少合适?大流量服务器带宽怎么选

    服务器带宽的选择直接决定了业务运行的稳定性与用户体验,核心结论在于:带宽配置并非越大越好,而是追求“够用且留有余量”的最高性价比,对于绝大多数企业级应用而言,独享带宽优于共享带宽,按需弹性扩容优于一次性固定投入,在进行服务器带宽推荐时,应基于并发访问量、业务类型(文本/图片/视频)及用户地域分布三大维度进行精准……

    2026年4月4日
    9900
  • 洛阳电信的DNS服务器有哪些,怎么设置?

    洛阳电信的DNS服务器首选地址为202.102.224.68(主)和202.102.227.68(备),这两个地址专用于河南电信区域网络,覆盖洛阳全部宽带用户,上网第一步就是域名解析,DNS服务器就是那个帮你找到网站实际地址的向导,洛阳电信用户如果手动配置了错误的DNS,可能遇到网页加载慢、打不开,甚至被劫持到……

    2026年8月8日
    400
  • oracle11g到底需要启动哪些服务器,启动顺序是什么

    Oracle 11g数据库的正常运行,核心需要启动三类服务器:数据库实例服务、监听器服务和控制台/代理服务,具体到Windows环境,必须启动OracleServiceORCL、OracleOraDb11g_home1TNSListener这两个基础服务,企业管理器(EM)与作业调度服务则按需启用,理解Orac……

    2026年8月8日
    800
  • 防火墙例外应用,究竟在哪些场景下得以运用?

    防火墙例外应用在操作系统的防火墙设置中,用于允许特定程序或端口绕过防火墙规则,确保必要的网络通信不受阻碍,无论是Windows、macOS还是Linux系统,用户都可以在防火墙配置中手动添加例外,以保障合法应用的正常运行,同时维持系统的安全防护,防火墙例外的核心应用场景防火墙例外主要应用于以下场景,以确保网络功……

    2026年2月4日
    13000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注