# TUI for sniffing network traffic using eBPF on Linux


## TUI for sniffing network traffic using eBPF

## 📸 Demo

[![](https://private-user-images.githubusercontent.com/57548585/363508711-437dcfbd-62a5-4505-909b-0410f2378f67.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU4MTMxNzcsIm5iZiI6MTcyNTgxMjg3NywicGF0aCI6Ii81NzU0ODU4NS8zNjM1MDg3MTEtNDM3ZGNmYmQtNjJhNS00NTA1LTkwOWItMDQxMGYyMzc4ZjY3LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA4VDE2Mjc1N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcxZjVkYWM3ZDU1ODc0Yjk4YjE4NTFjMmI4YzU2NGNiODE0M2I2MjI3ZjIyZWIwNGNmOGVjN2UzOWU1ZTIxZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mBtXcuQDU8KmhrxlwcEtQSoX-D0bBTGCAjQ__6F_lFc align="left")](https://private-user-images.githubusercontent.com/57548585/363508711-437dcfbd-62a5-4505-909b-0410f2378f67.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU4MTMxNzcsIm5iZiI6MTcyNTgxMjg3NywicGF0aCI6Ii81NzU0ODU4NS8zNjM1MDg3MTEtNDM3ZGNmYmQtNjJhNS00NTA1LTkwOWItMDQxMGYyMzc4ZjY3LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA4VDE2Mjc1N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTcxZjVkYWM3ZDU1ODc0Yjk4YjE4NTFjMmI4YzU2NGNiODE0M2I2MjI3ZjIyZWIwNGNmOGVjN2UzOWU1ZTIxZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mBtXcuQDU8KmhrxlwcEtQSoX-D0bBTGCAjQ__6F_lFc)

## ✨ Features

* Real-time traffic inspection and visualization.
    
* Comprehensive Traffic Statistics.
    
* 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)

### ⚒️ Build from source

To build `oryx`:

#### 1\. Install Rust nightly toolchain

```basic
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:

```basic
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:

```basic
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

```basic
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`:

```basic
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.

`/`: Start fuzzy finding.
