NodexVPS
Back to All Guides
VPN12 min read•Updated 2026-10-25

3X-UI Panel on a VPS: VLESS Reality Setup and Client Connections

Set up a VLESS + Reality connection in the 3X-UI panel, connect from Windows, macOS, Linux, Android and iPhone, and update or reset the panel.

3X-UI is a web panel for the Xray core. It manages protocols that are hard to detect and block, such as VLESS with XTLS Reality, VMess, Trojan and Shadowsocks-2022.

When you order a 3X-UI VPS, the panel is installed for you in Docker with an HTTPS certificate. It suits users who already know these protocols; if you just want a simple VPN, WireGuard is easier.

  • Operating system: Ubuntu 22.04
  • Minimum server: 1 vCPU, 1 GB RAM and 50 GB of disk
  • Panel login: root (or admin), with your server’s root password
1

Open the 3X-UI panel

When your server is ready, we email you its IP address, the root password and the link to your 3X-UI panel. The link includes the panel’s port. The same details are in your client area, under the server’s information.

  1. Open the panel link from the email.
  2. Log in with the username root (on some installs, admin).
  3. Enter your server’s root password, the same one you use for SSH.
2

Create a VLESS connection

This example uses VLESS with Reality, which makes VPN traffic look like an ordinary HTTPS visit to a well-known website.

  1. Open the Inbounds tab and click Add Inbound.
  2. Remark: give the connection a name, such as VLESS. It appears in the list of inbounds.
  3. Protocol: leave vless.
  4. Listen IP: leave it empty so the server listens on all addresses.
  5. Port: enter 443.

Total Flow (GB) and Expire Date are optional. Use them to limit a client’s traffic or access time.

3

Configure the client and Reality settings

In the same window, set the transport security and the client details:

  1. In the Stream (Transport) section, set Security to reality.
  2. Under Client, keep the generated Email or enter a readable label such as user1. It must be unique for each client.
  3. Keep the generated ID, or click the refresh icon for a new one.
  4. Set Flow to xtls-rprx-vision.
  5. Set uTLS to chrome.
  6. Replace the default Target (Dest) and SNI with another site, for example www.microsoft.com:443 and www.microsoft.com, or dl.google.com:443 and dl.google.com.
  7. Click the refresh icon next to Short IDs to generate one.
  8. Click Get New Cert to create the private and public keys.
  9. Click Create.

The new inbound appears in the list. Other protocols, such as Shadowsocks-2022, are set up the same way.

4

Connect from Windows, macOS or Linux with Hiddify

Hiddify is the easiest client for beginners, on all three systems.

  1. Download the latest Hiddify release for your system from its GitHub page and install it.
  2. On Windows, open C:\Program Files\hiddify, right-click HiddifyNext.exe, choose Properties > Compatibility > Change settings for all users, tick Run this program as an administrator and click OK.
  3. In Hiddify, go to Settings and set Region to Other.
  4. In Settings > Config Options, set Service Mode to VPN.
  5. In the 3X-UI panel, open the connection’s QR code and click it once to copy the link.
  6. In Hiddify, click + New Profile (or + at the top right) and choose Add From Clipboard.
  7. Click the large round button. It turns green and shows Connected. Click it again to disconnect.
5

Advanced: connect with Nekoray on Windows or Linux

Nekoray gives more control over routing. v2rayN is a similar alternative on Windows.

  1. Download Nekoray. On Windows, extract the nekoray folder and run nekoray.exe; on Linux, install the package.
  2. On first start, choose the sing-box core. You can change it later in Preferences > Basic settings > Core.
  3. With the QR code open in the 3X-UI panel, choose Program > Scan QR Code. Or copy the link from the panel and choose Program > Add profile from clipboard.
  4. Tick Tun mode.
  5. Right-click the profile and choose Start.
6

Connect from Android

Use Hiddify from Google Play (or the APK from its website), or v2rayNG.

  1. In Hiddify, open the menu, go to Settings and set Region to Other.
  2. In Settings > Config Options, set Service Mode to VPN.
  3. On the main screen, tap + New Profile (or +), choose Scan QR Code and scan the code in the 3X-UI panel.
  4. Tap the large round button to connect.
  5. To send only some apps through the VPN, turn on Per-app Proxy in Settings and tick those apps.
  6. With v2rayNG instead: tap +, choose Import config from QR code, scan the code and start the connection.
7

Connect from iPhone or iPad

Install Hiddify from the App Store. V2Box and Shadowrocket also work.

  1. Open Hiddify and tap + New Profile (or +).
  2. Choose Scan QR Code and scan the code in the 3X-UI panel.
  3. Tap the large round button to connect.
8

Update 3X-UI

To move to the latest panel version, connect to the server over SSH as root and pull the new image:

Your inbounds and clients are kept in /data, so they survive the update.

ssh root@SERVER_IP
cd /root/3x-ui
docker compose down
docker compose pull 3x-ui
docker compose up -d
9

Reset the panel username and password

If you lose the panel login, set a new one in the panel’s database. Connect over SSH as root, then:

Use only Latin letters, numbers and symbols in the password. Replace NEW_PASSWORD with it, and HASH with the line the python3 command prints (it starts with $2b$).

apt update
apt install -y sqlite3 python3-bcrypt

# print a hash of the new password
python3 -c "import bcrypt; print(bcrypt.hashpw(b'NEW_PASSWORD', bcrypt.gensalt(rounds=10)).decode())"

# store it (run the UPDATE line at the sqlite> prompt)
sqlite3 /data/3x-ui/db/x-ui.db
UPDATE users SET username = 'root', password = 'HASH' WHERE id = 1;
.quit

cd /root/3x-ui && docker compose restart
10

What’s installed, and how to customise it

The panel runs in Docker containers that you can change if you need to.

  1. Docker CE and Docker Compose.
  2. 3X-UI (ghcr.io/mhsanaei/3x-ui), the panel and Xray core.
  3. Nginx with Certbot (jonasal/nginx-certbot), which serves the panel over HTTPS.
  4. Compose file: /root/3x-ui/compose.yml. Data: /data.

To customise the setup, edit /root/3x-ui/compose.yml and restart the containers:

nano /root/3x-ui/compose.yml
docker compose -f /root/3x-ui/compose.yml down
docker compose -f /root/3x-ui/compose.yml up -d

Get a server for this guide

3X-UI VPS comes ready with everything in this guide, from $7.50/mo billed yearly.

See 3X-UI VPS plans

Start Your NodexVPS Today

Save 50% with yearly billing. No contract, cancel any time.