First Login
Find your generated 3x-ui credentials, reach the panel, enable two-factor auth, and harden it before exposing anything.
After installation, your first job is to log in and secure the panel before exposing anything else.
Reach the panel
The panel is served at:
http://<your-server-ip>:<port>/<web-base-path>The default port is 2053 and the default base path is / — but a script
install randomly generates the username, password, port, and web base
path, so check your actual values.
Find your credentials
A script install prints a credential summary when it finishes and also writes it to a root-only file:
XUI_USERNAME=...
XUI_PASSWORD=...
XUI_PANEL_PORT=...
XUI_WEB_BASE_PATH=...
XUI_ACCESS_URL=...
XUI_API_TOKEN=...
XUI_DB_TYPE=sqliteIf you missed them, use the management tools:
x-ui # menu → 11 (View Current Settings)
x-ui settings # or the one-shot formFor Docker, read the generated credentials from the container logs, or run
docker exec -it <container> x-ui setting -show.
If your panel still uses the default admin / admin (the panel warns when it
does), change it immediately — before creating any inbounds.
Change credentials, port, and path
A non-default port and a long, random web base path make the panel much
harder to find. Change them from Panel Settings in the UI, or from the
x-ui menu:
- 7 — Reset Username & Password (optionally disabling 2FA at the same time)
- 8 — Reset Web Base Path (randomizes it)
- 10 — Change Port
Changing your username or password logs out all existing sessions and, if two-factor auth was on, disables it.
Two-factor authentication (2FA)
3x-ui supports TOTP two-factor auth (compatible with Google Authenticator, Aegis,
etc.). Enable it in Panel Settings — once enabled, the login page asks for a
6-digit code in addition to your password, and turning it on forces everyone to
log in again. You can disable it from the menu's Reset Username & Password
step or with x-ui setting -resetTwoFactor.
Built-in login protection
- Brute-force limiter: after 5 failed logins from the same IP/username within 5 minutes, that combination is blocked for 15 minutes.
- Generic errors: the login page reports "wrong username or password" for both bad credentials and bad 2FA codes, so it leaks nothing.
- Sessions last
sessionMaxAgeminutes (default 360 = 6 hours) and are invalidated when you change credentials. - LDAP can be enabled as an auth fallback in Panel Settings.
Essential hardening checklist
Set strong, unique credentials
Replace the generated (or admin/admin) username and password with strong values.
Use a non-default port and random base path
Move the panel off 2053 and serve it under a long random path.
Enable two-factor authentication
Turn on 2FA so a leaked password alone can't grant access.
Put the panel behind TLS
Use a valid certificate (via the x-ui menu's SSL management, or a reverse
proxy) so the panel is only reachable over HTTPS.
Restrict access with a firewall
Open only the ports you actually need, and consider limiting panel access by IP.
Want the panel on a clean domain with automatic HTTPS? See Reverse proxy. For deeper hardening, see Security.

3x-ui