查看 TCP 端口占用情况#
1. 使用 netstat 命令
(适用于较旧系统,需安装 net-tools 包)
• 参数解释:
• -t:仅显示 TCP 端口
• -l:仅显示监听中的端口
• -n:以数字形式显示地址和端口(不解析主机名或服务名)
• -p:显示占用端口的进程信息(需要 root 权限)
示例输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp6 0 0 :::80 :::* LISTEN 5678/nginx
2. 使用 ss 命令
(推荐,现代替代工具,更高效)
• 参数解释:
• -t:仅显示 TCP 端口
• -l:仅显示监听中的端口
• -n:以数字形式显示地址和端口
• -p:显示进程信息(需要 root 权限)
示例输出:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))
LISTEN 0 128 :::80 :::* users:(("nginx",pid=5678,fd=6))
3. 使用 lsof 命令
(需安装 lsof 工具)
• 参数解释:
• -i TCP:仅显示 TCP 协议相关连接
• -s TCP:LISTEN:仅显示监听状态的端口
示例输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www 6u IPv6 67890 0t0 TCP *:80 (LISTEN)
4. 查找特定端口的占用
例如查找 80 端口:
注意事项:
- 权限问题:查看进程信息(
-p参数)通常需要sudo或 root 权限。 -
工具安装: • 若命令不存在,可安装对应包: