3x-ui README

The project's README from github.com/x4gpanell/3x-ui. As one markdown file: README.md.

3x-ui روی Railway با یک پورت واحد (بدون TCP Proxy)

این ریپازیتوری، 3x-ui رو به همراه یک nginx reverse proxy اجرا می‌کند که هم پنل وب و هم اینباند VLESS/WebSocket شما را از طریق یک پورت واحد (همان پورتی که Railway اختصاص می‌دهد) در دسترس می‌گذارد — دقیقاً مثل معماری RVG.

چرا این کار لازم بود؟

به‌صورت پیش‌فرض، 3x-ui پنل وب را روی یک پورت و هر Inbound را روی پورت دیگری اجرا می‌کند. Railway Public Domain فقط به یک پورت داخلی وصل می‌شود، پس یا پنل در دسترس بود یا Inbound، نه هر دو. این نسخه با اضافه کردن nginx، هر دو را زیر یک پورت مدیریت می‌کند.

مراحل دیپلوی

۱. ریپازیتوری بسازید

یک ریپازیتوری جدید در گیت‌هاب بسازید (خصوصی یا عمومی، فرقی ندارد) و این سه فایل را در ریشه‌ی آن قرار دهید:

۲. در Railway

  1. New Project → Deploy from GitHub repo و همین ریپازیتوری را انتخاب کنید
  2. Railway به‌طور خودکار Dockerfile را تشخیص و بیلد می‌کند
  3. بعد از اتمام دیپلوی، به Settings → Networking بروید و Generate Domain بزنید (فقط همین یک دامنه لازم است، نیازی به Target Port خاص نیست چون nginx مستقیماً روی $PORT گوش می‌دهد)

۳. اولین ورود به پنل

آدرس پنل شما این خواهد بود:

https://دامنه‌شما.up.railway.app/managepanel/

یوزرنیم/پسورد پیش‌فرض 3x-ui را وارد کنید (admin/admin) و حتماً بلافاصله از بخش تنظیمات تغییرش دهید.

۴. ساخت Inbound

در پنل، یک Inbound جدید بسازید با این تنظیمات دقیق:

فیلد مقدار
Protocol VLESS
Listen Port 8080 (این عدد نباید تغییر کند، چون nginx دقیقاً به همین پورت وصل است)
Listen IP خالی یا 0.0.0.0
Network ws
Security none
Path هر مسیر دلخواه، مثلاً /cdn

⚠️ اگر بخواهید پورت Inbound را عددی غیر از 8080 بگذارید، باید داخل فایل nginx.conf.template هم مقدار 127.0.0.1:8080 را با همان عدد جدید هماهنگ کنید و دوباره Push/Deploy کنید.

۵. ساخت لینک کلاینت

vless://UUID@دامنه‌شما.up.railway.app:443?encryption=none&security=tls&sni=دامنه‌شما.up.railway.app&fp=chrome&type=ws&host=دامنه‌شما.up.railway.app&path=%2Fcdn#MyConfig

جای UUID و دامنه‌شما و path را با مقادیر واقعی خودتان جایگزین کنید.

تست سریع (قبل از تست با v2rayNG)

در مرورگر باز کنید:

https://دامنه‌شما.up.railway.app/cdn

باید پیام "Bad Request" ببینید (یعنی درخواست به Xray رسیده). اگر پنل هم به همین شکل جواب داد یعنی مسیر nginx سالم است:

https://دامنه‌شما.up.railway.app/managepanel/

نکات مهم

3x-ui (x4gpanell/3x-ui)

Searching Database…

400 ·GitHub
这是什么?这是一套面向 3x-ui 面板的 Railway 部署配置,添加了 nginx 反向代理,让网页面板和一个 VLESS/WebSocket 入站都能通过 Railway 分配给你部署的那个端口访问。
这是 3x-ui 本体,还是只是围绕它的部署封装?它是围绕 3x-ui 的封装:仓库提供 Dockerfile、nginx.conf.template 和 start.sh 脚本,让 3x-ui 与 nginx 一起运行,把面板流量和入站流量都路由到同一个对外端口。
怎么把它部署到 Railway?把 Dockerfile、nginx.conf.template 和 start.sh 推送到一个新的 GitHub 仓库,然后在 Railway 中选择 New Project,再选 Deploy from GitHub repo 并选中该仓库;Railway 会自动检测 Dockerfile 并构建,之后你在 Settings 下的 Networking 里生成域名(无需指定目标端口,因为 nginx 直接监听 $PORT)。
部署之前我需要准备什么?你需要一个包含这三个文件的 GitHub 仓库(私有或公开均可),以及一个连接到该仓库的 Railway 项目;除此之外不需要其他工具。
部署之后要留意什么?所有入站都必须监听固定的内部端口 8080,因为 nginx 只代理这一个端口;/etc/x-ui 下的面板数据存放在容器的临时文件系统上——重新部署就会被清空,除非你把 Railway Volume 挂载到该路径。
面板的默认登录凭据是什么?要不要改?3x-ui 的默认凭据是 admin/admin,README 强调首次登录后应立即在设置区域修改它们。
为什么不直接在 Railway 上运行 3x-ui,非要加这层 nginx?3x-ui 通常把面板和每个入站分别放在不同的端口上,但 Railway 的 Public Domain 只转发一个内部端口——没有这层 nginx 封装,你只能在面板和代理入站中二选一,无法两者都访问。
用这种方式能创建多个 VLESS 入站吗?可以,只要每个入站都监听同一个内部端口 8080;不同入站可以使用不同的 WebSocket 路径,因为 nginx 只按路径区分它们,而不是按 TCP 端口。
Creator
x4gpanell
Size
<0.1 MB
Stars
400
Updated
CommitSep 27
Age
2mo
Commits · 90 Days