Skip to content

Latest commit

 

History

56 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

oignon

Use Tor like a VPN with a country of your choice as the exit — from a terminal, on macOS.

Strictly, Tor is not a VPN: your traffic hops through three onion relays run by strangers instead of one tunnel run by a company you pay. Slower, but no single operator sees both you and your destination. oignon makes that feel like a VPN anyway: one command routes your Wi-Fi through Tor, e picks the exit country live, and the header shows your verified exit IP. Quitting cleans up — Tor stopped, proxy off.

live dashboard: bandwidth, circuits, streams, verified exit IP

Requirements

None. No tor on PATH? oignon offers to download the official Tor Expert Bundle (pinned version, checksum-verified) into ~/.local/share/oignon/ — the bundle also ships the GeoIP data, so relay countries just work. No torrc needed either — without one, oignon starts Tor with sane defaults:

SOCKSPort 9050
ControlPort 9051
CookieAuthentication 1

If ~/.config/tor/torrc exists it is used instead; it must expose the same control port. For relay countries you also want Tor's GeoIP databases — some packagings ship them, Nix's does not. Setup details: docs/configuration.md.

Install

brew tap abosnjakovic/oignon https://github.com/abosnjakovic/oignon
brew install oignon

or

cargo install oignon

Run

oi                  # starts Tor if needed, adopts it if running
oi de               # same, requesting exits in Germany

(the installed command is oi; use cargo run / cargo run de from a checkout)

Quitting oignon stops Tor and disables the Wi-Fi SOCKS proxy. A Tor found already running at launch is adopted and owned — quit stops it too.

Keys

Key Action
q / Esc quit (stops Tor, proxy off)
e choose exit country
n new circuit (SIGNAL NEWNYM)
p toggle the Wi-Fi SOCKS proxy
s toggle StrictNodes
t start / stop Tor
? help overlay (any key closes)

In the country picker: type to filter, Up/Down to move, Enter to apply, Esc to cancel.

choosing a German exit, then re-verifying the IP

the ? help overlay

Notes

The header's exit: is the relay your traffic actually leaves through, derived from live circuit and stream events; want: is what you asked for; ip: is the exit IP verified through Tor itself via check.torproject.org.

By default StrictNodes is off: if the chosen country has no usable exit, Tor silently falls back to another. Press s to fail instead of falling back.

Documentation

Page Covers
Architecture Module layout, data flow, state model, testing philosophy
Tor lifecycle Process ownership, stop paths, proxy follow, verified exit IP, CLI
Control protocol Reply framing, handshake, events, geo lookups, exit switching
Configuration torrc, GeoIP setup, macOS proxy, demo recordings

About

tor onion routing in a rust tui

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages