How to Install VLESS Proxy with Marzban Panel
Complete step-by-step guide on setting up VLESS proxy using Marzban panel - modern, user-friendly management interface with multi-protocol support.

Marzban is a powerful, modern web-based panel for managing Xray proxy servers. Unlike other panels, Marzban offers an intuitive interface, multi-admin support, and comprehensive user management features. This guide will show you how to set up VLESS proxy using Marzban on your Hiddence VPS for secure, censorship-resistant internet access.
What is Marzban?
Marzban is an open-source, Telegram-integrated proxy management panel built specifically for Xray-core. It provides a clean, modern dashboard for creating and managing proxy users, monitoring traffic, and handling subscriptions. Marzban supports VLESS, VMess, Trojan, and Shadowsocks protocols.
Why Choose Marzban?
- Modern Web Interface: Clean, responsive dashboard accessible from any browser
- Multi-Admin Support: Create multiple admin accounts with different permissions
- User Management: Easy creation, modification, and deletion of proxy users
- Traffic Monitoring: Real-time statistics and usage tracking per user
- Subscription Links: Automatic generation of subscription URLs for clients
- Telegram Bot: Built-in bot for user management and notifications
- Multi-Protocol: Supports VLESS, VMess, Trojan, and Shadowsocks
- Docker-Based: Easy installation and updates using Docker
Prerequisites
- A fresh VPS with Ubuntu 22.04 or 24.04 (Hiddence VPS recommended)
- Root or sudo access to the server
- Domain name pointed to your server IP (optional but recommended for TLS)
- Basic command line knowledge
Step 1: Prepare Your Server
First, update your system and install Docker (Marzban runs in Docker containers):
# Update system
apt update && apt upgrade -y
# Install Docker
curl -fsSL https://get.docker.com | sh
# Install Docker Compose
apt install docker-compose -y
# Verify Docker installation
docker --version
docker-compose --versionStep 2: Install Marzban
Download and install Marzban using the official installation script:
# Create directory for Marzban
mkdir -p /opt/marzban
cd /opt/marzban
# Download docker-compose file
wget -O docker-compose.yml https://raw.githubusercontent.com/Gozargah/Marzban/master/docker-compose.yml
# Create .env file for configuration
wget -O .env https://raw.githubusercontent.com/Gozargah/Marzban/master/.env.example
# Edit .env to set admin credentials
nano .env
# Set SUDO_USERNAME and SUDO_PASSWORD
# Start Marzban
docker-compose up -d
# Check if running
docker-compose psStep 3: Access Marzban Dashboard
Open your browser and navigate to your server's IP address on port 8000:
- URL: http://YOUR_SERVER_IP:8000
- Login with the username and password you set in the .env file
- You'll see the Marzban dashboard with options for users, settings, and statistics
- Important: Change the default admin password immediately after first login
Step 4: Configure VLESS Inbound
Set up VLESS protocol in Marzban:
- In the dashboard, go to 'Core Settings' or 'Inbounds'
- Add a new VLESS inbound with these settings:
- Port: 443 (for TLS) or any available port
- Protocol: VLESS
- Network: TCP or WS (WebSocket)
- Security: TLS (if using domain) or Reality
- If using Reality, configure SNI to a popular site like www.microsoft.com
- Save the inbound configuration
Step 5: Create Users and Generate Links
Add proxy users and get connection links:
- Click 'Add User' button in the dashboard
- Set username, traffic limit, and expiration date
- Select the VLESS inbound you created
- Click 'Create' to generate the user
- Copy the subscription link or QR code
- Import the link into your VLESS client (v2rayN, v2rayNG, Hiddify, etc.)
- Test the connection by enabling the proxy
Marzban Best Practices
- Enable Telegram bot integration for easy user management
- Set up SSL certificate for secure dashboard access (use Nginx reverse proxy)
- Regularly backup Marzban database (/opt/marzban/db.sqlite3)
- Monitor user traffic to prevent abuse
- Use Reality protocol for maximum censorship resistance
- Keep Marzban updated: docker-compose pull && docker-compose up -d
- Configure firewall to allow only necessary ports (443, 8000)
- Use strong passwords for admin accounts