Powrót do bloga
Sierpień 19, 2026Poradniki

Jak zainstalować panel 3X-UI na VPS

Kompletny, produkcyjny poradnik: instalacja panelu 3X-UI (Xray) na Ubuntu, zabezpieczenie interfejsu WWW, certyfikat TLS, inbound VLESS Reality, użytkownicy i podłączanie klientów na komputerze i telefonie.

Jak zainstalować panel 3X-UI na VPS

3X-UI to panel WWW dla Xray-core. Pozwala zarządzać inboundami (VLESS, VMess, Trojan, Shadowsocks i innymi), wydawać linki subskrypcji, ustawiać limity ruchu i daty ważności oraz oglądać żywe połączenia bez ręcznej edycji JSON. Jeśli masz już VPS, to jeden z najszybszych sposobów na utrzymywalny stos proxy zamiast konfiguracji „na jeden wieczór”, której za pół roku nikt nie odważy się ruszyć.

Poradnik jest napisany pod świeży Ubuntu 22.04 lub 24.04 — typowy obraz Linux Hiddence po pierwszym starcie. Zainstalujemy popularną kompilację MHSanaei 3X-UI, od razu zmienimy wszystkie domyślne sekrety, schowamy panel za HTTPS, otworzymy w firewallu tylko potrzebne porty, utworzymy inbound VLESS + Reality i przejdziemy przez aplikacje klienckie. Jeśli stawiałeś już Marzbana według naszego artykułu, pomysł jest podobny — panel na Xray — ale ścieżka instalacji, układ plików i codzienna praca są inne. Nie mieszaj obu paneli na tym samym serwerze, dopóki naprawdę nie umiesz rozdzielić portów.

Dlaczego 3X-UI zamiast surowego konfigu Xray

Surowy konfig Xray wystarczy przy jednym użytkowniku i jednym inboundzie. Gdy pojawiają się znajomi, rotacja kluczy Reality albo URL subskrypcji, który telefon importuje jednym stuknięciem, panel oszczędza godziny. 3X-UI trzyma użytkowników w lokalnej bazie, czysto restartuje Xray po zmianach i daje zwięzły pulpit ruchu oraz statusu online. Sam z siebie nie jest magiczną warstwą anonimowości: o zachowaniu w sieci decydują lokalizacja VPS, odcisk TLS, typ inboundu i Twoja higiena operacyjna.

  • Interfejs WWW dla inboundów, klientów, ruchu i dat ważności zamiast ręcznego JSON
  • Gotowe linki subskrypcji dla v2rayN, v2rayNG, Streisand, Happ i podobnych klientów
  • Instalacja jedną komendą plus udokumentowana ścieżka aktualizacji
  • Działa na małym VPS (1 vCPU / 1 GB RAM wystarczy do użytku osobistego)
  • Root zostaje u Ciebie — panel nie wysyła konfigów do cudzej chmury

Co potrzebujesz przed startem

Nie pomijaj domeny i firewalla. Panel na HTTP na porcie 2053 z hasłem domyślnym boty znajdują w ciągu godzin. Przygotuj punkty poniżej i połącz się przez SSH jako root (albo użytkownik z sudo).

  • Linux VPS z publicznym adresem IPv4 (zalecany Ubuntu 22.04/24.04)
  • Co najmniej 1 GB RAM i 10 GB dysku; 2 GB jest wygodniejsze, jeśli na serwerze działa jeszcze coś innego
  • Dostęp root lub sudo przez SSH
  • Domena lub subdomena z rekordem A na IP VPS (potrzebna do porządnego certyfikatu panelu)
  • Około 20–30 minut plus czas na DNS, jeśli rekord A właśnie utworzyłeś

Krok 1. Zaktualizuj system i ustaw strefę czasową

Świeży VPS często ma zaległe aktualizacje bezpieczeństwa, a zegar stoi na UTC. Najpierw pakiety, żeby instalator nie kłócił się ze starym OpenSSL albo curl. Strefa czasowa dla samego Xray nie jest krytyczna, ale logi panelu i daty wygaśnięcia certyfikatów czyta się dużo łatwiej.

bash
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.com

Krok 2. Zainstaluj 3X-UI

Oficjalny skrypt instalacji kompilacji MHSanaei 3X-UI pobiera najnowsze wydanie, instaluje Xray-core, tworzy usługę systemd i wypisuje URL pierwszego logowania. Przeczytaj wyjście uważnie: jest tam losowa ścieżka oraz wygenerowany login i hasło. Skopiuj je od razu do menedżera haseł. Jeśli skrypt zapyta o port panelu, zostaw 2053 albo wybierz wolny wysoki port — zapamiętaj go na krok z firewallem.

