Skip to content
heidari-devPublic

About

Share a phone's internet with a computer over USB or WiFi, keeping the phone's VPN exit IP.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Kite

OpenSSF Scorecard OpenSSF Best Practices

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.

Status

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.

Install on Linux

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.

Try it from source

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.

Feedback and contributing

Planned platforms

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

License

GPL-3.0-or-later. See LICENSE.

About

Share a phone's internet with a computer over USB or WiFi, keeping the phone's VPN exit IP.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages