linux中查看那些端口正在被使用
在Linux中想要查看当前当前服务有哪些端口正在使用
方法 1:使用 netstat 命令
sudo netstat -tunlp
参数解释:-t:显示 TCP 端口-u:显示 UDP 端口-n:以数字形式显示地址和端口(不解析域名)-l:仅显示监听(LISTEN)状态的端口-p:显示占用端口的进程信息(需要 sudo 权限)
方法 2:使用 ss 命令(推荐,更高效)
sudo ss -tulnp
参数解释:-t:TCP 端口-u:UDP 端口-l:监听状态的端口-n:数字形式显示-p:显示进程信息(需要 sudo)
方法 3:使用 lsof命令(还可查看占用端口的进程id)
sudo lsof -i -P -n | grep LISTEN-i:显示网络连接-P:禁止端口到服务名的转换(直接显示数字端口)-n:禁止 IP 到主机名的转换(直接显示 IP)grep LISTEN:过滤出正在监听的端口
查看PID(进程标识符)
sudo lsof -i:9022COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 991 root 3u IPv4 20190 0t0 TCP *:9022 (LISTEN)
sshd 991 root 4u IPv6 20192 0t0 TCP *:9022 (LISTEN)
ssh 234017 gobills 3u IPv4 2220087 0t0 TCP gobills:38956->192.168.3.115:9022 (ESTABLISHED)
ssh 234066 gobills 3u IPv4 2215283 0t0 TCP gobills:52856->192.168.3.229:9022 (ESTABLISHED)
ssh 315450 gobills 3u IPv4 2950676 0t0 TCP gobills:54396->192.168.3.106:9022 (ESTABLISHED)
sshd 318743 root 4u IPv4 2983132 0t0 TCP gobills:9022->192.168.3.6:51318 (ESTABLISHED)
sshd 318841 gobills 4u IPv4 2983132 0t0 TCP gobills:9022->192.168.3.6:51318 (ESTABLISHED)
sshd 323637 root 4u IPv4 3015652 0t0 TCP gobills:9022->192.168.3.6:55362 (ESTABLISHED)
sshd 323734 gobills 4u IPv4 3015652 0t0 TCP gobills:9022->192.168.3.6:55362 (ESTABLISHED)
如果有防火墙(如 ufw 或 firewalld),需确保已放行相关端口。