当前位置:首页 > Linux > 正文

Linux如何查看开放端口

在Linux中查看本机端口常用命令:,1. 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端口。

Linux如何查看开放端口 第1张


ss 命令(替代netstat,更高效)

推荐场景:现代Linux发行版(无需安装)

ss -tulpn # 功能等价于netstat,性能更优

关键参数

  • -s:统计摘要(查看连接状态分布)
  • state established:过滤已建立连接

    示例

    Linux如何查看开放端口 第2张

    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、用户及端口状态一目了然。

    Linux如何查看开放端口 第3张


nmap 命令(扫描本地开放端口)

适用场景:深度检测隐藏端口

sudo apt install nmap # 安装 sudo nmap -sT -p- 127.0.0.1 # 扫描本地所有TCP端口

参数说明

  • -sT:TCP全连接扫描
  • -p 1-1000:指定端口范围
  • -O:探测操作系统类型


方法对比与选择建议

工具 优势 适用场景
netstat 兼容性强 旧系统基础检查
ss 速度快、资源占用低 现代系统日常运维
lsof 进程关联信息详细 排查端口占用问题
nmap 扫描全面、支持高级探测 安全审计与深度检测


注意事项

  1. 权限要求:查看进程信息需sudo或root权限
  2. 过滤技巧
    • 组合grep:ss -tuln | grep 443
    • 排除IPv6:netstat -tunlp | grep -v 'tcp6'
  3. 端口状态解释
    • 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等主流发行版。

0