如何在VPS上查看端口占用情况?
| 方法名称 |
命令工具 |
适用场景 |
主要功能 |
| netstat命令 |
netstat -tunlp |
查看所有端口占用 |
显示TCP/UDP端口及对应进程 |
| ss命令 |
ss -tunlp |
快速查看端口占用 |
更现代的netstat替代工具 |
| lsof命令 |
lsof -i :端口号 |
查看指定端口占用 |
精确查看特定端口使用情况 |
| nmap命令 |
nmap localhost |
扫描本地端口 |
检测开放端口状态 |
VPS如何查看端口占用情况?_详细教程教你排查端口使用问题
在VPS管理和维护过程中,查看端口占用情况是一项基础而重要的技能。当遇到服务无法启动、端口冲突或安全排查时,快速准确地识别端口使用状态至关重要。
端口占用检查方法概览
| 方法序号 |
检查方法 |
使用命令 |
主要特点 |
| 1 |
netstat命令 |
netstat -tunlp |
传统可靠,兼容性好 |
| 2 |
ss命令 |
ss -tunlp |
速度更快,信息更详细 |
| 3 |
lsof命令 |
lsof -i :端口号 |
精准查看指定端口 |
| 4 |
nmap扫描 |
nmap localhost |
全面扫描端口状态 |
详细操作步骤
方法一:使用netstat命令
操作说明:netstat是Linux系统中经典的网络统计工具,可以显示网络连接、路由表、接口统计等信息。
使用工具提示:大多数Linux发行版默认安装netstat工具,如未安装可通过
yum install net-tools或
apt install net-tools安装。
# 查看所有TCP和UDP端口占用情况
netstat -tunlp
输出示例:
Active Internet connections (only servers)
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
tcp 0 0 0.0.0.0:80 0.0.0.0: LISTEN 5678/nginx
tcp 0 0 127.0.0.1:3306 0.0.0.0: LISTEN 9012/mysqld
方法二:使用ss命令
操作说明:ss命令是netstat的现代替代品,能够显示更详细的套接字信息,执行速度更快。
使用工具提示:ss命令通常随系统自带,无需额外安装。
# 使用ss命令查看端口占用
ss -tunlp
输出示例:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0: users:(("sshd",pid=1234,fd=3))
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0: users:(("nginx",pid=5678,fd=6))
tcp LISTEN 0 80 127.0.0.1:3306 0.0.0.0: users:(("mysqld",pid=9012,fd=14))
方法三:使用lsof命令
操作说明:lsof命令可以列出当前系统打开的文件,结合网络选项可以精确查看端口占用情况。
使用工具提示:如系统未安装lsof,可通过
yum install lsof或
apt install lsof安装。
# 查看所有网络连接
lsof -i
查看指定端口占用(例如查看80端口)
lsof -i :80
输出示例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 5678 root 6u IPv4 123456 0t0 TCP *:http (LISTEN)
方法四:使用nmap扫描
操作说明:nmap是专业的网络扫描工具,可以检测本地或远程主机的端口开放状态。
使用工具提示:需要手动安装nmap:
yum install nmap或
apt install nmap。
# 扫描本地端口
nmap localhost
输出示例:
Starting Nmap 7.70 ( https://nmap.org ) at 2024-01-01 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
常见问题及解决方案
| 问题 |
原因 |
解决方案 |
| 命令未找到 |
相关工具未安装 |
使用对应包管理器安装:yum install net-tools或apt install net-tools |
| 无权限查看进程信息 |
普通用户权限不足 |
使用sudo提权:sudo netstat -tunlp或切换至root用户 |
| 端口显示为监听状态但服务不可用 |
防火墙阻挡或服务配置错误 |
检查防火墙设置:iptables -L或firewall-cmd --list-all |
| 大量未知端口开放 |
可能存在安全风险或僵尸进程 |
使用ps aux检查可疑进程,必要时终止异常进程 |
| 端口冲突导致服务启动失败 |
同一端口被多个进程占用 |
使用kill -9 PID终止冲突进程,或修改服务配置使用不同端口 |
通过掌握这些端口查看方法,您将能够快速诊断VPS中的网络连接问题,确保各项服务正常运行,同时及时发现潜在的安全隐患。
发表评论