# Trojan

Протокол [Trojan](https://trojan-gfw.github.io/trojan/protocol).

::: danger
Trojan предназначен для работы в правильно настроенном зашифрованном TLS-туннеле.
:::

## InboundConfigurationObject

```json
{
  "clients": [
    {
      "password": "password",
      "email": "love@xray.com",
      "level": 0
    }
  ],
  "fallbacks": [
    {
      "dest": 80
    }
  ]
}
```

> `clients`: \[ [ClientObject](#clientobject) \]

Массив, представляющий группу пользователей, одобренных сервером.

Каждый элемент в массиве - это пользователь [ClientObject](#clientobject).

> `fallbacks`: \[ [FallbackObject](../features/fallback.md) \]

Массив, содержащий ряд конфигураций fallback-маршрутизации (необязательно).
Подробную информацию о настройке fallbacks см. в разделе [FallbackObject](../features/fallback.md#fallbacks-конфигурация).

::: tip
Trojan в Xray имеет полную поддержку fallbacks, конфигурация идентична.
Условия запуска fallback также аналогичны VLESS: длина первого пакета < 58 или 57-й байт не равен `\r` (поскольку Trojan не имеет версии протокола) или ошибка аутентификации.
:::

### ClientObject

```json
{
  "password": "password",
  "email": "love@xray.com",
  "level": 0
}
```

> `password`: string

Обязательный параметр, любая строка.

> `email`: string

Адрес электронной почты, необязательный параметр, используется для идентификации пользователя.

::: danger
Если существует несколько объектов ClientObject, убедитесь, что адреса электронной почты не дублируются.
:::

> `level`: number

Уровень пользователя, для соединения будет использоваться [локальная политика](../policy.md#levelpolicyobject), соответствующая этому уровню пользователя.

Значение userLevel соответствует значению `level` в разделе [policy](../policy.md#policyobject). Если не указано, используется значение по умолчанию - 0.