Skip to content

Exit node GNU Linux

p1neappleXpress edited this page Sep 11, 2026 · 2 revisions

OpenFlux Exit Node — VPS Deployment Guide

English | Русский


What you get

Linux VPS running an OpenFlux exit node 24/7 with autostart.


Requirements

Item Details
VPS Ubuntu 22.04 / Debian 12 / Fedora / Rocky / Arch
Access Root via SSH
RAM 512 MB min, 1 GB recommended
Traffic 1 TB+ preferred

Choose a provider you trust (Hetzner, Oracle Cloud, Vultr, HostVDS). Avoid Russian providers if using for bypass.


Step 1 — Connect to your VPS

ssh root@YOUR_SERVER_IP

First connect asks for confirmation — type yes. Prompt changes to root@server-xxxx:~#.


Step 2 — Install packages

Ubuntu / Debian:

apt update && apt upgrade -y
apt install -y git nano curl jq

Fedora / Rocky / Alma:

dnf upgrade -y
dnf install -y git nano curl jq

Arch / Manjaro:

pacman -Syu --noconfirm
pacman -S --noconfirm git nano curl jq

Alpine:

apk update && apk upgrade
apk add git nano curl jq bash

Step 3 — Install Go OR download release binary

Option A — Build from source

Ubuntu / Debian:

apt install -y golang-go

Fedora / Rocky / Alma:

dnf install -y golang

Arch:

pacman -S --noconfirm go

Alpine:

apk add go

Or tarball (all distros):

cd /tmp
curl -LO https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
rm -rf /usr/local/go
tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
source ~/.bashrc
go version

ARM64: replace linux-amd64 with linux-arm64.

Option B — Download prebuilt release

curl -s https://api.github.com/repos/p1neappleXpress/OpenFlux/releases/latest | jq -r ".assets[].browser_download_url"

Pick one:

If help text appears — binary works.

If using Option B, replace /root/OpenFlux/universal-bypass-tool with /opt/openflux/universal-bypass-tool in systemd unit below.


Step 4 — Get OpenFlux (Option A only)

cd /root
git clone https://github.com/p1neappleXpress/OpenFlux.git
cd OpenFlux
go build -o universal-bypass-tool .

Step 5 — Block RST packets

iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP

nftables alternative:

nft add rule inet filter output tcp flags rst drop

Step 6 — Create Yandex Docs document

  1. Go to https://docs.yandex.ru/
  2. Turn off "Try the new editor" — use legacy editor
  3. Create a spreadsheet
  4. Share -> public by link
  5. Copy URL: https://disk.yandex.ru/i/XXXXXXXXXXXXXXXX

Step 7 — Test manually

./universal-bypass-tool --exit-node --url "https://disk.yandex.ru/i/YOUR_URL" --debug

Press Ctrl+C to stop.


Step 8 — Systemd service (24/7)

Option A (built from source)

nano /etc/systemd/system/openflux.service

Paste:

[Unit] Description=OpenFlux Universal Bypass Tool After=network.target

[Service] Type=simple User=root WorkingDirectory=/root/OpenFlux ExecStartPre=/usr/sbin/iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP ExecStart=/root/OpenFlux/universal-bypass-tool --exit-node --url "YOUR_YANDEX_URL" --debug Restart=always RestartSec=5

[Install] WantedBy=multi-user.target

Save: Ctrl+O, Enter, Ctrl+X.

Option B (from release)

nano /etc/systemd/system/openflux.service

Paste:

[Unit] Description=OpenFlux Universal Bypass Tool After=network.target

[Service] Type=simple User=root WorkingDirectory=/opt/openflux ExecStartPre=/usr/sbin/iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP ExecStart=/opt/openflux/universal-bypass-tool --exit-node --url "YOUR_YANDEX_URL" --debug Restart=always RestartSec=5

[Install] WantedBy=multi-user.target

Enable and start

systemctl daemon-reload
systemctl enable openflux.service
systemctl start openflux.service

Step 9 — Verify

systemctl status openflux.service

Look for green active (running) and:

=== Universal Bypass Tool ===

Live logs:

journalctl -u openflux.service -f

Step 10 — Connect from Android

  1. Download: https://github.com/p1neappleXpress/OpenFluxAndroid/releases
  2. Open app -> tap + -> Manual
  3. Paste Yandex Docs URL
  4. Save -> Connect

First connections may hang ~5 minutes.


Useful commands

  • Status: systemctl status openflux
  • Logs: journalctl -u openflux -f
  • Restart: systemctl restart openflux
  • Stop: systemctl stop openflux
  • Disable: systemctl disable openflux
  • Edit: nano /etc/systemd/system/openflux.service
  • Reload: systemctl daemon-reload && systemctl restart openflux

Troubleshooting

Service fails with no such file or directory -> Check ExecStart path. ls -la /root/OpenFlux/universal-bypass-tool

Service runs but clients can not connect -> iptables -L OUTPUT -n -v | grep RST

Yandex Docs errors -> Document must be public and in legacy editor

High CPU / traffic -> Remove --debug, monitor with top and iftop


Optional Step — SSH key and security

WARNING: Without this your VPS is a target. Bots scan 24/7 and brute-force root passwords. If you skip this, use a strong random password.

Generate SSH key on your PC

Windows (PowerShell):

ssh-keygen -t ed25519
type $env:USERPROFILE\.ssh\id_ed25519.pub

macOS / Linux:

ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub

Press Enter twice. Copy the output.

Add key to VPS

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys

Paste key. Save Ctrl+O, Enter, Ctrl+X.

chmod 600 ~/.ssh/authorized_keys

Test key

New terminal:

ssh root@YOUR_SERVER_IP

If no password asked — key works.

Disable password login

Only after key works.

nano /etc/ssh/sshd_config

Set:

PasswordAuthentication no
PubkeyAuthentication yes
ChallengeResponseAuthentication no
PermitRootLogin prohibit-password

Restart SSH:

Ubuntu / Debian:

systemctl restart ssh

Fedora / Rocky / Alma / Arch:

systemctl restart sshd

WARNING: Keep current session open. Test from second terminal.

If something breaks

Use provider web console (KVM/VNC):

PasswordAuthentication yes

Restart SSH and try again.

Recommendation

Enable SSH key auth and disable password login. 5-minute setup removes 99% of automated attacks.

thank you: restricted, Vladislav Zamchenko

Clone this wiki locally