| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- ---
- title: Inbounds & Protocols
- description: Create inbounds in 3x-ui — protocols, transports, traffic reset and expiry, and fallbacks that serve multiple protocols on one port.
- icon: ArrowDownToLine
- ---
- An **inbound** is a listener that accepts client connections on a port using a
- particular protocol and transport. Most of your day-to-day work is creating and
- managing inbounds and the clients inside them.
- ## Create an inbound
- <Steps>
- <Step>
- ### Add an inbound
- Open **Inbounds → Add**, give it a remark, pick a **protocol**, and choose a
- **port** and listen address.
- </Step>
- <Step>
- ### Choose a transport and security
- Pick the transport (TCP, WebSocket, gRPC, HTTPUpgrade, XHTTP, …) and the security
- layer (none, TLS, or REALITY). See [Transports](/docs/config/transports) and
- [REALITY](/docs/config/reality).
- </Step>
- <Step>
- ### Add clients
- Add one or more clients, each with its own credential, limits, and share link.
- See [Clients](/docs/config/clients).
- </Step>
- <Step>
- ### Set traffic limit, expiry, and reset
- Optionally cap total traffic and set an expiry date for the inbound, and choose a
- periodic **traffic reset** schedule: `never` (default), `hourly`, `daily`,
- `weekly`, or `monthly`.
- </Step>
- </Steps>
- ## Supported protocols
- The inbound editor accepts these protocols:
- | Protocol | Notes |
- | ---------------------- | ------------------------------------------------------------------------ |
- | **VLESS** | Lightweight; the basis for REALITY + XTLS-Vision. Recommended. |
- | **VMess** | Older but very widely supported by clients. |
- | **Trojan** | TLS-based; supports XTLS and fallbacks. |
- | **Shadowsocks** | Includes Shadowsocks-2022 (`2022-blake3-*`) ciphers. |
- | **WireGuard** | Modern tunnel. |
- | **Hysteria2** | Selected as `hysteria`; the panel emits `hysteria2://` links. |
- | **HTTP** | HTTP proxy. |
- | **Mixed (SOCKS/HTTP)** | A combined SOCKS + HTTP listener. |
- | **Dokodemo-door / Tunnel** | Port forwarding / traffic redirect. |
- | **MTProto** | Telegram MTProto proxy, served by a bundled `mtg` process (not Xray). |
- <Callout type="info">
- Hysteria2 isn't a separate protocol internally — it's the `hysteria` protocol
- with the transport version set to 2, and the panel generates `hysteria2://`
- share links for it.
- </Callout>
- ## Fallbacks — multiple protocols on one port
- Fallbacks let a single TLS port (e.g. `443`) serve more than one protocol — for
- example VLESS **and** Trojan — by routing unmatched handshakes to a child
- inbound. In 3x-ui, fallbacks are managed in the panel (a master inbound's
- **Fallbacks** list) rather than hand-written into JSON.
- Fallbacks are available only when the master inbound is:
- - **VLESS** or **Trojan**,
- - on the raw **TCP** transport,
- - with **TLS** or **REALITY** security.
- Each fallback rule targets a child inbound and can match on `path`, `alpn`, and
- `dest`. Client share links for a fallback child are automatically rewritten to
- advertise the master's address, port, and TLS.
- ## Not sure which to pick?
- Use the wizard to get a recommendation based on your goals and clients:
- <ProtocolWizard />
- <Callout type="info">
- For censorship resistance with modern clients, **VLESS + REALITY +
- XTLS-Vision** is the usual best choice — continue to
- [REALITY](/docs/config/reality).
- </Callout>
|