使用 netstat 命令(经典工具)
功能:查看所有活动的网络连接、监听端口及路由表。
安装(部分系统需手动安装):
sudo apt install net-tools # Debian/Ubuntu sudo yum install net-tools # CentOS/RHEL
常用参数组合:
sudo netstat -tuln
-t:显示TCP端口-u:显示UDP端口-l:仅列出监听端口-n:以数字形式显示(不解析域名)-p:显示进程名(需sudo权限)
输出示例:
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
适用场景:快速检查本地服务监听状态,定位端口冲突。
使用 ss 命令(netstat 的现代替代)
优势:执行速度更快,语法更简洁(推荐优先使用)。
基础命令:
sudo ss -tuln
参数同 netstat(-t/-u/-l/-n)。
扩展用法:
- 查看占用某端口的进程:
sudo ss -ltnp 'sport = :80'
- 显示所有已建立连接:
ss -t state established
使用 lsof 命令(基于进程的端口查看)
功能:列出被进程打开的文件(包括网络套接字)。
安装:sudo apt install lsof 或 sudo yum install lsof
查看监听端口:
sudo lsof -i -P -n | grep LISTEN
-i:显示网络连接-P:禁用端口别名(显示数字端口)-n:禁用域名解析
查看指定端口(如80):sudo lsof -i :80
输出示例:
nginx 5678 root 9u IPv6 12345 0t0 TCP *:80 (LISTEN)适用场景:精准定位端口对应的进程及程序路径。
使用 nmap 扫描本地端口(安全检测)
功能:主动扫描开放端口,支持协议探测。
安装:sudo apt install nmap 或 sudo yum install nmap
扫描本机:
sudo nmap -sT -p- 127.0.0.1
-sT:TCP连接扫描-p-:扫描所有端口(1-65535)- 指定端口范围:
-p 1-1000
输出示例:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql
注意:扫描公网IP需谨慎,避免触发安全机制。
查看服务配置文件
某些服务通过配置文件固定端口:
- SSH:
/etc/ssh/sshd_config(Port 22) - Nginx/Apache:
/etc/nginx/nginx.conf或/etc/apache2/ports.conf - 防火墙:
sudo ufw status(Ubuntu)或firewall-cmd --list-ports(CentOS)
端口状态诊断技巧
- 权限问题:
- 查看1024以下端口需
sudo(如HTTP 80、SSH 22)。
- 查看1024以下端口需
- 端口无监听?
- 检查服务是否启动:
systemctl status nginx - 防火墙是否放行:
sudo iptables -L -n
- 检查服务是否启动:
- 连接失败?
- 使用
telnet测试连通性:telnet 目标IP 端口 - 或
nc -zv 目标IP 端口
- 使用
总结建议
| 场景 | 推荐命令 | 优势 |
|---|---|---|
| 快速检查监听端口 | ss -tuln |
速度快,无需安装 |
| 定位端口所属进程 | sudo lsof -i :端口 |
显示进程详情 |
| 全面扫描开放端口 | sudo nmap 127.0.0.1 |
支持协议探测 |
| 兼容旧系统 | netstat -tuln |
广泛预装 |
安全提示:
- 关闭不必要的端口以降低攻击面。
- 使用
fail2ban或防火墙(如ufw)保护敏感服务。- 定期审计端口:
sudo ss -tuln > port_audit.log。
引用说明:
netstat、ss、lsof命令参考:Linux Manual Pages (man netstat/man ss/man lsof)- Nmap官方文档:https://nmap.org/book/man.html
- Linux网络管理指南:Red Hat Enterprise Linux Networking Guide
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7884.html