为什么需要查看开放端口?
开放端口是设备与外界通信的通道,定期检查可:
- 排查安全隐患:关闭非必要端口,降低黑客入侵风险
- 解决网络冲突:检测端口占用导致的程序无法启动
- 监控服务状态:确保Web服务(80/443)、数据库(3306)等关键端口正常运行
各操作系统查看命令(附详细解释)
▶ Windows 系统
netstat -ano | findstr "LISTENING"
- 参数解析:
-a
:显示所有连接和监听端口-n
:以数字形式显示地址和端口(不解析域名)-o
:显示占用端口的进程ID(PID)| findstr "LISTENING"
:过滤处于监听状态的端口
- 结果示例:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1234
→ 端口80被PID为1234的进程占用
▶ Linux/macOS 系统
sudo ss -tulnp | grep LISTEN
- 推荐使用
ss
命令(比传统netstat更快更准确) - 参数解析:
-t
:TCP协议-u
:UDP协议-l
:仅显示监听端口-n
:不解析服务名称-p
:显示进程信息
- 结果示例:
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=456,fd=3))
→ 端口22(SSH服务)被sshd进程占用
进阶操作技巧
定位进程详情
- Windows:
tasklist | findstr "1234" # 替换为实际PID
- Linux/macOS:
ps -p 456 -f # 替换为实际PID
按端口号搜索
# Windows示例 netstat -ano | findstr ":80"
检测外部可访问端口
使用nmap
扫描公网IP(需独立安装):
nmap -sT -p 1-1000 your-public-ip
→ 检测1-1000端口的对外开放情况
安全注意事项
- 高危端口警示:
- 避免无防护开放:21(FTP)、22(SSH弱密码)、135-139/445(SMB)、3389(RDP)
- 数据库端口:3306(MySQL)、5432(PostgreSQL) 需配置访问白名单
- 最小化开放原则:非必要服务端口应立即关闭
- 企业环境操作:修改端口前需通知IT部门,避免影响业务系统
图形化工具推荐(适合新手)
工具名称 | 适用系统 | 功能亮点 |
---|---|---|
TCPView | Windows | 实时监控端口状态及进程 |
Cockpit | Linux | Web可视化管理(端口+服务) |
LanScan | macOS | 本地网络端口扫描 |
引用说明:本文命令参考微软官方文档、Linux man手册及Nmap网络安全指南,技术参数经CentOS 7/Windows 11/Ubuntu 22.04多平台实测验证,内容符合RFC 793(TCP)标准,安全建议依据CIS安全基准及OWASP Top 10最佳实践。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4570.html