点击蓝字关注我们

Oryx 是一款基于 eBPF 的 Linux 终端交互式(TUI)实时网络流量嗅探分析工具,使用 Rust + Aya eBPF 框架开发,开源协议 GPLv3。
GitHub:https://github.com/pythops/oryx。[1]
传统抓包工具 tcpdump/wireshark 基于 libpcap,工作在用户态,全量拷贝数据包,高并发下 CPU 开销巨大; Oryx 依靠内核 eBPF 钩子(tc/tracepoint)在内核态完成流量过滤、元数据提取,仅把连接关键信息上报用户态:
•极低性能损耗,生产服务器长期监控无压力•自动关联连接对应 PID、进程名,无需额外 lsof/ss 排查•原生支持 IPv4/IPv6、TCP/UDP/ICMP•无需加载内核模块,安全无侵入
1.全终端可视化 TUI,SSH 远程服务器直接使用,无需图形界面2.实时展示五元组、源/目的端口、协议、进出方向、网卡、PID、进程3.多维度过滤器:网卡、传输层协议、入/出流量、IP 版本4.内置模糊搜索快速定位 IP/端口/PID5.流量统计面板:带宽、包量、连接数指标6.简易防火墙规则管理(添加/启用/保存 iptables/nftables 规则)7.捕获数据导出保存,支持事后复盘8.告警面板,识别异常高频连接
•运维:线上服务器远程排查网络卡顿、连接泄露•开发:调试应用网络请求、定位端口占用•安全:快速发现外联恶意IP、异常外联进程、扫描行为•学习:低开销 eBPF 网络观测实践
•Linux 内核 ≥ 5.8(完整支持 BPF tracepoint/tc)•架构:x86_64 / aarch64(ARM64)•运行必须 root/sudo 权限(加载 eBPF 程序)
适合 Ubuntu24.04、Debian13、CentOS Stream、Rocky Linux
# 下载最新发布包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# 全局安装到系统PATHsudo install -m755 oryx /usr/local/bin/# 验证oryx --help
wget https://github.com/pythops/oryx/releases/latest/download/oryx-aarch64-unknown-linux-musl.tar.gztar -zxvf oryx-aarch64-unknown-linux-musl.tar.gzsudo install -m755 oryx /usr/local/bin/
# paru/yay 二选一paru -S oryx# 或yay -S oryx
sudo apt update# LLVM19 为编译bpf-linker必需sudo apt install llvm-19 llvm-19-dev libpolly-19-dev git build-essential
sudo dnf install llvm19 llvm19-devel git gcc# 一键安装rustupcurl --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
# x86_64 直接执行cargo install bpf-linker# ARM64 带参数cargo install bpf-linker --no-default-features
git clone https://github.com/pythops/oryx.gitcd oryx# 生产模式编译cargo xtask build --release# 二进制输出路径 target/release/oryx# 全局部署sudo cp target/release/oryx /usr/local/bin/# 验证oryx --version
# 必须sudosudo oryx# 查看帮助参数oryx --help
# 仅监控指定网卡 eth0sudo oryx --interface eth0# 后台导出抓包文件(不启动TUI)sudo oryx --capture-output /tmp/traffic.log# 自定义日志级别sudo oryx --log-level debug
界面分为 5 大标签页,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 |
•/:模糊搜索(输入IP/端口/PID快速过滤)•i:查看选中连接完整详情(进程路径、包统计、时间戳)
•n:新建防火墙规则•e:编辑选中规则•s:保存规则到 ~/oryx/firewall.json•Enter:确认创建/修改规则
1.启动监控
sudo oryx2.过滤仅监控 eth0 网卡
切到 Filters,选中 eth0,按 Space,再按 f 生效过滤
3.只看TCP出站流量
Filters 取消 UDP/ICMP,Direction 只勾选 Egress,f 刷新
4.搜索 PID 1234 进程所有连接
切 Inspection,按 /,输入 1234 回车筛选
5.查看可疑外联进程详情
上下键选中连接,按 i 弹窗展示完整进程信息
6.导出流量日志留存分析
任意界面按 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 应用过滤
[1]: https://github.com/pythops/oryx。
END
求点赞

求分享

求喜欢


点击上图跳转小程序,访问历史记录
