---
url: /apranik/configuration/outbound.md
---
# Outbound

An outbound is how traffic leaves: through a proxy server, straight to the
destination, or through a group that picks another outbound.
[Routing](../routing/index.md) decides which outbound a request takes; without a
`routing` section, every request takes the first. Blocking is a
[routing action](../routing/action.md#block), not an outbound.

## Structure

```json
{
  "outbounds": [
    {
      "tag": "proxy",
      "server": "proxy.example.com",
      "server_port": 443,
      "transport": [{ "type": "tcp" }, { "type": "tls" }],
      "protocol": {
        "type": "vless",
        "settings": { "uuid": "b831381d-6324-4d53-ad4f-8cda48b30811" }
      },
      "dns_server": "os",
      "muxcool": {},
      "proxy_request_timing": { "max_delay": "400ms" }
    }
  ],
  "dns": {
    "servers": [{ "tag": "os", "type": "system" }],
    "default_server": "os"
  }
}
```

## Protocols

| Type | Format | Carries |
| --- | --- | --- |
| `socks5` | [SOCKS5](../protocol/socks5.md) | TCP |
| `http` | [HTTP](../protocol/http.md) | TCP |
| `trojan` | [Trojan](../protocol/trojan.md) | TCP and UDP |
| `vless` | [VLESS](../protocol/vless.md) | TCP and UDP |

Built in, made by core rather than a module:

| Type | Format | Carries |
| --- | --- | --- |
| `freedom` | [Freedom](freedom.md) | TCP and UDP, straight to each destination |
| `urltest` | [URLTest](urltest.md), see [groups](groups.md) | what every member carries |
| `fallback` | [Fallback](fallback.md), see [groups](groups.md) | what every member carries |
| `selector` | [Selector](selector.md), see [groups](groups.md) | what every member carries |

`freedom` and the groups take only some of the keys below; their pages say which.

## Fields

### `tag`

string
Required

A name unique among outbounds, used by routing, DNS servers, groups and statistics.

### `server`

address
Required

The proxy server, an IP or a domain. `tls` sends a domain as its SNI, and `ws` and
`httpupgrade` as the `Host`, unless they set their own.

### `server_port`

integer
Required

The proxy server's port.

### `transport`

list of transports
Required

The [transport stack](../transport/index.md) that reaches the server.

### `protocol`

object
Required

`type` and `settings` of one of the [protocols](#protocols).

### `dns_server`

string
Default: the DNS rules' choice

The tag of the [DNS server](../dns/index.md#servers) that resolves `server` when it
is a domain.

### `muxcool`

object
vless

How the client uses Mux.Cool. See [Mux.Cool](../shared/muxcool.md).

### `proxy_request_timing`

object
trojan, vless

When the client sends its proxy request. See
[Proxy request timing](../shared/proxy-request-timing.md).
