Page cover

🚧Oryx: análisis de red con eBPF

¿Qué es Oryx?

Oryx es una TUI (Text-based User Interface) escrita en Rust que funciona en Linux y aprovecha la tecnología eBPF (Extended Berkeley Packet Filter) para capturar y mostrar en tiempo real el tráfico de red.

Este software ha sido creada por el usuario Pythops en github: https://github.com/pythops/oryx

Algunas de sus características principales son:

  • Inspección de tráfico en tiempo real con visualización dinámica en modo texto.

  • Estadísticas completas del tráfico, incluyendo gráficos y datos en vivo.

  • Funciones de cortafuegos para crear y gestionar reglas directamente desde la interfaz (mejor que iptables).

  • Explorador de métricas para obtener información detallada de la actividad de red.

  • Búsqueda difusa (fuzzy search) para localizar paquetes o reglas de forma eficiente.

Requisitos e instalación

Al usar la tecnología eBPF para el análisis, este software solo funciona en el kernel de Linux por lo que tiene una serie de requisitos:

  • Sistema Linux con kernel 6.10 o superior.

  • En Debian/Ubuntu, versiones mínimas recomendadas: Debian 13 (Trixie) o Ubuntu 24.04 (Noble).

  • Opcional: instalar fuentes nerdfonts para mejorar la visualización de iconos.

Para su instalación tenemos varias opciones:

  • Binario precompilado: disponible en la página de releases del proyecto en GitHub.

  • En distribuciones Arch-Linux: está en el repositorio extra, versión actual 0.6.1-2 (agosto 2025).

  • Compilación desde código fuente:

    1. Instalar el toolchain nightly de Rust y el componente rust-src mediante rustup.

    2. Instalar bpf-linker (necesario para compilar el código que corre en eBPF).

    3. Ejecutar cargo xtask build --release para generar el binario.

Abajo vemos una pequeña guia.

¿Cómo funciona?

  1. Captura de paquetes con eBPF → Oryx inyecta programas eBPF en el kernel para interceptar paquetes de forma eficiente y segura.

  2. Visualización en TUI → Muestra la información capturada en una interfaz de texto interactiva con secciones para inspección, estadísticas y cortafuegos.

  3. Interacción en tiempo real → Navegación mediante atajos de teclado (j, k, Tab, Space, /, i, etc.), creación, edición y guardado de reglas de firewall.

  4. Exportación de datos → Permite exportar capturas (~/oryx/capture) y reglas de firewall (~/oryx/firewall.json) fácilmente.

Menú de Oryx, sacado de su github

Comparación con otras herramientas

En comparación con otras herramientas de análisis que hemos visto, esta tiene la ventaja de que no solo captura y muestra tráfico como Wireshark o tcpdump, sino que además permite aplicar reglas de firewall y obtener métricas avanzadas directamente en tiempo real gracias a eBPF.

Herramienta
Estilo
Captura de tráfico
Visualización UI
Control de tráfico

Wireshark

GUI

Muy gráfica

No (solo análisis)

tcpdump

CLI

Texto básico

No

termshark

TUI (CLI)

Interfaz en texto

No

Oryx

TUI (CLI)

Sí (via eBPF)

Interactiva + métricas

Sí (firewall, reglas, métricas)


Guia de instalación (no tested)

Vamos primero con la instalación del software:

Verificamos la versión del kernel para asegurarnos que sea 6.10 o superior, sino deberemos actualizarlo:

uname -r

Instalar dependencias necesarias para la instalación:

sudo apt update && sudo apt install -y curl git build-essential pkg-config libssl-dev

Instalar Rust (nightly) y rust-src por que Oryx está escrito en Rust y necesita la versión nightly para compilar:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup install nightly
rustup component add rust-src --toolchain nightly

Instalamos bpf-linker ya que es necesario para compilar el código que se ejecutará dentro del eBPF:

cargo install bpf-linker

Descargar el repositorio de Oryx:

git clone https://github.com/pythops/oryx.git
cd oryx
cargo +nightly xtask build --release

Lo cual generará el binario dentro de target/release/oryx,ahora lo instalamos correctamente:

sudo cp target/release/oryx /usr/local/bin/
sudo oryx

👉 Siempre necesitas sudo porque accede al kernel y a la red.


Uso básico de Oryx

Una vez abierto, verás la interfaz TUI en el terminal. Aquí algunos atajos de teclado útiles:

Tecla
Acción

j / k

Navegar hacia abajo/arriba

Tab

Cambiar de panel

i

Abrir explorador de métricas

/

Búsqueda difusa (paquetes, reglas, etc.)

Space

Seleccionar/Deseleccionar

q

Salir de Oryx

Funciones principales

1. Ver tráfico en tiempo real

Nada más iniciar sudo oryx, ya estarás viendo conexiones y paquetes procesados en vivo.

2. Exportar captura de tráfico

Pulsa la tecla correspondiente (habitualmente e) y se guardará en:

~/oryx/capture

3. Gestionar reglas de firewall

Desde el panel de firewall puedes:

  • Añadir reglas para permitir o bloquear tráfico.

  • Guardar reglas en un archivo JSON en:

~/oryx/firewall.json

4. Explorar métricas

Pulsa i → accederás al explorador de métricas, donde verás datos detallados sobre:

  • Protocolos más usados

  • Consumo de ancho de banda por proceso

  • IPs de origen/destino

Referencias:

Última actualización