Slik installerer du 3X-UI-panelet på en VPS
En komplett, produksjonsrettet veileder for å installere 3X-UI Xray-panelet på Ubuntu, låse ned webgrensesnittet, utstede TLS, opprette en VLESS Reality-inbound, administrere brukere og koble til klienter på datamaskin og mobil.

3X-UI er et webpanel for Xray-core. Det lar deg administrere inbounds (VLESS, VMess, Trojan, Shadowsocks og andre), utstede abonnementslenker, sette trafikkgrenser og utløpsdatoer, og følge live-tilkoblinger uten å redigere JSON for hånd. For deg som allerede kjører en VPS er det en av de raskeste måtene å få en vedlikeholdbar proxy-stakk i stedet for en engangskonfigurasjon som ingen kan oppdatere et halvt år senere.
Denne veilederen er skrevet for en fersk Ubuntu 22.04- eller 24.04-VPS, som er slik de fleste Hiddence Linux-avbildninger ser ut etter første oppstart. Vi installerer den utbredte MHSanaei 3X-UI-byggen, bytter hver standardhemmelighet ved første innlogging, legger panelet bak HTTPS, åpner bare portene du faktisk trenger, oppretter en VLESS + Reality-inbound og går deretter gjennom klientapper. Hvis du allerede har fulgt Marzban-artikkelen vår, er ideen lik — et panel oppå Xray — men installasjonssti, filoppsett og daglig arbeidsflyt er annerledes, så ikke bland de to på samme server med mindre du virkelig vet hvordan du deler porter.
Hvorfor 3X-UI i stedet for en rå Xray-config
En rå Xray-config er grei for én bruker og én inbound. I det øyeblikket du legger til venner, roterer Reality-nøkler eller trenger en abonnements-URL som telefoner kan importere med ett trykk, sparer et panel timer. 3X-UI lagrer brukere i en lokal database, kan starte Xray rent på nytt etter endringer og viser et kompakt dashbord for trafikk og onlinestatus. Det er ikke et magisk anonymitetslag i seg selv: VPS-plassering, TLS-fingeravtrykk, inbound-type og din egen operative hygiene avgjør fortsatt hvordan oppsettet oppfører seg på nettverket.
- Webgrensesnitt for inbounds, klienter, trafikk og utløp i stedet for håndredigert JSON
- Innebygde abonnementslenker for v2rayN, v2rayNG, Streisand, Happ og lignende klienter
- Installasjon med én kommando pluss en dokumentert oppdateringssti
- Fungerer godt på en liten VPS (1 vCPU / 1 GB RAM er nok til personlig bruk)
- Du beholder root på din egen server — panelet sender ikke configs til en tredjepartssky
Hva du trenger før du starter
Ikke hopp over domenet og brannmuren. Et panel som står på HTTP på port 2053 med standardpassordet blir skannet av boter i løpet av timer. Forbered disse tingene, og koble deretter til som root (eller en sudo-bruker) over SSH.
- En Linux-VPS med en offentlig IPv4-adresse (Ubuntu 22.04/24.04 anbefales)
- Minst 1 GB RAM og 10 GB disk; 2 GB RAM er mer behagelig hvis du også kjører andre tjenester
- Root- eller sudo-tilgang over SSH
- Et domene eller underdomene med en A-post som peker på VPS-IP-en (trengs for et skikkelig panelsertifikat)
- Omtrent 20–30 minutter, pluss DNS-ventetid hvis du nettopp opprettet A-posten
Steg 1: Oppdater systemet og sett tidssonen
En helt ny VPS har ofte ventende sikkerhetsoppdateringer og UTC som klokke. Oppdater pakkene først slik at installeren ikke kjemper mot en utdatert OpenSSL eller curl. Å sette tidssonen er valgfritt for selve Xray, men det gjør panellogger og sertifikatenes utløpsdatoer mye lettere å lese.
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: Installer 3X-UI
Det offisielle installasjonsskriptet for MHSanaei 3X-UI-byggen laster ned den nyeste utgaven, installerer Xray-core, oppretter en systemd-tjeneste og skriver ut URL-en for første innlogging. Les utdataene nøye: de inneholder en tilfeldig sti og et generert brukernavn/passord. Kopier dem til en passordbehandler med en gang. Hvis skriptet spør om panelporten, behold enten 2053 eller velg en ubrukt høy port; husk den bare til brannmursteget.
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ørste innlogging og umiddelbar herding
Åpne URL-en installeren skrev ut, vanligvis http://YOUR_IP:2053/<tilfeldig-sti>. Logg inn med de genererte opplysningene, og gå deretter til Panel Settings (eller Configuration). Bytt brukernavn og passord til unike verdier. Hvis panelet lar deg endre webbasestien, gjør det — en lang tilfeldig sti kutter en enorm mengde tilfeldige skanninger. Sett lytteporten hvis du vil ha noe annet enn 2053. Lagre og start panelet på nytt fra grensesnittet eller med systemctl restart x-ui, og logg deretter inn igjen på den nye URL-en.
Slå deretter på tofaktorautentisering hvis byggen din tilbyr det, og deaktiver ubrukte inbound-maler du aldri kommer til å bruke. Under Xray-innstillingene, la kjerneversjonen som fulgte med panelet stå med mindre du har en spesifikk grunn til å låse en annen bygge. Ikke eksponer panelet på port 80/443 ennå hvis de portene senere skal brukes av Reality eller en reversproxy — velg én strategi og hold deg til den.
- Bytt ut den genererte administratorinnloggingen umiddelbart
- Behold den hemmelige webstien; ikke flytt panelet til /
- Foretrekk en ikke-standard panelport og noter den
- Gjenbruk aldri dette passordet på andre tjenester
Steg 4: TLS-sertifikat for panelet
Nettlesere advarer på HTTP, og å sende administratorpassordet i klartekst på et offentlig nett er en dårlig idé. 3X-UI kan be om et Let's Encrypt-sertifikat hvis port 80 er ledig og domenet peker på denne VPS-en. I panelet, åpne sertifikat-/SSL-delen, skriv inn panel.example.com og be om sertifikatet. Hvis port 80 allerede er opptatt, bruk en DNS-01-flyt eller sett Caddy/Nginx foran og reversprox til 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: Opprett en VLESS Reality-inbound
I Inbounds, opprett en ny inbound. Et solid standardvalg for mange nett er VLESS med Reality og TCP. Velg en port som ikke er panelporten — 443 er vanlig hvis ingenting annet er bundet der; ellers bruk en høy TCP-port og vær konsekvent i brannmuren. Generer et UUID for den første klienten, generer Reality-nøkkelpar i grensesnittet, og sett dest / serverNames til et legitimt mål du har lov til å etterligne (et kjent nettsted som støtter TLS 1.3). Lagre inbounden og bekreft at Xray lastes på nytt uten feil i panelloggene.
Legg deretter til ekstra klienter på den inbounden hvis du trenger dem: hver bruker får et UUID, valgfri e-posttagg og valgfri trafikk- eller tidsgrense. Kopier tilkoblingslenken eller abonnements-URL-en fra brukerraden. Ikke legg ut de lenkene i offentlige chatter; de tilsvarer et passord.
# 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: Brannmur — bare portene du trenger
UFW på Ubuntu er nok. Tillat SSH først slik at du ikke kan låse deg ute, deretter panelporten og inbound-porten. Hvis du ba om et Let's Encrypt-sertifikat fra panelet, tillat også 80/tcp under utstedelsen. Reality-inbound på 443 trenger 443/tcp (og ikke panelet på samme 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 verboseKoble til klienter
På Windows kan v2rayN importere en VLESS-lenke fra utklippstavlen. På Android gjør v2rayNG eller lignende Xray-klienter det samme fra en QR-kode. På iOS, bruk en klient som støtter VLESS Reality (for eksempel Streisand eller Happ, avhengig av hva som for øyeblikket er tilgjengelig i regionen din). Etter import, aktiver profilen og sjekk panelets onlineliste. Hvis klienten forblir frakoblet, er de vanlige årsakene feil port, UDP igjen på for en TCP-only inbound, et Reality-serverName som ikke matcher dest, eller en lokal brannmur på laptopen.
- Windows: v2rayN — importer VLESS-lenke, sett ruting som du trenger (globalt vs regelbasert)
- Android: v2rayNG — skann QR fra panelets brukerside
- macOS / iOS: en klient med VLESS + Reality-støtte; lim inn samme lenke
- Abonnements-URL: legg den til i klienten slik at UUID-rotasjoner ikke krever manuell reimport
Oppdateringer, sikkerhetskopi og trygg reinstallasjon
Før hver paneloppdatering, last ned en sikkerhetskopi fra grensesnittet (database + config). Lagre den utenfor VPS-en. Oppdateringer er vanligvis x-ui og deretter oppdateringsvalget i menyen, eller det samme installasjonsskriptet som oppdager en eksisterende installasjon. Etter en oppdatering, bekreft at systemd-tjenesten er aktiv og at inbounds fortsatt lytter. Hvis du installerer OS-et på nytt, gjenopprett sikkerhetskopien i panelet i stedet for å gjenskape hvert UUID for hånd.
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)/Feilsøking
De fleste feil den første dagen er DNS, porter eller Reality-felt. Gå gjennom denne listen før du installerer panelet på nytt. Å reinstallere uten sikkerhetskopi er slik folk mister hvert klient-UUID.
- Kan ikke åpne webgrensesnittet: sjekk systemctl status x-ui, ss -tulpn og UFW. Bekreft at du inkluderte den hemmelige stien i URL-en.
- Glemt administratorpassord: kjør x-ui på serveren og bruk tilbakestillingsvalget.
- Klienten kobler til og stopper deretter: inbound-port blokkert, eller du aktiverte UDP på en TCP Reality-inbound.
- TLS-feil på panelet: domenets A-post peker ikke hit ennå, eller port 80 er opptatt under ACME.
- Reality-håndtrykk mislykkes: dest/serverNames matcher ikke, eller en annen tjeneste er allerede bundet til 443.
- Høy CPU: for mange inbounds på en 1 vCPU-plan, eller en skanning/flood på en åpen port — sjekk ss og panelets onlineantall.
Sikkerhetsmerknader som faktisk betyr noe
Behandle panelet som produksjonsadminprogramvare. Det kan opprette nye brukere og lese hvert UUID. Begrens hvem som kan nå webporten: hvis du har en stabil kontor-IP, tillat bare den IP-en i UFW for 2053/tcp. Hold SSH på nøkler, ikke passord. Ikke kjør urelaterte offentlige nettsteder på samme IP hvis du bruker Reality på 443 — konkurrerende TLS-stabler på én port er en klassisk kilde til utfall. Roter administratorpassordet hvis et skjermbilde av panelet noensinne har lekket inn i en chat.
- Bare SSH-nøkler; deaktiver passordinnlogging når nøklene virker
- Begrens panelporten i brannmuren når du kan
- Sikkerhetskopier /etc/x-ui fra serveren etter en timeplan
- Ikke del abonnements-URL-er i offentlige Telegram-grupper
- Følg med på disken: logger og trafikkstatistikk vokser på en travel inbound
Praktiske tips
- Én inbound med mange klienter er lettere å drive enn ti nesten identiske inbounds
- Gi klienter navn etter enhet (laptop-anna, phone-ben) slik at trafikkdiagrammer betyr noe
- Hvis du også trenger en reversproxy for et nettsted, legg nettstedet på en annen IP eller en annen port — kjempe ikke med Reality om 443
- Etter hver x-ui-omstart, test én klient før du forlater SSH-økten
- Les endringsloggen før du oppdaterer; hopp over 'latest'-hopp en fredagskveld
Du har nå 3X-UI installert som en systemd-tjeneste, en nedlåst admin-URL, TLS på panelet, en VLESS Reality-inbound, brannmurregler som matcher de portene, og en vane med sikkerhetskopier. Legg til klienter fra inbound-siden, importer lenken på hver enhet, og oppdater panelet bare etter en sikkerhetskopi. Hvis noe går i stykker, er x-ui-menyen på VPS-en gjenopprettingsstien — ikke en full reinstallasjon.