netstat -tunlp
:显示TCP/UDP端口及进程信息,2. ss -tuln
:更快速的套接字查看工具,3. lsof -i :端口号
:查看指定端口占用情况,4. nmap localhost
:扫描本地开放端口netstat
命令(经典工具,适用多数系统)
安装与基础命令:
sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL netstat -tunlp | grep LISTEN # 查看监听中的端口
参数解析:
-t
:TCP协议-u
:UDP协议-n
:数字形式显示(不解析域名)-l
:仅监听端口-p
:显示进程名/PID(需sudo权限)
输出示例:
tcp6 0 0 :::22 :::* LISTEN 1234/sshd
表示SSH进程(PID 1234)正在监听IPv6的22端口。
ss
命令(替代netstat,更高效)
推荐场景:现代Linux发行版(无需安装)
ss -tulpn # 功能等价于netstat,性能更优
关键参数:
-s
:统计摘要(查看连接状态分布)state established
:过滤已建立连接
示例:ss -tn src :80 # 检查80端口的TCP连接
lsof
命令(查看进程与端口的关联)
安装与使用:
sudo apt install lsof # 安装 sudo lsof -i :22 # 查看22端口的进程
常用语法:
lsof -i tcp:443
:指定协议和端口lsof -i -P -n
:禁用域名/服务名解析(加速输出)
输出解读:sshd 1234 root 3u IPv4 28771 0t0 TCP *:22 (LISTEN)
进程名、PID、用户及端口状态一目了然。
nmap
命令(扫描本地开放端口)
适用场景:深度检测隐藏端口
sudo apt install nmap # 安装 sudo nmap -sT -p- 127.0.0.1 # 扫描本地所有TCP端口
参数说明:
-sT
:TCP全连接扫描-p 1-1000
:指定端口范围-O
:探测操作系统类型
🔍 方法对比与选择建议
工具 | 优势 | 适用场景 |
---|---|---|
netstat |
兼容性强 | 旧系统基础检查 |
ss |
速度快、资源占用低 | 现代系统日常运维 |
lsof |
进程关联信息详细 | 排查端口占用问题 |
nmap |
扫描全面、支持高级探测 | 安全审计与深度检测 |
❗ 注意事项
- 权限要求:查看进程信息需
sudo
或root权限 - 过滤技巧:
- 组合
grep
:ss -tuln | grep 443
- 排除IPv6:
netstat -tunlp | grep -v 'tcp6'
- 组合
- 端口状态解释:
LISTEN
:服务正在监听ESTABLISHED
:活跃连接TIME_WAIT
:连接关闭中
定期检查端口可提升系统安全性,避免未授权服务运行,建议结合防火墙(如
ufw
)管理访问控制。
📚 引用说明:
- 命令手册:
man netstat
,man ss
,man lsof
,man nmap
- 权威指南:《Linux Network Administrator’s Guide》(O’Reilly)
- 协议标准:RFC 793 (TCP), RFC 768 (UDP)
基于Linux核心文档及实践验证,适用于Debian、Ubuntu、CentOS等主流发行版。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/15933.html