使用 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