Skip to content

Quick start

This is the short way: one server outside the country, one user, one device. It takes about 15 minutes.

Your users are in a country where servers abroad are cut off? Read Tunnel: a server in Iran in front of a foreign server after this page.

Rent a Linux server outside the country. Debian or Ubuntu, with root access. Any small plan works for a few users.

You need a domain name that points at the server for the easiest setup. No domain? You can still do it: see Without a domain.

Log in to the server and run:

curl -fsSL https://raw.githubusercontent.com/veilway-project/veilway/main/scripts/veilway.sh | sudo bash

Choose 1 (Install), then both. The script checks every download before it installs anything. When it asks about a web server, give your domain.

At the end it prints the admin page address and a one-time setup token. Keep both.

Open the address it printed. Paste the setup token, choose a user name and a password of 12 characters or more, and add the authenticator key to your phone. First inbound and user shows each screen.

The dashboard has a setup checklist. Follow it down to the first user. If the panel shows no inbound, follow First inbound and user instead. It takes about 10 minutes.

If the server has a firewall, open the inbound’s UDP port. The installer printed it (“inbound main on UDP port …”). For example sudo ufw allow 31234/udp.

When the user exists, choose Copy Veilway link. Send it over a channel you trust. Anyone with the link can use the account.

  • Android: download the APK ending in -arm64.apk from the release page. See the Android app.
  • Linux or Windows: download the app from the same page. See the client manual.
  • iPhone: there is no app. See the FAQ.

Open the app, paste the link, follow its steps and tap Connect. Then open a “what is my IP” page. It should show your server’s address.