🚀 VPS ပေါ်တွင် Marzban Panel အလွယ်ဆုံး တပ်ဆင်နည်း (2025 Guide) — အပိုင်း (၁) + (၂)
Marzban ဆိုတာ လက်ရှိအချိန်မှာ လူကြိုက်အများဆုံး VPN Panel တစ်ခုဖြစ်ပါတယ်။ Xray Core ကို အခြေခံထားပြီး အသုံးပြုရ လွယ်ကူပါတယ်။ ဒီစာမျက်နှာမှာ Part(1) Install + SSL + Template + Telegram Bot နဲ့ Part(2) Node ထပ်ချိတ် + Core Setting (Inbound JSON) ကို တစ်ခါတည်း စုပေးထားပါတယ်။
📌 Table of Contents
- အပိုင်း (၁) — Marzban Panel Install + SSL + Template + Telegram Bot
- အပိုင်း (၂) — Marzban Node + Core Setting (Inbound JSON)
✅ အပိုင်း (၁) — Marzban Panel တပ်ဆင်ခြင်း (Install)
- VPS တစ်လုံး (Ubuntu 20.04 နှင့်အထက်)
- Domain (Cloudflare တွင် A record ချိတ်ထားသော Domain)
📥 အဆင့် (၁) - VPS ကို Update ပြုလုပ်ခြင်း
VPS ထဲဝင်ပြီး ပထမဆုံး Update လုပ်ပေးရပါမယ်။
sudo apt update && sudo apt upgrade -y
📥 အဆင့် (၂) - Marzban Script ကို Run ခြင်း
Marzban Official Script ကို အသုံးပြုပြီး Install လုပ်ပါမယ်။
bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install
Error မတက်ရင် မလိုပါဘူး။
curl -fsSL https://get.docker.com | sh
ပြီးလျှင် Docker ကို Start / Enable လုပ်ပါ:
systemctl start docker systemctl enable docker
ပြီးလျှင် အပေါ်က marzban install ကို ပြန်လုပ်လို့ရပါပြီ။ ရှိပြီးသားထပ်သွင်းမလားမေးရင် y နှိပ်ပါ။
Uvicorn running on http://127.0.0.1:8000 အခုလိုပေါ်လာရင် CTRL + C နဲ့ထွက်ပါ။
👤 အဆင့် (၃) - Admin အကောင့် ဖွင့်ခြင်း
Panel ထဲဝင်ဖို့ Admin အကောင့်တစ်ခု တည်ဆောက်ရပါမယ်။
marzban cli admin create
username ကြိုက်ရာထည့်
password ကြိုက်ရာထည့် (စာလုံးမပေါ်ပါ မှန်းရိုက်ပါ) နှစ်ခါရိုက်ရပါမည်
အောက်ကဘာမှမထည့်ချင်ရင် enter ခေါက် ကျော်သွားပါ
marzban panel ထဲဝင်ဖို့ admin account ရပါပြီ
http://127.0.0.1:8000/dashboard
အပေါ်ကလို browser မှာရိုက်ပြီးဝင် marzban panel ကိုဝင်ရပါမယ်။ အခုလိုဝင်နိုင်ဖို့ Window+R cmd ကို ဖွင့်ပါ
ssh -N -L 8000:127.0.0.1:8000 root@Your_vps_ip
အခုလိုရိုက်ပြီး terminal run ပေးထားရပါမယ်
https://your.domain.com:8000/dashboard နဲ့ ကြိုက်တဲ့ browser မှာ ဝင်နိုင်ဖို့ domain တခုလိုအပ်ပါတယ်
🌐 အဆင့် (၄) - Free Domain နှင့် SSL ချိတ်ဆက်ခြင်း
အကောင့်ဖွင့်ရန်:
dpdns account KYC ကို GitHub account နဲ့ချိတ်ပေးရန်လိုနိုင်ပါတယ်။ US လိပ်စာ/ဖုန်းနံပါတ်မရှိရင် အောက်က sample ကိုထည့်နိုင်ပါတယ်:
7180 Ellerson Mill, Circle Mechanicsville 23111, United States
+1-8338692598
Sub free domain ရယူပြီးပါက Cloudflare မှာ domain add ပြီး active လုပ်ပါ။
4.1 DNS Record ထည့်ခြင်း
Cloudflare → DNS → Records တွင် အောက်ပါအတိုင်း ထည့်ပါ:
- Type: A
- Name: (မိမိကြိုက်ရာ subdomain နာမည်)
- Content: (VPS IP Address)
- Proxy status: OFF (မီးခိုးရောင်) ထားပြီး Save ပါ။
4.2 SSL Certificate ထုတ်ယူခြင်း
VPS Terminal တွင် ESSL Script ကို အသုံးပြုပြီး SSL ထုတ်ပါမယ်။
sudo bash -c "$(curl -sL https://raw.githubusercontent.com/erfjab/ESSL/master/essl.sh)" @ --install
ပြီးရင် SSL စထုတ်ပါမယ် (Email / Domain ကို မိမိအချက်အလက် အမှန်ထည့်ပါ):
essl your-email@gmail.com your.domain.com marzban
4.3 Marzban Config (.env) ပြင်ဆင်ခြင်း
Marzban ကို SSL နဲ့ အလုပ်လုပ်စေဖို့ Config ဖိုင်ကို ပြင်ပါမယ်။
marzban edit-env
#UNICORN_SSL_CERTFILE နဲ့ #UNICORN_SSL_KEYFILE ကိုရှာပြီး ရှေ့က # ကိုဖြုတ်ကာ ESSL မှာရထားတဲ့ .pem လမ်းကြောင်းတွေကို ထည့်ပါ:
UNICORN_SSL_CERTFILE = "/var/lib/marzban/certs/your.domain.com/fullchain.pem" UNICORN_SSL_KEYFILE = "/var/lib/marzban/certs/your.domain.com/privkey.pem"
Save (Ctrl+X → Y → Enter) ပြီးလျှင် Restart:
marzban restart
ပြီးလျှင် Browser မှာ https://your.domain.com:8000/dashboard/ နဲ့ Panel ဝင်လို့ရပါပြီ။
🎨 အဆင့် (၅) - Custom Subscription Template
Panel မှ user create ပြီးရလာသော Subscription Link ဖွင့်လိုက်ရင် ဒီဇိုင်းလှလှလေး ပေါ်နေစေဖို့ Template ထည့်ပါမယ်။
sudo wget -N -P /var/lib/marzban/templates/subscription/ https://raw.githubusercontent.com/samimifar/marzban-template/master/src/en/index.html
ပြီးရင် Config မှာ Template သုံးမယ်လို့ ပြောပေးရပါမယ်။
echo 'CUSTOM_TEMPLATES_DIRECTORY="/var/lib/marzban/templates/"' | sudo tee -a /opt/marzban/.env echo 'SUBSCRIPTION_PAGE_TEMPLATE="subscription/index.html"' | sudo tee -a /opt/marzban/.env marzban restart
🎨 Subscription Template (index.html) ကို ပိုလှပအောင် ပြင်ဆင်နည်း
ပိုပြီးလှပအောင် မိမိပုံစံဖြင့် လိုအပ်သလိုပြင်ဆင်လို့ရအောင် Subscription templates ကို ပြင်ဆင်နိုင်ပါတယ်။
VPS ထဲမှာ Template ဖိုင်က ဒီလမ်းကြောင်းထဲမှာရှိပါတယ် —
/var/lib/marzban/templates/subscription/
✅ Step-by-step (SFTP နဲ့ ပြင်နည်း)
- VPS ကို SFTP mode နဲ့ ဝင်ပါ (FileZilla / WinSCP / Termius SFTP စတာတွေနဲ့)
- လမ်းကြောင်းအတိုင်း
/var/lib/marzban/templates/subscription/ကို သွားပါ - အောက်က
index.htmlကို Download လုပ်ပါ (backup အဖြစ်) ✅ - မိမိဖုန်း (QuickEdit) / ကွန်ပျူတာ (VS Code) နဲ့ လိုအပ်သလို ပြင်ပါ
-
ပြင်ပြီးရင် ဖိုင်နာမည်ကို မပြောင်းဘဲ
index.htmlအဖြစ် Save လုပ်ပါ -
VPS ထဲက
/var/lib/marzban/templates/subscription/index.htmlကို အစားထိုး Upload လုပ်ပါ
marzban restart လုပ်ပေးရင်အများအားဖြင့် OK ဖြစ်ပါတယ်။
📦 Ready-made template ကို Download လုပ်ပြီး သုံးချင်ရင်
ကျွန်တော် ပြုလုပ်ထားသော index.html ကို အသုံးပြုချင်ရင်
အောက်က download ၂ ခုထဲက တစ်ခုကို ရွေးပြီး download လုပ်ကာ
VPS ထဲက /var/lib/marzban/templates/subscription/index.html နဲ့ အစားထိုးအသုံးပြုနိုင်ပါတယ်။
index.html ဖြစ်အောင် rename လုပ်ပြီးမှ
/var/lib/marzban/templates/subscription/ ထဲကို upload/replace လုပ်ပါ။
🤖 အဆင့် (၆) - Telegram Bot ချိတ်ဆက်ခြင်း
Config ဖိုင်ကို ပြန်ဖွင့်ပါ:
marzban edit-env
အောက်ပါ key တွေကိုရှာပြီး ရှေ့ဆုံးက # ကိုဖြုတ်ကာ ဖြည့်ပါ (BotFather မှ Token ယူထားပါ):
TELEGRAM_API_TOKEN = "သင့်_Bot_Token_ထည့်ပါ" TELEGRAM_ADMIN_ID = "သင့်_Telegram_ID_ထည့်ပါ" SUB_PROFILE_TITLE = "Yan Naing Lynn VPN" XRAY_SUBSCRIPTION_URL_PREFIX = "https://your.domain.com:8000"
Save ပြီး Restart:
marzban restart
create လုပ်ထားတဲ့ bot ကို start နှိပ်ကြည့်ပါ server info နှင့်အတူ user create လုပ်လို့ရမယ့် function များပါလာမှာပါ
အခုဆိုရင် သင်ဟာ Feature စုံလင်တဲ့ Marzban Panel ကို ကိုယ်ပိုင် VPS ပေါ်မှာ အောင်မြင်စွာ တပ်ဆင်ပြီးပါပြီ။
Browser မှာ
https://your.domain.com:8000/dashboard/
ရိုက်ဝင်ပြီး admin account ထည့် marzban panel ကို Browser မှာသုံးနိုင်ပါပြီ။
🧩 အပိုင်း (၂) — Marzban Node ထပ်ချိတ်ခြင်း + Core Setting (Inbound JSON)
- Marzban-node script run
- Panel ထဲကနေ Add Node လုပ်နည်း (certificate paste)
- Core Setting ထဲမှာ inbound JSON ထည့်နည်း + example JSON များ
📥 အဆင့် (၁) - VPS ကို Update ပြုလုပ်ခြင်း
VPS ထဲဝင်ပြီး ပထမဆုံး Update လုပ်ပေးရပါမယ်။
sudo apt update && sudo apt upgrade -y
📥 အဆင့် (၂) - Marzban-node Script ကို Run ခြင်း
Marzban-node Official Script ကို အသုံးပြုပြီး Install လုပ်ပါမယ်။
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban-node.sh)" @ install
Terminal ထဲမှာ အောက်လိုပေါ်လာနိုင်ပါတယ်:
Please paste the content of the Client Certificate, press ENTER on a new line when finished:
Node setting ထဲမှာ ဖြည့်သွင်းရမယ့် အချက်များ
- Name — ကြိုက်ရာထည့်
- Address — Marzban-node Script run ထားတဲ့ IP ထည့်
- Port / API Port / Usage Ratio — default အတိုင်း
62050/62051/1 - Add this node as a new host for every inbound ရှေ့က box ကို ✅ အမှန်ခြစ်ထားပေးပါ
Certificate ကို Copy/Paste လုပ်နည်း
- အပြာဘောက်ထဲမှ Download certificate ဘေးက မျက်လုံးပုံကိုဖွင့်ပါ
-----BEGIN CERTIFICATE-----မှစပြီး-----END CERTIFICATE-----ထိ အကုန် copy ကူးယူပါ- Add Node နှိပ်ပါ
- Terminal မှာ paste ထည့်ပြီး Enter နှစ်ချက် ခေါက်ပါ
Script က ထပ်မေးနိုင်တဲ့ prompt များ:
Do you want to use REST protocol? (Y/n): Enter the SERVICE_PORT (default 62050): Enter the XRAY_API_PORT (default 62051):
⚙️ Marzban Core Setting (Inbound JSON ထည့်နည်း)
Marzban panel ထဲက စက်သွားပုံ Core Setting ကိုနှိပ်လိုက်ရင် inbound json တွေ ထည့်လို့ရတဲ့ Configuration ကိုတွေ့ရပါမယ်။
အပေါ်ဆုံးပိုင်း (ဥပမာ)
{
"log": { "loglevel": "warning" },
"routing": {
"rules": [
{
"ip": ["geoip:private"],
"outboundTag": "BLOCK",
"type": "field"
}
]
},
"inbounds": [
အောက်ဆုံးပိုင်း (ဥပမာ)
],
"outbounds": [
{ "protocol": "freedom", "tag": "DIRECT" },
{ "protocol": "blackhole", "tag": "BLOCK" }
]
}
"inbounds": [ နဲ့ ] ကြားထဲကို inbound json တွေ ထည့်ပေးရပါမယ်။
တခုထည့်ပြီးတိုင်း comma ( , ) ခံပေးဖို့လိုပါတယ် (နောက်တခု ဆက်ထည့်မယ်ဆိုရင်)။
Shadowsocks TCP inbound (Default ပါပြီးသား)
{
"tag": "Shadowsocks TCP",
"listen": "0.0.0.0",
"port": 1080,
"protocol": "shadowsocks",
"settings": {
"clients": [],
"network": "tcp,udp"
}
}
🔐 VLESS REALITY JSON
{
"tag": "VLESS REALITY",
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.cloudflare.com:443",
"xver": 0,
"serverNames": ["www.cloudflare.com"],
"privateKey": "terminal မှ ရလာသော privatekey ထည့်ရန်",
"shortIds": ["a1b2c3d4"]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http","tls"]
}
}
VLESS REALITY အတွက် private key ယူရန် marzban panel run ထားတဲ့ vps ထဲကို အောက်ပါအတိုင်း run
docker exec -it marzban-marzban-1 xray x25519
"privateKey" နေရာမှာ အစားထိုးပါ။
🧩 VLESS WS TLS JSON
{
"tag": "VLESS WS TLS",
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [],
"decryption": "none"
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/var/lib/marzban/certs/your.domain.com/fullchain.pem",
"keyFile": "/var/lib/marzban/certs/your.domain.com/privkey.pem"
}
]
},
"wsSettings": { "path": "/vless" }
}
}
your.domain.com နေရာမှာ မိမိရဲ့ domain ကိုအစားထိုးပေးပါ။
🧩 VMess WS TLS JSON
{
"tag": "VMess WS TLS",
"listen": "0.0.0.0",
"port": 8443,
"protocol": "vmess",
"settings": { "clients": [] },
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/var/lib/marzban/certs/your.domain.com/fullchain.pem",
"keyFile": "/var/lib/marzban/certs/your.domain.com/privkey.pem"
}
]
},
"wsSettings": { "path": "/vmess" }
}
}
🧩 VMESS + TCP & TROJAN + TCP JSON
{
"tag": "VMESS + TCP",
"listen": "0.0.0.0",
"port": 4427,
"protocol": "vmess",
"settings": { "clients": [] },
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "none"
},
"sniffing": {
"enabled": true,
"destOverride": ["http","tls"]
}
},
{
"tag": "TROJAN + TCP",
"listen": "0.0.0.0",
"port": 9094,
"protocol": "trojan",
"settings": { "clients": [] },
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "none"
},
"sniffing": {
"enabled": true,
"destOverride": ["http","tls"]
}
}
🧩 Trojan TLS JSON
{
"tag": "Trojan TLS",
"listen": "0.0.0.0",
"port": 2053,
"protocol": "trojan",
"settings": { "clients": [] },
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"certificates": [
{
"certificateFile": "/var/lib/marzban/certs/your.domain.com/fullchain.pem",
"keyFile": "/var/lib/marzban/certs/your.domain.com/privkey.pem"
}
]
}
}
}
your.domain.com) ကို မိမိ domain နဲ့အစားထိုးပါ။
🧩 TROJAN + TCP JSON (သီးသန့်)
{
"tag": "TROJAN + TCP",
"listen": "0.0.0.0",
"port": 9094,
"protocol": "trojan",
"settings": { "clients": [] },
"streamSettings": {
"network": "tcp",
"tcpSettings": {},
"security": "none"
},
"sniffing": {
"enabled": true,
"destOverride": ["http","tls"]
}
}
🧩 Host Setting ထဲမှာ ပြင်လို့ရမယ့် Variables (Dynamic Tags)
နောက်တစ်ဆင့်အနေနဲ့ Host setting ထဲမှာ user info တွေကို dynamic ဖြစ်အောင် ပြင်နိုင်ပါတယ်။
Host setting ထဲမှာ {USERNAME} လို့ ထည့်ထားလျှင်
user create လုပ်တုန်းက မိမိပေးထားသော နာမည်ကို VPN/Subscription ထဲမှာ
အလိုအလျောက် ဖော်ပြပေးမှာဖြစ်ပါတယ်။
Example (အသုံးပြုပုံနမူနာ)
📌 {USERNAME} • {PROTOCOL}/{TRANSPORT} • {STATUS_EMOJI}
Data: {DATA_USAGE} / {DATA_LIMIT} (Left: {DATA_LEFT})
Expire: {EXPIRE_DATE} • Days left: {DAYS_LEFT}
Use these variables to make it dynamic
{SERVER_IP}— IP Address of current server{SERVER_IPV6}— IPv6 of current server{USERNAME}— The username of the user{DATA_USAGE}— The current usage of the user{DATA_LEFT}— Remaining data of the user{DATA_LIMIT}— The usage limit of the user{DAYS_LEFT}— Remaining days of the user{EXPIRE_DATE}— Expiry date of the user{JALALI_EXPIRE_DATE}— Expiry date of the user in solar calendar{TIME_LEFT}— Remaining time of the user{STATUS_TEXT}— User status{STATUS_EMOJI}— User status as an emoji (✅, ⌛️, 🪫, ❌, 🔌){PROTOCOL}— Proxy protocol (e.g. VMess){TRANSPORT}— Proxy transport method (e.g. ws)
{...} နဲ့ရေးပါ။
စာလုံးကြီး/စာလုံးသေး (case) မမှားအောင် ထည့်ပေးပါ။