Linux 中,可以使用
netstat -tuln
或ss -tuln
Linux系统中,查找端口号是网络管理和开发中常见的任务,以下是几种常用的方法及其详细说明:
使用netstat
命令
netstat
是一个经典的网络统计工具,用于显示网络连接、路由表、接口统计等信息,要查看端口号,可以使用以下命令:
netstat -tuln
-t
:显示TCP端口-u
:显示UDP端口-l
:仅显示监听端口-n
:以数字形式显示地址和端口号,不解析主机名
该命令将列出所有正在监听的TCP和UDP端口及其对应的进程ID(PID),如果需要进一步过滤,可以结合grep
命令,查找特定端口号8080:
netstat -tuln | grep 8080
使用ss
命令
ss
是netstat
的现代替代品,功能更强大且性能更好,基本用法与netstat
类似:
ss -tuln
此命令同样会显示所有监听的TCP和UDP端口。ss
命令还支持更多选项,如-a
显示所有套接字,-p
显示进程信息等。
使用lsof
命令
lsof
(List Open Files)可以列出所有打开的文件,包括网络文件(即套接字),通过lsof
可以找到特定端口对应的进程:
lsof -i :8080
这将显示端口8080上的所有活动连接及其对应的进程信息,如果要查看所有监听端口,可以使用:
lsof -i -n -P
-n
:不解析主机名-P
:不解析端口名
使用nmap
命令
nmap
是一个网络扫描工具,可以用来扫描指定IP地址或网段上的开放端口,扫描本地主机的所有端口:
nmap localhost
或者扫描特定IP地址范围:
nmap 192.168.1.0/24
使用fuser
命令
fuser
可以显示指定端口被哪些进程占用,查看端口8080的使用情况:
fuser -v 8080/tcp
-v
:显示详细信息,包括进程ID和进程名称
使用systemctl
命令
对于系统服务,可以直接查询服务状态来获取其监听的端口,查看Apache服务的端口:
systemctl status httpd
或者使用journalctl
查看日志:
journalctl -u httpd | grep "Listening on"
小编总结对比
命令 | 用途 | 优点 | 缺点 |
---|---|---|---|
netstat |
查看网络连接和端口 | 经典工具,广泛支持 | 部分功能已被废弃,性能一般 |
ss |
替代netstat ,查看网络连接 |
性能更好,功能更强大 | 需要较新的系统支持 |
lsof |
列出所有打开的文件,包括网络套接字 | 详细信息,可过滤特定端口 | 输出较为复杂,需要熟悉参数 |
nmap |
扫描网络中的开放端口 | 强大的扫描能力,适用于安全审计 | 需要安装,可能触发防火墙警报 |
fuser |
显示指定端口被哪些进程占用 | 简单直接,适合快速检查端口占用情况 | 功能相对单一 |
systemctl |
查询系统服务的状态 | 直接查看服务配置和状态,适用于系统服务 | 仅适用于系统服务,不适用于普通应用程序 |
FAQs
Q1: 如何查找某个特定端口被哪个进程占用?
A1: 可以使用lsof
或fuser
命令,查找端口8080:
lsof -i :8080
或者:
fuser -v 8080/tcp
Q2: 如何查看所有监听的端口?
A2: 可以使用netstat
或ss
命令:
netstat -tuln
或者:
小伙伴们,上文介绍linux如何查找端口号的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/11444.html