bash
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 on
Nie zamykaj tej sesji SSH. Jeśli wytniesz się z panelu, menu x-ui na serwerze zresetuje hasło administratora bez reinstalacji.

Krok 3. Pierwsze logowanie i natychmiastowe utwardzenie

Otwórz URL wypisany przez instalator, zwykle http://YOUR_IP:2053/<losowa-ścieżka>. Zaloguj się wygenerowanymi danymi, potem wejdź w Panel Settings (albo Configuration). Zmień nazwę użytkownika i hasło na unikalne. Jeśli panel pozwala zmienić bazową ścieżkę WWW — zrób to: długa losowa ścieżka obcina ogromną część skanów. Ustaw port nasłuchu, jeśli chcesz coś innego niż 2053. Zapisz i zrestartuj panel z UI albo przez systemctl restart x-ui, potem zaloguj się ponownie pod nowym URL.

Następnie włącz uwierzytelnianie dwuskładnikowe, jeśli Twoja kompilacja to oferuje, i wyłącz nieużywane szablony inboundów. W ustawieniach Xray zostaw wersję rdzenia, która przyszła z panelem, chyba że masz konkretny powód, by przypiąć inną kompilację. Nie wystawiaj panelu na 80/443, jeśli te porty zajmie później Reality albo reverse proxy — wybierz jedną strategię i się jej trzymaj.

  • Natychmiast zamień wygenerowany login administratora
  • Zachowaj tajną ścieżkę WWW; nie przenoś panelu na /
  • Wolisz niestandardowy port panelu i zapisz go
  • Nigdy nie używaj tego hasła w innych usługach

Krok 4. Certyfikat TLS dla panelu

Przeglądarki ostrzegają przy HTTP, a hasło administratora jawnym tekstem w sieci publicznej to zły pomysł. 3X-UI potrafi zamówić certyfikat Let's Encrypt, jeśli port 80 jest wolny i domena wskazuje na ten VPS. W panelu otwórz sekcję certyfikatu / SSL, wpisz panel.example.com i zamów cert. Jeśli port 80 jest już zajęty, użyj przepływu DNS-01 albo postaw Caddy/Nginx z przodu i zrób reverse proxy na 127.0.0.1:2053.

bash
# 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
# }
Certyfikat panelu dotyczy wyłącznie interfejsu WWW. VLESS Reality ma inną historię TLS (kamufluje się jako inna witryna) i nie używa tego pliku Let's Encrypt do ruchu klientów.

Krok 5. Utwórz inbound VLESS Reality

W Inbounds utwórz nowy inbound. Solidny domyślny wybór dla wielu sieci to VLESS z Reality i TCP. Wybierz port inny niż port panelu — 443 jest częsty, jeśli nic innego tam nie słucha; w przeciwnym razie wysoki port TCP i ten sam numer w firewallu. Wygeneruj UUID pierwszego klienta, pary kluczy Reality w UI i ustaw dest / serverNames na legalny cel, który wolno Ci naśladować (znaną witrynę z TLS 1.3). Zapisz inbound i potwierdź, że Xray przeładował się bez błędów w logach panelu.

Potem dodawaj kolejnych klientów na tym samym inboundzie: każdy użytkownik dostaje UUID, opcjonalny tag e-mail oraz opcjonalny limit ruchu lub czasu. Kopiuj link połączenia albo URL subskrypcji z wiersza użytkownika. Nie wrzucaj tych linków na publiczne czaty — to równoważnik hasła.

bash
# 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 -f

Krok 6. Firewall — tylko potrzebne porty

Na Ubuntu wystarczy UFW. Najpierw zezwól na SSH, żeby się nie zablokować, potem port panelu i port inboundu. Jeśli zamawiasz certyfikat Let's Encrypt z panelu, na czas wydania zezwól też na 80/tcp. Reality na 443 potrzebuje 443/tcp (i nie panelu na tym samym porcie).

bash
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 verbose

Podłączanie klientów

