TUI for sniffing network traffic using eBPF

## πŸ“Έ Demo ![](https://github.com/user-attachments/assets/e64dc4b6-9143-4b05-b4a8-b5d0455e5d5e) ## ✨ Features - Real-time traffic inspection and visualization. - Comprehensive Traffic Statistics. - Firewall functionalities. - Fuzzy search. ## πŸ’‘ Prerequisites A Linux based OS. > [!NOTE] > You might need to install [nerdfonts](https://www.nerdfonts.com/) for the icons to be displayed correctly. ## πŸš€ Installation ### πŸ“₯ Binary release You can download the pre-built binaries from the release page [release page](https://github.com/pythops/oryx/releases) ### 🐧Arch Linux You can install `oryx` from the [AUR](https://aur.archlinux.org/packages/oryx) with using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). ```bash paru -S oryx ``` ### βš’οΈ Build from source To build `oryx`: #### 1. Install Rust nightly toolchain ``` rustup toolchain install nightly --component rust-src ``` #### 2. Install [bpf-linker](https://github.com/aya-rs/bpf-linker) ##### For `x86_64` Simply run the following command: ``` cargo install bpf-linker ``` ##### For `arm64` For Debian based distributions, make sure you have the following dependencies installed: - `llvm-19` - `llvm-19-dev` - `libpolly-19-dev` then run the following command: ``` cargo install bpf-linker --no-default-features ``` > Check [bpf-linker Installation section](https://github.com/aya-rs/bpf-linker?tab=readme-ov-file#installation) for more infos. #### 3. Build ``` cargo xtask build --release ``` This will produce an executable file at `target/release/oryx` that you can copy to a directory in your `$PATH`. ## πŸͺ„ Usage Run the following command to start `oryx`: ``` sudo oryx ``` ## ⌨️ Key Bindings `?`: Show help. `Tab` or `Shift + Tab`: Switch between different sections. `j` or `Down` : Scroll down. `k` or `Up`: Scroll up. `esc`: Dismiss the different pop-ups and modes. `q` or `ctrl + c`: Quit the app. `Space`: Select/Deselect interface or filter. `f`: Update the applied filters. `ctrl + r`: Reset the app. `ctrl + s`: Export the capture to `~/oryx/capture` file. #### Inspection Section `i`: Show more infos about the selected packet. `/`: Start fuzzy search. #### Firewall Section `Space`: Toggle firewall rules status. `n` : Add new firewall rule. `e`: Edit a firewall rule. `s`: Save firewall rules to `~/oryx/firewall.json` `Enter`: Create or Save a firewall rule. ## βš–οΈ License GPLv3