Linux 查看端口占用命令
在 Linux 服务器运维中,经常需要查看某个端口是否被占用。例如网站打不开、程序启动失败、端口冲突、防火墙配置异常时,都需要先确认端口监听情况。
本文整理几种常用的 Linux 查看端口占用方法。
一、使用 ss 查看端口
ss 是现在 Linux 系统中比较推荐的网络查看工具,速度快,信息清晰。
查看所有监听端口:
ss -tunlp
参数说明:
-t:显示 TCP
-u:显示 UDP
-n:不解析域名和服务名,直接显示数字端口
-l:只显示监听状态
-p:显示进程信息
查看指定端口,例如 80:
ss -tunlp | grep :80
查看 443 端口:
ss -tunlp | grep :443
输出示例:
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
说明 80 端口正在被 nginx 占用。
二、使用 netstat 查看端口
部分老教程会使用 netstat。
查看所有监听端口:
netstat -tunlp
如果提示没有 netstat,可以安装:
Ubuntu / Debian:
apt install net-tools -y
CentOS / Rocky Linux:
yum install net-tools -y
查看指定端口:
netstat -tunlp | grep :8080
三、使用 lsof 查看端口
lsof 可以查看某个端口被哪个进程占用。
查看 8080 端口:
lsof -i :8080
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 1234 root 20u IPv4 12345 0t0 TCP *:8080 (LISTEN)
说明 8080 端口被 node 进程占用,进程 ID 是 1234。
如果没有 lsof,可以安装:
apt install lsof -y
或:
yum install lsof -y
四、查看端口对应进程详情
拿到 PID 后,可以查看进程详情:
ps -fp 1234
也可以查看完整启动命令:
cat /proc/1234/cmdline
或者:
tr '\0' ' ' < /proc/1234/cmdline
五、查看端口是否对外监听
如果监听地址是:
0.0.0.0:8080
表示所有网卡都监听,外部可能可以访问。
如果是:
127.0.0.1:8080
表示只允许本机访问,外部无法直接访问。
如果是:
[::]:8080
表示 IPv6 监听,有时也可能同时支持 IPv4,具体要看系统配置。
六、测试远程端口是否开放
在本地电脑或另一台服务器上测试:
nc -vz 服务器IP 端口
例如:
nc -vz 1.2.3.4 443
如果显示 succeeded,说明端口可连接。
也可以使用 telnet:
telnet 1.2.3.4 443
七、端口被占用怎么办
如果程序启动失败提示端口被占用,可以先找到进程:
ss -tunlp | grep :8080
然后确认 PID,再决定是否停止。
停止服务推荐优先使用 systemctl,例如:
systemctl stop nginx
如果是普通进程,可以使用:
kill 1234
如果无法停止,再考虑:
kill -9 1234
注意:不要随便 kill 不认识的进程,可能影响正在运行的网站或服务。
八、常见端口说明
21:FTP
22:SSH
25:SMTP
53:DNS
80:HTTP
443:HTTPS
3306:MySQL
5432:PostgreSQL
6379:Redis
8080:常见 Web 应用
8888:常见面板端口
九、排查网站打不开的思路
如果网站打不开,可以按顺序检查:
1. 域名是否解析正确
2. 服务器是否能 ping 通
3. 80/443 端口是否监听
4. 防火墙是否放行端口
5. 云安全组是否放行端口
6. Nginx/Apache 是否正常运行
7. 网站程序是否报错
查看 Nginx 是否监听:
ss -tunlp | grep nginx
查看 Nginx 状态:
systemctl status nginx
总结
Linux 查看端口占用最常用的命令是:
ss -tunlp
查看指定端口:
ss -tunlp | grep :端口
如果要看具体进程,可以配合:
lsof -i :端口
ps -fp PID
掌握这些命令,可以快速判断服务是否启动、端口是否冲突,以及服务器是否正常对外提供服务。








暂无评论内容