multi-node.mdx 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. ---
  2. title: Multi-node & Managed Hosts
  3. description: Manage multiple 3x-ui panels from one master, with API-token or mTLS trust, heartbeats, and per-inbound host overrides for subscriptions.
  4. icon: Boxes
  5. ---
  6. 3x-ui can manage **multiple servers** from a single master panel, and override
  7. how each inbound is advertised in subscriptions with **managed hosts**.
  8. ## Nodes
  9. A **node** is another 3x-ui panel that your master panel manages over the node's
  10. API. The master polls each node and shows its status, versions, CPU/memory,
  11. uptime, and traffic in one place.
  12. ### Add a node
  13. Provide the node's connection details:
  14. | Field | Notes |
  15. | ----------------- | --------------------------------------------------------------------- |
  16. | **Name** | Unique label (e.g. `de-fra-1`). |
  17. | **Scheme** | `https` (default) or `http`. |
  18. | **Address / Port**| The node panel's host and port. |
  19. | **Base path** | The node's web base path. |
  20. | **API token** | A Bearer token created on the node (not needed in mTLS mode). |
  21. | **TLS verify** | `verify` (default), `skip`, `pin` (pin a cert SHA-256), or `mtls`. |
  22. | **Inbound sync** | `all` inbounds, or `selected` by tag. |
  23. | **Outbound tag** | Optionally reach the node **through** a named outbound (egress bridge).|
  24. The master verifies reachability when you add or test a node. It then sends a
  25. **heartbeat** every few seconds, updating the node's status (`online` / `offline`)
  26. and emitting `node.up` / `node.down` events (see the
  27. [Telegram bot](/docs/operations/telegram-bot)).
  28. <Callout type="info">
  29. Nodes are identified by a stable per-panel GUID, so a node keeps its identity
  30. across restarts. A node can itself manage further nodes — the master surfaces
  31. those as read-only **transitive** sub-nodes (Node 1 → Node 2 → Node 3).
  32. </Callout>
  33. ### Mutual TLS (mTLS) between master and node
  34. For the strongest trust, use `tlsVerifyMode = mtls` (requires `https`):
  35. <Steps>
  36. <Step>
  37. ### Get the master's CA
  38. On the master, fetch its node-auth CA certificate (the CA private key never
  39. leaves the panel).
  40. </Step>
  41. <Step>
  42. ### Trust it on the node
  43. Paste that CA into the node's "trusted CA" setting. It takes effect on the node's
  44. next restart.
  45. </Step>
  46. <Step>
  47. ### Switch the node to mTLS
  48. Set the node's TLS verify mode to `mtls`. The master now presents a client
  49. certificate instead of an API token.
  50. </Step>
  51. </Steps>
  52. ## Managed hosts
  53. A **managed host** is an override endpoint attached to an inbound. At
  54. subscription time, each enabled host renders an additional share link / proxy
  55. with its own address, port, TLS, SNI, host header, path, and more — superseding
  56. the older "external proxy" list. Use them to:
  57. - front an inbound through a **CDN** (Cloudflare) with a different address/SNI,
  58. - advertise **multiple domains** or per-region endpoints for one inbound,
  59. - tweak ALPN, fingerprint, ECH, or mux per endpoint.
  60. Each host has a remark (which supports the same
  61. [template variables](/docs/config/share-links#remark-template-variables)), an
  62. enable toggle, a sort order, and can be **excluded from specific subscription
  63. formats** or **scoped to specific nodes**.
  64. <Callout type="info">
  65. Hosts whose address/port point at a CDN let you keep the real server address
  66. private while clients connect through the CDN edge.
  67. </Callout>
  68. ## Related
  69. <Cards>
  70. <Card title="Outbounds & routing" href="/docs/operations/outbounds-routing" description="WARP, NordVPN, outbound subscriptions, and routing." />
  71. <Card title="Subscription" href="/docs/config/subscription" description="How hosts shape subscription output." />
  72. </Cards>