RedVPN for
Linux
A small command-line client. It runs without root and gives every program on the machine a local proxy on 127.0.0.1:1080.
Install
curl -fsSL https://vpn.red/dist/cli/install.sh | shx86_64 and aarch64, one static binary each, nothing else installed. As root it goes to /usr/local/bin; as a user to ~/.local/bin. Remove it with rm $(command -v redvpn).
Use
redvpn up # connect; prints the proxy address when ready
curl --socks5-hostname 127.0.0.1:1080 https://ip-geo.redvpn.workers.dev/ # prints: ok
redvpn status # or: redvpn status --json
redvpn down
Point a browser, a terminal (ALL_PROXY=socks5h://127.0.0.1:1080) or any application that speaks SOCKS5 at the proxy. Use the hostname variant (socks5h, --socks5-hostname) so names are resolved on the far side.
Your plan
A new machine starts on the free plan, like a new phone. To use the plan you bought on vpn.red or in the app, sign in with the same e-mail address:
redvpn login # e-mail, then the 6-digit code we send you
redvpn account # plan, remaining free data, account code
Already have a device id from another install? redvpn login --cid <id> adopts it. The id and the session live in ~/.config/redvpn, readable by you only; redvpn logout drops the session.
Manual setup
If the servers that hand out the connection settings cannot be reached from your network, sign in at vpn.red/me, click Download VPN profile (it saves redvpn-profile.json) and load it:
redvpn import redvpn-profile.json
The file is checked the same way a downloaded configuration is (it is signed; an edited or foreign file is refused), then stored in ~/.config/redvpn. A profile older than the one already stored is refused unless you add --force. redvpn up still looks for newer settings whenever it can reach them.
Run it as a service
A user unit keeps the proxy up across logins without root:
mkdir -p ~/.config/systemd/user
curl -fsSL https://vpn.red/dist/cli/redvpn.service -o ~/.config/systemd/user/redvpn.service
systemctl --user enable --now redvpn
loginctl enable-linger $USER # keep it running when you log out
The unit runs redvpn up --foreground. Global options: --state-dir, --log-level.
Whole machine (experimental)
sudo redvpn up --tun --resolvconf routes all traffic from the machine through RedVPN instead of only what you point at the proxy. It needs root, iproute2 and a hev-socks5-tunnel binary on PATH (the same bridge the phones use; build it from its source). The proxy mode above is the supported one; treat this as a preview and read redvpn --help.
Verify the download
The installer checks the binary against /dist/cli/SHA256SUMS before it installs anything. To do it by hand:
curl -fsSLO https://vpn.red/dist/cli/redvpn-linux-x86_64 # or redvpn-linux-aarch64
curl -fsSLO https://vpn.red/dist/cli/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS
install -m 755 redvpn-linux-x86_64 ~/.local/bin/redvpn
Version 0.3.0:
88efd4779adb05b08a0dc7d7c3464eb8f91a8252d376510dc99362a34eb2f9c2 redvpn-linux-aarch64
801ab45e20f6802db88b2b42b627df7cb6008e1afedb8b03d7be18cce8d5d486 redvpn-linux-x86_64
Older releases stay at /dist/cli/<version>/.
Exit codes
| 0 | ok (status: connected) |
|---|---|
| 1 | error (status: not connected) |
| 2 | usage |
| 3 | not entitled: free data used up, get Premium or sign in |
| 4 | could not reach any server from this network |
| 5 | already running |
| 6 | missing privilege or tool (--tun) |