找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4098

积分

0

好友

536

主题
发表于 9 小时前 | 查看: 6| 回复: 0

Oryx 是一款基于 eBPF 的 Linux 终端交互式(TUI)实时网络流量嗅探分析工具,使用 Rust + Aya eBPF 框架开发,开源协议 GPLv3。
GitHub:https://github.com/pythops/oryx

一、工具概述

1. 核心原理(eBPF 优势)

传统抓包工具 tcpdump/wireshark 基于 libpcap,工作在用户态,全量拷贝数据包,高并发下 CPU 开销巨大;Oryx 依靠内核 eBPF 钩子(tc/tracepoint)在内核态完成流量过滤、元数据提取,仅把连接关键信息上报用户态:

  • 极低性能损耗,生产服务器长期监控无压力
  • 自动关联连接对应 PID、进程名,无需额外 lsof/ss 排查
  • 原生支持 IPv4/IPv6、TCP/UDP/ICMP
  • 无需加载内核模块,安全无侵入

2. 核心功能特性

  1. 全终端可视化 TUI,SSH 远程服务器直接使用,无需图形界面
  2. 实时展示五元组、源/目的端口、协议、进出方向、网卡、PID、进程
  3. 多维度过滤器:网卡、传输层协议、入/出流量、IP 版本
  4. 内置模糊搜索快速定位 IP/端口/PID
  5. 流量统计面板:带宽、包量、连接数指标
  6. 简易防火墙规则管理(添加/启用/保存 iptables/nftables 规则)
  7. 捕获数据导出保存,支持事后复盘
  8. 告警面板,识别异常高频连接

3. 适用场景

  • 运维:线上服务器远程排查 网络卡顿、连接泄露
  • 开发:调试应用网络请求、定位端口占用
  • 安全:快速发现外联恶意IP、异常外联进程、扫描行为
  • 学习:低开销 eBPF 网络观测实践

4. 硬性环境要求

  • Linux 内核 ≥ 5.8(完整支持 BPF tracepoint/tc)
  • 架构:x86_64 / aarch64(ARM64)
  • 运行必须 root/sudo 权限(加载 eBPF 程序)

二、三种安装部署方案(由简到繁)

方案1:预编译二进制(推荐,最快)

适合 Ubuntu24.04、Debian13、CentOS Stream、Rocky Linux

x86_64

# 下载最新发布包
wget https://github.com/pythops/oryx/releases/latest/download/oryx-x86_64-unknown-linux-musl.tar.gz
# 解压
tar -zxvf oryx-x86_64-unknown-linux-musl.tar.gz
# 全局安装到系统PATH
sudo install -m755 oryx /usr/local/bin/
# 验证
oryx --help

ARM64(aarch64)

wget https://github.com/pythops/oryx/releases/latest/download/oryx-aarch64-unknown-linux-musl.tar.gz
tar -zxvf oryx-aarch64-unknown-linux-musl.tar.gz
sudo install -m755 oryx /usr/local/bin/

方案2:Arch Linux AUR 一键安装

# paru/yay 二选一
paru -S oryx
# 或
yay -S oryx

方案3:源码编译安装(全发行版通用)

步骤1:安装系统底层依赖

Debian/Ubuntu

sudo apt update
# LLVM19 为编译bpf-linker必需
sudo apt install llvm-19 llvm-19-dev libpolly-19-dev git build-essential

RHEL/CentOS Stream

sudo dnf install llvm19 llvm19-devel git gcc

步骤2:安装 Rust Nightly 工具链

# 一键安装rustup
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 加载环境变量
source "$HOME/.cargo/env"
# 安装nightly + 源码组件
rustup toolchain install nightly --component rust-src
# 设置默认nightly(编译必需)
rustup default nightly

步骤3:安装 bpf-linker(eBPF 链接器)

# x86_64 直接执行
cargo install bpf-linker

# ARM64 带参数
cargo install bpf-linker --no-default-features

步骤4:拉取源码编译

git clone https://github.com/pythops/oryx.git
cd oryx
# 生产模式编译
cargo xtask build --release
# 二进制输出路径 target/release/oryx
# 全局部署
sudo cp target/release/oryx /usr/local/bin/
# 验证
oryx --version

三、基础运行与命令行参数

1. 启动

# 必须sudo
sudo oryx
# 查看帮助参数
oryx --help

2. 可选启动参数

# 仅监控指定网卡 eth0
sudo oryx --interface eth0
# 后台导出抓包文件(不启动TUI)
sudo oryx --capture-output /tmp/traffic.log
# 自定义日志级别
sudo oryx --log-level debug

四、TUI 界面分区与快捷键(核心操作)

界面分为 6 大标签页,Tab / Shift+Tab 切换:

  1. Filters:全局过滤(网卡、TCP/UDP/ICMP、入/出、IPv4/6)
  2. Inspection:核心连接列表(五元组、PID、进程、包数)
  3. Stats:流量带宽统计面板
  4. Metrics:连接/协议指标图表
  5. Alert:异常流量告警
  6. Firewall:防火墙规则管理

全局快捷键

按键 功能
? 打开完整快捷键帮助
Tab / Shift+Tab 切换顶部标签页
j / ↓ 列表向下滚动
k / ↑ 列表向上滚动
Esc 关闭弹窗/取消输入
q / Ctrl+C 退出程序
Ctrl+R 重置所有过滤与数据
Space 勾选/取消过滤项、网卡
f 应用当前设置的过滤规则
Ctrl+S 导出捕获流量至 ~/oryx/capture

Inspection(连接列表)专用快捷键

  • /:模糊搜索(输入IP/端口/PID快速过滤)
  • i:查看选中连接完整详情(进程路径、包统计、时间戳)

Firewall 防火墙面板快捷键

  • n:新建防火墙规则
  • e:编辑选中规则
  • s:保存规则到 ~/oryx/firewall.json
  • Enter:确认创建/修改规则

五、典型实战操作流程

  1. 启动监控
sudo oryx
  1. 过滤仅监控 eth0 网卡
    切到 Filters,选中 eth0,按 Space,再按 f 生效过滤。

  2. 只看TCP出站流量
    Filters 取消 UDP/ICMP,Direction 只勾选 Egress,f 刷新。

  3. 搜索 PID 1234 进程所有连接
    切 Inspection,按 /,输入 1234 回车筛选。

  4. 查看可疑外联进程详情
    上下键选中连接,按 i 弹窗展示完整进程信息。

  5. 导出流量日志留存分析
    任意界面按 Ctrl+S,文件保存在家目录 oryx 文件夹。

六、常见问题与排错

  1. 报错 eBPF load failed / permission denied

    • 必须加 sudo 运行,普通用户无加载 eBPF 权限
    • 内核版本低于5.8,升级内核后重试
  2. 看不到 PID/进程名
    内核未开启 BPF tracepoint,更新内核至5.10+最佳。

  3. 编译时报 bpf-linker 缺失、LLVM 版本过低
    安装 llvm-19,重新执行 cargo install bpf-linker

  4. 界面乱码、图标缺失
    终端安装 Nerd Fonts 等兼容字体。

  5. 抓不到任何流量
    Filters 面板确认至少勾选一张网卡、入/出流量,按 f 应用过滤。

七、与同类工具对比

工具 底层技术 界面 进程PID关联 性能开销
Oryx eBPF TUI终端 原生自动匹配 极低
tcpdump libpcap CLI 需手动 ss/lsof 高(大包场景)
termshark libpcap TUI 不支持
bpftool eBPF 纯CLI 无可视化 低,操作繁琐
wireshark libpcap GUI 极高

References

[1] https://github.com/pythops/oryx




上一篇:不听劝的阶跃闯入手机战场:WAIC 2026 见证人机共生 Agent 新物种
下一篇:Logback vs Log4j2 性能实测:吞吐量差一倍,生产环境你选谁?
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-7-19 14:33 , Processed in 0.660712 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表