Hur du installerar 3X-UI-panelen på en VPS
En komplett, produktionsinriktad guide för att installera 3X-UI Xray-panelen på Ubuntu, låsa ner webbgränssnittet, utfärda TLS, skapa en VLESS Reality-inbound, hantera användare och ansluta klienter på dator och mobil.

3X-UI är en webbpanel för Xray-core. Med den hanterar du inbounds (VLESS, VMess, Trojan, Shadowsocks och andra), utfärdar prenumerationslänkar, sätter trafikgränser och utgångsdatum och följer liveanslutningar utan att redigera JSON för hand. För den som redan kör en VPS är det ett av de snabbaste sätten att få en underhållbar proxystack i stället för en engångskonfiguration som ingen kan uppdatera ett halvår senare.
Den här guiden är skriven för en färsk Ubuntu 22.04- eller 24.04-VPS, vilket är vad de flesta Hiddence Linux-avbildningar ser ut som efter första starten. Vi installerar den vanliga MHSanaei 3X-UI-bygget, byter varje standardhemlighet vid första inloggningen, lägger panelen bakom HTTPS, öppnar bara de portar du faktiskt behöver, skapar en VLESS + Reality-inbound och går sedan igenom klientappar. Om du redan följt vår Marzban-artikel är idén liknande — en panel ovanpå Xray — men installationsväg, filayout och dagligt arbetsflöde skiljer sig, så blanda inte de två på samma server om du inte verkligen vet hur du delar upp portar.
Varför 3X-UI i stället för en rå Xray-config
En rå Xray-config duger för en enda användare och en enda inbound. I samma ögonblick som du lägger till vänner, roterar Reality-nycklar eller behöver en prenumerations-URL som telefoner kan importera med ett tryck sparar en panel timmar. 3X-UI lagrar användare i en lokal databas, kan starta om Xray rent efter ändringar och visar en kompakt översikt för trafik och onlinestatus. Det är inte ett magiskt anonymitetslager i sig: VPS-placering, TLS-fingeravtryck, inbound-typ och din egen operativa hygien avgör fortfarande hur uppsättningen beter sig på nätet.
- Webbgränssnitt för inbounds, klienter, trafik och utgång i stället för handredigerad JSON
- Inbyggda prenumerationslänkar för v2rayN, v2rayNG, Streisand, Happ och liknande klienter
- Installation med ett kommando plus en dokumenterad uppdateringsväg
- Fungerar bra på en liten VPS (1 vCPU / 1 GB RAM räcker för personligt bruk)
- Du behåller root på din egen server — panelen skickar inte configs till ett tredjepartsmoln
Vad du behöver innan du börjar
Hoppa inte över domän- och brandväggsdelarna. En panel som lämnas på HTTP på port 2053 med standardlösenordet skannas av bottar inom några timmar. Förbered de här sakerna och anslut sedan som root (eller en sudo-användare) över SSH.
- En Linux-VPS med en publik IPv4-adress (Ubuntu 22.04/24.04 rekommenderas)
- Minst 1 GB RAM och 10 GB disk; 2 GB RAM är bekvämare om du också kör andra tjänster
- Root- eller sudo-åtkomst över SSH
- En domän eller underdomän med en A-post som pekar på VPS-IP:n (behövs för ett riktigt panelcertifikat)
- Cirka 20–30 minuter, plus DNS-väntetid om du just skapade A-posten
Steg 1: Uppdatera systemet och ställ in tidszonen
En helt ny VPS har ofta väntande säkerhetsuppdateringar och UTC som klocka. Uppdatera paketen först så att installern inte kämpar mot en föråldrad OpenSSL eller curl. Att sätta tidszonen är valfritt för själva Xray, men det gör panelloggar och certifikatens utgångsdatum mycket lättare att läsa.
ssh root@YOUR_VPS_IP
apt update && apt -y upgrade
apt -y install curl wget ca-certificates gnupg socat tar unzip
timedatectl set-timezone UTC
hostnamectl set-hostname panel
# Confirm DNS for your subdomain (should print your VPS IP):
dig +short panel.example.comSteg 2: Installera 3X-UI
Det officiella installationsskriptet för MHSanaei 3X-UI-bygget hämtar den senaste utgåvan, installerar Xray-core, skapar en systemd-tjänst och skriver ut URL:en för första inloggning. Läs utdata noga: den innehåller en slumpmässig sökväg och ett genererat användarnamn/lösenord. Kopiera dem till en lösenordshanterare omedelbart. Om skriptet frågar om panelporten, behåll antingen 2053 eller välj en oanvänd hög port; kom bara ihåg den till brandväggssteget.
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# After install, useful commands:
x-ui # interactive menu (start/stop/restart, reset, update)
systemctl status x-ui # confirm the service is active
ss -tulpn | grep x-ui # see which port the panel listens onSteg 3: Första inloggning och omedelbar härdning
Öppna URL:en som installern skrev ut, vanligtvis http://YOUR_IP:2053/<slumpmässig-sökväg>. Logga in med de genererade uppgifterna och gå sedan till Panel Settings (eller Configuration). Byt användarnamn och lösenord till unika värden. Om panelen låter dig ändra webbens bassökväg, gör det — en lång slumpmässig sökväg skär bort en enorm mängd slumpmässiga skanningar. Ställ in lyssningsporten om du vill ha något annat än 2053. Spara och starta om panelen från gränssnittet eller med systemctl restart x-ui, och logga sedan in igen på den nya URL:en.
Aktivera därefter tvåfaktorsautentisering om din bygge erbjuder det, och stäng av oanvända inbound-mallar som du aldrig kommer att använda. Under Xray-inställningarna, lämna den kärnversion som följde med panelen om du inte har en specifik anledning att låsa en annan bygge. Exponera inte panelen på port 80/443 ännu om de portarna senare ska användas av Reality eller en omvänd proxy — välj en strategi och håll dig till den.
- Byt ut den genererade administratörsinloggningen omedelbart
- Behåll den hemliga webbsökvägen; flytta inte panelen till /
- Föredra en icke-standard panelport och notera den
- Återanvänd aldrig det här lösenordet på andra tjänster
Steg 4: TLS-certifikat för panelen
Webbläsare varnar för HTTP, och att skicka administratörslösenordet i klartext på ett publikt nät är en dålig idé. 3X-UI kan begära ett Let's Encrypt-certifikat om port 80 är ledig och domänen pekar på den här VPS:en. I panelen, öppna avsnittet för certifikat / SSL, ange panel.example.com och begär certifikatet. Om port 80 redan är upptagen, använd ett DNS-01-flöde eller sätt Caddy/Nginx framför och reverse-proxy:a till 127.0.0.1:2053.
# Quick check that port 80 is free before the panel ACME challenge:
ss -tulpn | grep ':80'
# If you terminate TLS on Caddy instead of inside 3X-UI:
# Caddyfile example (panel stays on 127.0.0.1:2053):
# panel.example.com {
# reverse_proxy 127.0.0.1:2053
# }Steg 5: Skapa en VLESS Reality-inbound
I Inbounds, skapa en ny inbound. En solid standard för många nät är VLESS med Reality och TCP. Välj en port som inte är panelporten — 443 är vanligt om inget annat är bundet där; annars använd en hög TCP-port och var konsekvent i brandväggen. Generera ett UUID för den första klienten, generera Reality-nyckelpar i gränssnittet och sätt dest / serverNames till ett legitimt mål som du får efterlikna (en känd sajt som stöder TLS 1.3). Spara inbounden och bekräfta att Xray laddas om utan fel i panelloggarna.
Lägg sedan till extra klienter på den inbounden om du behöver dem: varje användare får ett UUID, valfri e-posttagg och valfri trafik- eller tidsgräns. Kopiera anslutningslänken eller prenumerations-URL:en från användarraden. Publicera inte de länkarna i publika chattar; de är likvärdiga med ett lösenord.
# On the server, confirm Xray is listening on the inbound port (example: 443):
ss -tulpn | grep -E ':443|:2053'
# Follow Xray logs if a client cannot connect:
journalctl -u x-ui -fSteg 6: Brandvägg — bara de portar du behöver
UFW på Ubuntu räcker. Tillåt SSH först så att du inte kan låsa ute dig, sedan panelporten och inbound-porten. Om du begärde ett Let's Encrypt-certifikat från panelen, tillåt också 80/tcp under utfärdandet. Reality-inbound på 443 behöver 443/tcp (och inte panelen på samma port).
ufw allow OpenSSH
ufw allow 2053/tcp comment '3x-ui panel (change if you picked another port)'
ufw allow 443/tcp comment 'VLESS Reality inbound'
# ufw allow 80/tcp comment 'only if panel ACME needs it'
ufw enable
ufw status verboseAnslut klienter
På Windows kan v2rayN importera en VLESS-länk från urklipp. På Android gör v2rayNG eller liknande Xray-klienter samma sak från en QR-kod. På iOS, använd en klient som stöder VLESS Reality (till exempel Streisand eller Happ, beroende på vad som för närvarande finns i din region). Efter import, aktivera profilen och kontrollera panelens onlinelista. Om klienten förblir offline är de vanliga orsakerna fel port, UDP kvar på för en TCP-only inbound, ett Reality-serverName som inte matchar dest, eller en lokal brandvägg på laptopen.
- Windows: v2rayN — importera VLESS-länk, ställ in routing som du behöver (globalt vs regelbaserat)
- Android: v2rayNG — skanna QR från panelens användarsida
- macOS / iOS: en klient med VLESS + Reality-stöd; klistra in samma länk
- Prenumerations-URL: lägg till den i klienten så att UUID-rotationer inte kräver manuell ominport
Uppdateringar, säkerhetskopiering och säker ominstallation
Innan varje paneluppdatering, ladda ner en säkerhetskopia från gränssnittet (databas + config). Lagra den utanför VPS:en. Uppdateringar är vanligtvis x-ui och sedan uppdateringsalternativet i menyn, eller samma installationsskript som upptäcker en befintlig installation. Efter en uppdatering, bekräfta att systemd-tjänsten är aktiv och att inbounds fortfarande lyssnar. Om du installerar om OS:et, återställ säkerhetskopian i panelen i stället för att återskapa varje UUID för hand.
x-ui # choose update when prompted, or:
# bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)
# Backup files commonly live under /etc/x-ui/ — copy them off-box:
ls -la /etc/x-ui/
# Example offsite copy:
# scp -r /etc/x-ui/ you@backup-host:~/x-ui-backup-$(date +%F)/Felsökning
De flesta fel den första dagen är DNS, portar eller Reality-fält. Gå igenom den här listan innan du installerar om panelen. Att installera om utan säkerhetskopia är hur folk förlorar varje klient-UUID.
- Kan inte öppna webbgränssnittet: kontrollera systemctl status x-ui, ss -tulpn och UFW. Bekräfta att du inkluderade den hemliga sökvägen i URL:en.
- Glömt administratörslösenord: kör x-ui på servern och använd återställningsalternativet.
- Klienten ansluter och stannar sedan: inbound-port blockerad, eller så aktiverade du UDP på en TCP Reality-inbound.
- TLS-fel på panelen: domänens A-post pekar inte hit ännu, eller port 80 är upptagen under ACME.
- Reality-handskakning misslyckas: dest/serverNames matchar inte, eller en annan tjänst är redan bunden till 443.
- Hög CPU: för många inbounds på en 1 vCPU-plan, eller en skanning/flood på en öppen port — kontrollera ss och panelens onlineantal.
Säkerhetsanteckningar som faktiskt spelar roll
Behandla panelen som produktionsadminprogramvara. Den kan skapa nya användare och läsa varje UUID. Begränsa vem som kan nå webbporten: om du har en stabil kontors-IP, tillåt bara den IP:n i UFW för 2053/tcp. Håll SSH på nycklar, inte lösenord. Kör inte orelaterade publika webbplatser på samma IP om du använder Reality på 443 — konkurrerande TLS-stackar på en port är en klassisk källa till avbrott. Rotera administratörslösenordet om en skärmdump av panelen någonsin läckt in i en chatt.
- Endast SSH-nycklar; inaktivera lösenordsinloggning när nycklarna fungerar
- Begränsa panelporten i brandväggen när du kan
- Säkerhetskopiera /etc/x-ui från servern enligt ett schema
- Dela inte prenumerations-URL:er i publika Telegram-grupper
- Bevaka disken: loggar och trafikstatistik växer på en upptagen inbound
Praktiska tips
- En inbound med många klienter är lättare att driva än tio nästan identiska inbounds
- Namnge klienter efter enhet (laptop-anna, phone-ben) så att trafikdiagram betyder något
- Om du också behöver en omvänd proxy för en webbplats, lägg sajten på en annan IP eller en annan port — slåss inte med Reality om 443
- Efter varje x-ui-omstart, testa en klient innan du lämnar SSH-sessionen
- Läs ändringsloggen innan du uppdaterar; hoppa över 'latest'-hopp en fredagskväll
Du har nu 3X-UI installerat som en systemd-tjänst, en nedlåst admin-URL, TLS på panelen, en VLESS Reality-inbound, brandväggsregler som matchar de portarna och en vana att ta säkerhetskopior. Lägg till klienter från inbound-sidan, importera länken på varje enhet och uppdatera panelen bara efter en säkerhetskopia. Om något går sönder är x-ui-menyn på VPS:en återställningsvägen — inte en full ominstallation.