Перейти к содержимому

Конфигурация транспортного уровня

proxies:
- name: "http-opts-example"
type: xxxxx
network: http
http-opts:
method: "GET"
path:
- '/'
- '/video'
headers:
Connection:
- keep-alive

Настройки транспортного уровня http, действуют только когда транспортный уровень - http

Метод HTTP-запроса

Путь HTTP-запроса

Заголовки HTTP-запроса

Настройки транспортного уровня h2, действуют только когда транспортный уровень - h2

Список доменных имен хостов, если указан, клиент выберет случайным образом, сервер будет проверять

Путь HTTP-запроса

Настройки транспортного уровня grpc, действуют только когда транспортный уровень - grpc

Имя сервиса gRPC

gRPC UserAgent

Интервал пульсации gRPC (по умолчанию отключен), единица измерения — секунды.

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

Конфликтует с max-streams.

Минимальное количество мультиплексированных потоков в соединении до открытия нового соединения.

Конфликтует с max-streams.

Максимальное количество мультиплексированных потоков в соединении до открытия нового соединения.

Конфликтует как с max-connections, так и с min-streams.

Настройки транспортного уровня ws, действуют только когда транспортный уровень - ws

Путь запроса

Заголовки запроса

Порог длины первого пакета Early Data

Использовать HTTP upgrade

Включить fast open для HTTP upgrade

Настройки транспортного уровня mkcp, действуют только когда транспортный уровень — mkcp.

Максимальный размер передаваемого блока.

Интервал передачи, в миллисекундах.

Пропускная способность вверх, в MB/s.

Пропускная способность вниз, в MB/s.

Включать ли управление перегрузкой.

Размер буфера записи, в байтах.

Размер буфера чтения, в байтах.

Seed для аутентификации AES-GCM. Оставьте пустым для аутентификации по умолчанию.

Маскировка заголовка пакета. Возможные значения: none/srtp/utp/wechat-video/dtls/wireguard.

Настройки транспортного уровня mekya, действуют только когда транспортный уровень — mekya.

URL сервера Mekya.

Максимальное ожидание агрегации после первого пакета, в миллисекундах.

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

Интервал пустого polling, в миллисекундах.

Размер пула соединений HTTP/2.

Внутренние параметры KCP для Mekya. Поля совпадают с mkcp-opts.

Параметр транспортного уровня xhttp вступает в силу только тогда, когда транспортный уровень — xhttp.

По умолчанию поддерживается только режим h2. Чтобы включить режим h3, необходимо установить параметр alpn: [h3]; чтобы включить режим HTTP/1.1, необходимо установить параметр alpn: [http/1.1].

Путь запроса

Имя хоста

Режим, параметры: auto, stream-one, stream-up или packet-up

Заголовки запроса

Указывает, следует ли отправлять заголовок Content-Type: application/grpc для маскировки под gRPC для запросов stream-up/one.

Заголовки запроса клиента по умолчанию включают Referer: ...?x_padding=XXX..., с длиной по умолчанию от 100 до 1000 байт, рандомизированной для каждого запроса. Сервер проверяет, находится ли она в допустимом диапазоне.

Включает обфускацию заполнения. По умолчанию — false для обратной совместимости.

Ключ, используемый для хранения значений заполнения. Его назначение зависит от x-padding-placement:

  • Имя параметра запроса в URL (если placement — queryInHeader)
  • Имя cookie
  • Имя заголовка HTTP
  • Имя параметра запроса URL

Имя заголовка HTTP. Актуально только если x-padding-placement — header или queryInHeader.

Определяет место размещения значений заполнения. Возможные значения: queryInHeader, cookie, header, query. Действует только при значении x-padding-obfs-mode равном true.

Определяет способ генерации значения заполнения

  • repeat-x: Метод по умолчанию (длинная последовательность из X символов)
  • tokenish: Генерирует случайный токен Base62

Изменяет метод HTTP, используемый для передачи данных восходящего канала. Используйте любой метод, поддерживающий тело запроса (например, PUT, PATCH) и разрешенный CDN.

Расположение идентификатора сессии. Варианты: path, query, cookie, header

Имя ключа для идентификатора сессии (не применяется, если местоположение размещения — path)

Таблица символов для генерации идентификатора сессии. Возможные значения: "", uuid, ALPHABET, Alphabet, BASE36, Base62, HEX, alphabet, base36, hex, number.

Диапазон длины идентификатора сессии. Начальное значение не может быть 0; общее пространство ID должно быть больше 2,1 млрд. Действует только если session-table не пустой или равен uuid.

Расположение порядкового номера. Варианты: path, query, cookie, header. Если session-placement установлено на path, то seq-placement также должно быть установлено на path.

Имя ключа для порядкового номера (не применяется, если место размещения — path).

Место для размещения разделенных фрагментов данных восходящего канала (применимо только в режиме packet-up). Варианты: cookie или header

Базовое имя ключа, используемого для передачи фрагментов данных. Клиент автоматически разбивает данные на несколько частей, а сервер собирает их заново.

Максимальный размер каждого блока данных восходящего канала (в байтах) (применяется только если uplink-data-placement не равен body)

Минимальный: 64 байта

Рекомендуемый:

  • Для размещения cookie: 3072 байта (по умолчанию 3 КБ)
  • Для размещения header: 4096 байт (по умолчанию 4 КБ)

Если не указано, соответствующее значение по умолчанию будет выбрано автоматически на основе uplink-data-placement.

Максимальный объем данных, который может передавать каждый POST-запрос клиента (значение по умолчанию). 1000000 эквивалентно 1 МБ. Это значение должно быть меньше максимального объема, разрешенного HTTP-посредниками, такими как CDN. Сервер также будет отклонять POST-запросы, превышающие это значение.

Минимальный интервал между POST-запросами, инициированными клиентом, на основе одного прокси-запроса. Значение по умолчанию — 30 миллисекунд.

Настройки повторного использования соединений (например, XMUX)

Примечание: В отличие от исходной реализации, этот параметр не имеет значения по умолчанию. Если он не указан, повторное использование соединений не будет включено, то есть каждый раз будет открываться новое базовое соединение.

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

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

Это значение конфликтует с параметром max-concurrency; можно выбрать только один из них.

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

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

По истечении этого времени новые HTTP-запросы не будут назначаться соединению TCP/QUIC, и соединение будет закрыто после закрытия последнего внутреннего HTTP-запроса.

Этот параметр задает интервал в секундах, в течение которого клиент отправляет пакет keep-alive, когда соединение H2/H3 находится в режиме ожидания. Значение по умолчанию — 0, что эквивалентно 45 секундам для Chrome H2 или 10 секундам для quic-go H3. Это единственный параметр в XMUX, который не допускает диапазон значений (характеристика этого параметра — случайность) и допускает отрицательные числа (например, -1 для отключения пакетов keep-alive в режиме ожидания). Рекомендуется оставить значение 0.

Настройки разделения загрузки/выгрузки

Примечание: Этот параметр переопределяет исходную конфигурацию. Если какой-либо параметр не указан, будет использован соответствующий параметр восходящего канала. Поддерживаются только параметры, указанные в примере; параметры вне списка не переопределяются.