# Socks (Mixed)

Реализация стандартного протокола Socks, совместимая с [Socks 4](http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol), [Socks 4a](https://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4A.protocol), Socks 5 и **HTTP**.

::: danger
**Протокол Socks не шифрует передаваемые данные и не подходит для передачи по общедоступным сетям.**
:::

Входящее соединение `Socks` более целесообразно использовать для прослушивания в локальной сети или на локальном компьютере, предоставляя локальные сервисы другим программам.

## InboundConfigurationObject

```json
{
  "auth": "noauth",
  "accounts": [
    {
      "user": "my-username",
      "pass": "my-password"
    }
  ],
  "udp": false,
  "ip": "127.0.0.1",
  "userLevel": 0
}
```

> `auth`: "noauth" | "password"

Метод аутентификации протокола Socks. Поддерживается анонимный метод `"noauth"` и метод с паролем `"password"`.

При использовании метода `password` для HTTP-запросов, отправляемых на входящее соединение, также потребуется указать те же имя пользователя и пароль.

Значение по умолчанию — `"noauth"`.

> `accounts`: \[ [AccountObject](#accountobject) \]

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

Этот параметр действителен, только если для параметра `auth` установлено значение `password`.

Значение по умолчанию — пустой массив.

> `udp`: true | false

Включить ли поддержку протокола UDP.

Значение по умолчанию — `false`.

> `ip`: address

Если включена поддержка UDP, Xray должен знать IP-адрес локального компьютера.

«Локальный IP-адрес» означает, что при установке UDP-соединения клиент может использовать этот IP-адрес для связи с сервером. По умолчанию это локальный IP-адрес, который сервер получает при TCP-соединении. В большинстве случаев это работает корректно, но на системах с NAT это может привести к сбоям. В таких случаях необходимо вручную изменить параметр на правильный публичный IP-адрес.

**Предупреждение**: если на вашей машине настроено несколько IP-адресов, это может повлиять на работу [inbound](../inbound.md#inboundobject), когда для UDP используется `0.0.0.0`.

> `userLevel`: number

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

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

### AccountObject

```json
{
  "user": "my-username",
  "pass": "my-password"
}
```

> `user`: string

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

> `pass`: string

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