使用ss、netstat或lsof命令可查看Linux系统中监听端口的网络服务。ss -tuln和netstat -tuln用于列出TCP/UDP监听端口,ss性能更优;lsof -i -P -n | grep LISTEN可查进程详情。推荐优先使用ss,配合-p参数或lsof -i :端口号反查占用进程,结合ps命令进一步分析。若端口被占用,先确认占用进程身份,再决定重启、修改配置或终止进程,生产环境中应谨慎操作以避免影响其他服务。

在Linux系统里,想知道哪个网络服务正在监听哪个端口,其实不复杂,核心就是用几个命令去“问”系统。最常用也最直接的方法就是利用
netstat
ss
lsof
要查看Linux系统上的网络服务监听端口,我通常会从以下几个命令入手,它们各有侧重,但都能解决问题:
首先是
ss
netstat
ss -tuln
这里
-t
-u
-l
-n
接着是
netstat
ss
netstat
netstat -tuln
这个命令的参数和
ss
-t
-u
-l
-n
netstat
net-tools
最后,
lsof
lsof -i -P -n | grep LISTEN
-i
-P
-n
grep LISTEN
这些命令基本上能覆盖我日常工作中查看端口监听状态的绝大部分需求。
这个问题其实挺有意思的,也是我在日常运维中经常思考的一个点。简单来说,
ss
netstat
技术背景差异:
netstat
/proc/net/
/proc/net/tcp
/proc/net/udp
netstat
而
ss
Netlink
Netlink
netstat
/proc
ss
输出内容和功能: 虽然两者的核心功能都是查看网络连接和端口状态,但
ss
netstat
我个人推荐: 在现代Linux系统(例如,大多数发行版最近几年的版本)上,我几乎总是推荐使用
ss
netstat
ss
netstat
ss
这在排查端口冲突或者服务异常时是极其常见的需求。当我知道某个端口被监听,但不知道是哪个程序在用它,或者想确认是不是我预期的服务在用,就需要反查。我通常有两种主要方法:
方法一:使用 ss
netstat
grep
ps
首先,用
ss
netstat
PID/Program name
例如,我想查80端口:
ss -tulnp | grep ":80"
这里我加了
-P
ss
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=1234,fd=6))从这个输出中,我能直接看到
pid=1234
nginx
如果
ss
ss -tuln
ss -p
ss -tulnp | grep ":80"
如果能直接得到PID,那就用
ps
ps aux | grep 1234
替换
1234
ps aux
netstat
-P
netstat -tulnp | grep ":80"
输出通常是
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1234/nginx
1234
nginx
方法二:使用 lsof
lsof
lsof -i :80
这个命令会直接列出所有打开了80端口的进程。输出会包含
COMMAND
PID
USER
FD
TYPE
DEVICE
SIZE/OFF
NODE
NAME
nginx 1234 root 6u IPv4 123456 0t0 TCP *:http (LISTEN)
COMMAND
nginx
PID
1234
我个人更倾向于使用
lsof -i :端口号
grep
ps
lsof
ss -p
netstat -p
端口被占用是运维工作中很常见的问题,尤其是在部署新服务或者重启旧服务时。遇到这种情况,我的排查思路通常是这样:
第一步:确认哪个进程占用了端口 这是最关键的第一步。我通常会用前面提到的命令来确定“罪魁祸首”。
lsof -i :目标端口号 # 或者 ss -tulnp | grep ":目标端口号"
例如,如果我发现80端口被占用了:
lsof -i :80
输出会告诉我进程的PID和名称。
第二步:分析占用进程的身份和目的 一旦知道了是哪个进程占用了端口,下一步就是思考:
第三步:决定如何处理
根据第二步的分析,处理方式有所不同:
如果是我预期的服务:
systemctl stop nginx
systemctl restart 服务名
如果是不相关的服务或配置冲突:
systemctl stop 占用服务的名称
如果是僵尸进程或异常进程:
kill
kill -9 进程PID
kill -9
/var/log/syslog
journalctl -xe
一个经验之谈: 在生产环境中,我通常会倾向于修改我自己的服务端口,而不是去动一个不确定的、可能由其他团队维护的服务。除非我百分之百确定那个占用端口的服务是我的,并且可以安全地停止或修改它。保持谨慎,总是没错的。
以上就是Linux怎么查看网络服务监听端口的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号