查看服务器已用端口的方法有多种,以下是一些常用的命令和方法:
端口是计算机网络中的一个通信端点,用于识别运行在计算机上的特定应用程序或进程。端口号范围从0到65535,其中0到1023是知名端口,通常由系统服务使用;1024到49151是注册端口,由应用程序使用;49151到65535是动态或私有端口。
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
示例输出:
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 -P -n | grep LISTEN
-i
:显示网络文件-P
:不将端口号转换为服务名-n
:不将IP地址转换为主机名示例输出:
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www-data 6u IPv4 23456 0t0 TCP *:80 (LISTEN)
使用 netstat
或 ss
命令时,可能需要管理员权限。
解决方法:
sudo netstat -tuln
某些旧版本的系统可能没有 ss
命令。
解决方法:
安装 iproute2
包,通常包含 ss
命令。
sudo apt-get install iproute2 # Debian/Ubuntu
sudo yum install iproute # CentOS/RHEL
如果服务器上运行了很多服务,输出可能会非常长。
解决方法:
结合 grep
使用,过滤特定端口或服务。
netstat -tuln | grep 80
通过以上方法,你可以有效地查看服务器上已使用的端口,并根据需要进行进一步的分析和处理。