Shell 是操作系统中用于与操作系统内核进行交互的命令行界面。在 Unix 和类 Unix 系统(如 Linux)中,可以使用 Shell 命令来查看当前正在使用的端口。
端口:在计算机网络中,端口是操作系统用来区分不同应用程序或服务的逻辑标识符。端口号范围从 0 到 65535,其中 0 到 1023 是知名端口,通常由系统服务使用。
Shell 命令:Shell 命令是在命令行界面中输入的指令,用于执行各种任务,如文件管理、进程控制、网络配置等。
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:123 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 :::*
UNCONN 0 0 0.0.0.0:123 0.0.0.0:*
lsof
命令lsof
(List Open Files)可以列出当前系统打开的所有文件,包括网络端口。
示例命令:
lsof -i -P -n | grep LISTEN
-i
:显示网络文件。-P
:不将端口号转换为服务名。-n
:不将 IP 地址转换为主机名。输出示例:
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 2345 www-data 8u IPv4 23467 0t0 TCP *:80 (LISTEN)
原因:可能是权限不足,普通用户无法查看所有端口信息。
解决方法:
sudo netstat -tuln
或
sudo ss -tuln
原因:某些系统可能未安装 netstat
或 ss
工具。
解决方法: 在 Debian/Ubuntu 系统上安装:
sudo apt-get install net-tools
或
sudo apt-get install iproute2
在 CentOS/RHEL 系统上安装:
sudo yum install net-tools
或
sudo yum install iproute
通过这些命令和方法,你可以有效地查看和管理系统中的端口信息。
领取专属 10元无门槛券
手把手带您无忧上云