Linux端口管理
一、查看已占用端口
1. ss
命令(推荐)
1 |
|
参数解析:
-t
:显示 TCP 端口-u
:显示 UDP 端口-l
:仅显示监听(LISTEN)状态的端口-n
:以数字形式显示端口(不解析服务名称)-p
:显示占用端口的进程信息(需要 root 权限)
例子:
1
2Netid 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))
2. netstat
命令(传统工具)
1 |
|
- 参数解析:
-t
/-u
:TCP/UDP 协议-l
:监听端口-n
:禁用域名解析-p
:显示进程信息
- 注意:新版本 Linux 中
netstat
可能被弃用,建议优先使用ss
。
3. lsof
命令(查看进程与端口的关联)
1 |
|
- 输出关键列:
COMMAND
:进程名称PID
:进程 IDUSER
:运行用户NODE
:协议类型NAME
:地址和端口
二、检查端口开放状态
1. 本地端口是否开放
1 |
|
输出示例:
1
2PORT STATE SERVICE
22/tcp open ssh
2. 远程主机端口扫描
1 |
|
三、过滤特定端口信息
1. 使用 grep
过滤
1 |
|
2. 查看 TCP 连接状态
1 |
|
四、端口与服务的映射关系
查看 /etc/services
文件
1 |
|
输出:
1
http 80/tcp www # WorldWideWeb HTTP
五、命令对比速查表
命令 | 特点 | 推荐场景 |
---|---|---|
ss |
速度快,信息详细 | 日常端口检查 |
netstat |
传统工具,兼容性好 | 旧系统兼容 |
lsof |
显示进程与文件的关联 | 定位具体进程 |
nmap |
专业级端口扫描 | 安全检测/网络诊断 |
六、常见问题排查
问题:端口显示 LISTEN
但无法访问
检查防火墙:
1
2ufw status # Ubuntu 防火墙状态
firewall-cmd --list-all # CentOS 防火墙规则验证 SELinux 限制:
1
ausearch -m avc -ts recent # 查看 SELinux 拒绝日志
Linux端口管理
https://bote798.top/2025/05/20/Linux端口管理/