Share your phone's internet connection with a computer over USB or WiFi, and keep the phone's VPN or proxy exit IP while doing it.
Normal USB tethering is routed by the kernel and skips the phone's VPN. Kite instead opens a real socket on the phone for every connection the computer makes, so traffic leaves through whatever the phone itself is using: a VPN, a proxy, or the plain mobile network. It is being built for Linux, Windows, macOS, Android and iPhone.
Early development. On Linux the kite command works in proxy mode and in TUN mode against the
development relay (relay-dev), which stands in for a phone. There is no phone app yet, WiFi is not
supported, and USB (--usb, through adb) is only tested against a fake adb server. The link is
encrypted with Noise and both sides are paired once with a 6-digit code. See
the open issues and milestones for the roadmap.
Download the .deb from the releases page and open it
with your software centre, or run sudo apt install ./kite_*.deb. It starts the daemon and puts Kite in
your menu and tray; log out and in once so your account can use it. The AppImage is the desktop app and
the command line without the daemon (no TUN mode). Details: packaging/linux.
You need a Rust toolchain (see rust-toolchain.toml). On one machine, in two terminals:
cargo run --release -p kite-relay --example relay-dev -- 127.0.0.1:7000 --allow-loopback
cargo run --release -p kite-cli -- pair --tcp 127.0.0.1:7000
cargo run --release -p kite-cli -- connect --tcp 127.0.0.1:7000
kite pair asks for the code that relay-dev prints, the way the phone will show it; it is needed
once per relay-dev run, since relay-dev forgets its pairings when it stops.
--allow-loopback lets the relay reach servers on its own machine; leave it off to behave like a
phone. Kite then serves a SOCKS5 proxy on 127.0.0.1:1080:
curl --proxy socks5h://127.0.0.1:1080 https://ifconfig.me
On Linux, TUN mode sends everything through the relay. It needs CAP_NET_ADMIN, not full root:
sudo setcap cap_net_admin+ep target/release/kite
target/release/kite connect --tcp RELAY_HOST:7000 --tun
After a crash, kite restore removes leftover routing rules. See docs/cli.md for
every command and option, and docs/architecture.md for how it works.
- Bugs and ideas: issues
- Questions and discussion: Discussions
- Code and docs: see CONTRIBUTING.md
- Security problems: see SECURITY.md, not a public issue
| Platform | Role | Milestone |
|---|---|---|
| Android | Phone (relay app) | v0.1.0 |
| Linux | Computer (CLI, daemon, desktop app) | v0.1.0 |
| Windows | Computer | v0.2.0 |
| iPhone | Phone (relay app) | v0.3.0 |
| macOS | Computer | not scheduled |
GPL-3.0-or-later. See LICENSE.