W Windows v2rayN importuje link VLESS ze schowka. Na Androidzie v2rayNG albo podobny klient Xray robi to samo z kodu QR. Na iOS użyj klienta z obsługą VLESS Reality (na przykład Streisand albo Happ, zależnie od tego, co jest dostępne w Twoim regionie). Po imporcie włącz profil i sprawdź listę online w panelu. Jeśli klient milczy, zwykle winny jest zły port, UDP włączone na inboundzie tylko TCP, serverName Reality, który nie zgadza się z dest, albo lokalny firewall laptopa.

  • Windows: v2rayN — import linku VLESS, routing globalny albo według reguł
  • Android: v2rayNG — skan QR ze strony użytkownika w panelu
  • macOS / iOS: klient z VLESS + Reality; wklej ten sam link
  • URL subskrypcji: dodaj go w kliencie, żeby rotacja UUID nie wymagała ręcznego importu

Aktualizacje, kopia zapasowa i bezpieczna reinstalacja

Przed każdą aktualizacją panelu pobierz kopię zapasową z UI (baza + konfig) i trzymaj ją poza VPS. Aktualizacje zwykle idą przez x-ui i opcję update w menu albo ten sam skrypt instalacyjny, który wykrywa istniejącą instalację. Po aktualizacji potwierdź, że usługa systemd jest aktywna i inboundy nadal nasłuchują. Jeśli reinstaluujesz OS, przywróć kopię w panelu zamiast ręcznie odtwarzać każdy UUID.

bash
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)/

Rozwiązywanie problemów

Większość awarii pierwszego dnia to DNS, porty albo pola Reality. Przejdź tę listę, zanim reinstaluujesz panel. Reinstalacja bez kopii to sposób, by stracić każdy UUID klienta.

  • Nie otwiera się interfejs WWW: sprawdź systemctl status x-ui, ss -tulpn i UFW. Upewnij się, że w URL jest tajna ścieżka.
  • Zapomniałeś hasła administratora: uruchom x-ui na serwerze i użyj opcji resetu.
  • Klient łączy się i zawisa: port inboundu zablokowany albo włączone UDP na TCP Reality.
  • Błędy TLS panelu: rekord A jeszcze tu nie wskazuje albo port 80 zajęty podczas ACME.
  • Handshake Reality nie przechodzi: niezgodność dest/serverNames albo inna usługa już zajmuje 443.
  • Wysokie CPU: za dużo inboundów na planie 1 vCPU albo skan/flood na otwartym porcie — sprawdź ss i liczbę online w panelu.

Uwagi o bezpieczeństwie, które naprawdę mają znaczenie

Traktuj panel jak produkcyjne oprogramowanie administracyjne. Może tworzyć użytkowników i czytać każdy UUID. Ogranicz, kto dosięgnie portu WWW: jeśli masz stałe IP biura, w UFW dla 2053/tcp zezwól tylko na nie. SSH na kluczach, nie na hasłach. Nie prowadź niezwiązanych publicznych witryn na tym samym IP, jeśli Reality siedzi na 443 — konkurujące stosy TLS na jednym porcie to klasyka awarii. Zmień hasło administratora, jeśli zrzut panelu kiedykolwiek wyciekł na czat.

  • Tylko klucze SSH; wyłącz logowanie hasłem, gdy klucze działają
  • Ogranicz port panelu w firewallu, gdy możesz
  • Kopiuj /etc/x-ui poza serwer według harmonogramu
  • Nie udostępniaj URL subskrypcji w publicznych grupach Telegram
  • Pilnuj dysku: logi i statystyki ruchu rosną na ruchliwym inboundzie

Praktyczne wskazówki

  • Jeden inbound z wieloma klientami jest łatwiejszy w obsłudze niż dziesięć niemal identycznych
  • Nazwij klientów według urządzeń (laptop-anna, telefon-ben), żeby wykresy ruchu coś znaczyły
  • Jeśli potrzebujesz też reverse proxy dla witryny, daj jej inne IP albo inny port — nie walcz z Reality o 443
  • Po każdym restarcie x-ui przetestuj jednego klienta, zanim zamkniesz sesję SSH
  • Czytaj changelog przed aktualizacją; nie skacz na latest w piątkowy wieczór

Masz teraz 3X-UI jako usługę systemd, zamknięty URL administratora, TLS na panelu, inbound VLESS Reality, reguły firewalla zgodne z tymi portami i nawyk kopii zapasowej. Dodawaj klientów ze strony inboundu, importuj link na każdym urządzeniu i aktualizuj panel dopiero po kopii. Jeśli coś padnie, ścieżka odzyskania to menu x-ui na VPS — nie pełna reinstalacja.