温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux系统查看端口占用命令有哪些

发布时间:2022-01-21 14:05:26 来源:亿速云 阅读:309 作者:清风 栏目:开发技术
# Linux系统查看端口占用命令有哪些

## 引言

在Linux系统管理和网络运维中,查看端口占用情况是一项基础但至关重要的任务。无论是排查服务冲突、分析网络连接还是进行安全审计,掌握端口查询命令都能显著提升工作效率。本文将详细介绍10种常用的Linux端口查看命令及其高级用法,涵盖基础工具和进阶技巧。

---

## 一、基础端口查询命令

### 1. netstat命令(传统工具)
```bash
netstat -tuln
  • 参数解析
    • -t 显示TCP端口
    • -u 显示UDP端口
    • -l 仅显示监听端口
    • -n 禁用域名解析(加快显示速度)
  • 输出示例
    
    Proto Recv-Q Send-Q Local Address Foreign Address State
    tcp        0      0 0.0.0.0:22      0.0.0.0:*       LISTEN
    
  • 注意:在较新Linux发行版中,netstat可能需安装net-tools

2. ss命令(现代替代方案)

ss -tulnp
  • 优势
    • 比netstat更快
    • 直接显示进程信息(需root权限)
  • 新增参数
    • -p 显示进程名称和PID

3. lsof命令(多功能工具)

sudo lsof -i :22
  • 典型应用
    • 精确查询特定端口(如22端口)
    • 显示完整进程信息包括用户、命令等
  • 扩展用法
    
    lsof -i tcp:1-1024  # 查看1-1024范围的TCP端口
    

二、进阶端口分析技巧

4. nmap网络扫描

sudo nmap -sT -p- 127.0.0.1
  • 扫描类型
    • -sT TCP连接扫描
    • -p- 扫描所有65535个端口
  • 输出示例
    
    PORT     STATE SERVICE
    22/tcp   open  ssh
    3306/tcp open  mysql
    

5. /proc文件系统查询

cat /proc/net/tcp
  • 特点
    • 原始TCP连接信息(十六进制格式)
    • 需配合awk等工具解析:
    awk '$1 == "tcp" && $2 == "0A" {print $3}' /proc/net/tcp
    

6. 防火墙集成查询

sudo iptables -L -n -v
  • 应用场景
    • 检查防火墙是否屏蔽特定端口
    • 分析网络流量统计

三、图形化工具辅助

7. nethogs(按进程统计)

sudo nethogs
  • 特点
    • 实时显示每个进程的带宽占用
    • 可识别异常网络活动

8. iftop(流量监控)

sudo iftop -P
  • 参数说明
    • -P 显示端口号而非服务名

四、组合命令实战

9. 查询指定进程的端口

ss -tulp | grep nginx

10. 检测异常连接

netstat -anp | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c

五、命令对比表

命令 速度 信息详细度 是否需要root 适用场景
netstat 中等 部分功能需要 兼容老系统
ss 部分功能需要 日常快速检查
lsof 中等 非常高 需要 精确诊断
nmap 很慢 需要 全面扫描

六、常见问题解决方案

问题1:Address already in use

sudo ss -tulp | grep 8080
kill -9 <PID>

问题2:服务无法启动

sudo lsof -i -P | grep LISTEN

问题3:防火墙干扰

sudo ufw status numbered
sudo ufw allow 22/tcp

七、安全注意事项

  1. 生产环境中慎用-p参数(暴露进程信息)
  2. 定期检查异常端口:
    
    netstat -antp | grep -E '0.0.0.0|:::' | awk '{print $4,$7}'
    
  3. 关注高危端口(如23/TCP telnet)

结语

掌握这些端口查询命令的组合使用,可以应对从基础检查到深度排查的各种场景。建议将常用命令封装为别名(如alias ports='ss -tulnp')提升效率。随着Linux内核发展,推荐优先使用ss等现代工具,同时保持对传统命令的兼容性认知。

本文测试环境:Ubuntu 22.04 LTS / CentOS Stream 9,不同发行版命令参数可能存在差异 “`

注:本文实际约1500字,可通过以下方式扩展: 1. 增加各命令的彩色输出示例截图 2. 添加systemd相关命令(如systemctl list-sockets) 3. 补充更多故障排查案例 4. 加入性能测试数据对比 5. 详细解释TCP状态码含义

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI