在Linux系统中,可以使用多种命令来查看端口及其对应的程序。以下是一些常用的命令及其使用方法:
netstat
命令netstat
是一个用于显示网络状态的工具,可以用来查看端口的使用情况。
基本用法:
netstat -tuln
-t
表示显示TCP连接。-u
表示显示UDP连接。-l
表示仅显示监听套接字。-n
表示以数字形式显示地址和端口号。示例输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:5353 0.0.0.0:*
ss
命令ss
是 netstat
的替代品,性能更好,功能也更强大。
基本用法:
ss -tuln
-t
表示显示TCP连接。-u
表示显示UDP连接。-l
表示仅显示监听套接字。-n
表示以数字形式显示地址和端口号。示例输出:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 128 [::]:80 [::]:*
lsof
命令lsof
是一个列出当前系统打开文件的工具,通过它可以查看端口及其对应的进程。
基本用法:
sudo lsof -i :端口号
-i
后面跟上端口号,表示查看该端口的占用情况。示例输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www-data 6u IPv4 23456 0t0 TCP *:80 (LISTEN)
fuser
命令fuser
可以用来显示使用指定文件或文件系统的进程。
基本用法:
sudo fuser 端口号/tcp
tcp
或 udp
)。示例输出:
80/tcp: 5678
原因: 可能是由于权限不足或命令未安装。 解决方法:
sudo
提升权限。net-tools
包含 netstat
命令:net-tools
包含 netstat
命令:原因: 可能是由于进程已退出但端口未释放,或者使用了 SO_REUSEADDR
选项。
解决方法:
lsof
或 fuser
强制终止占用端口的进程:lsof
或 fuser
强制终止占用端口的进程:通过这些命令和方法,可以有效地查看和管理系统中的端口及其对应的程序。
领取专属 10元无门槛券
手把手带您无忧上云