RU sync docs (#723)
* RU Docker: Add ghcr.io/xtls/xray-core * RU Sockopt: add happyEyeballs * RU Update transport.md * RU DNS: Add new nonIPQuery "reject" * RU add DNS new features/add tips about localhost DNS * RU TLS: Correct desc of cert hot realod * RU Inbound: Add ports warningdependabot/npm_and_yarn/mermaid-11.7.0
parent
673780fd23
commit
0bd1b0f83d
|
@ -74,6 +74,7 @@ DNS-запросы, отправляемые встроенным DNS-серве
|
|||
"disableCache": false,
|
||||
"disableFallback": false,
|
||||
"disableFallbackIfMatch": false,
|
||||
"useSystemHosts": false,
|
||||
"tag": "dns_inbound"
|
||||
}
|
||||
}
|
||||
|
@ -141,10 +142,12 @@ DNS-запросы, отправляемые встроенным DNS-серве
|
|||
Вы можете указать `clientIp` для всех DNS-серверов в [DnsObject](#dnsobject), а также указать `clientIp` для каждого DNS-сервера в конфигурации [DnsServerObject](#dnsserverobject) (приоритет выше, чем у конфигурации [DnsObject](#dnsobject)).
|
||||
:::
|
||||
|
||||
> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6"
|
||||
> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" | "UseSystem"
|
||||
|
||||
Значение по умолчанию `UseIP` запрашивает как записи A, так и записи AAAA. `UseIPv4` запрашивает только записи A; `UseIPv6` запрашивает только записи AAAA.
|
||||
|
||||
`UseSystem`: при каждом DNS-запросе выполняется проверка системной сети на предмет поддержки IPv6 (и IPv4). Если она поддерживает IPv6 (или IPv4), то адреса IPv6 (или IPv4) также возвращаются, в противном случае — нет.
|
||||
|
||||
Новая функция в Xray-core v1.8.6: `queryStrategy` можно установить отдельно для каждого `DNS` сервера.
|
||||
|
||||
```json
|
||||
|
@ -210,6 +213,8 @@ DNS-запросы, отправляемые встроенным DNS-серве
|
|||
|
||||
`true` отключает кэширование DNS, по умолчанию `false`, то есть кэширование включено.
|
||||
|
||||
Этот параметр не влияет на DNS для `localhost`, который всегда использует системный кэш DNS.
|
||||
|
||||
> `disableFallback`: true | false
|
||||
|
||||
`true` отключает откат DNS-запросов (fallback), по умолчанию `false`, то есть откат включен.
|
||||
|
@ -218,6 +223,10 @@ DNS-запросы, отправляемые встроенным DNS-серве
|
|||
|
||||
`true` отключает откат DNS-запросов (fallback), если сработал список доменов с приоритетным сопоставлением для DNS-сервера, по умолчанию `false`, то есть откат включен.
|
||||
|
||||
> `useSystemHosts`: true | false
|
||||
|
||||
Если установлено значение `true`, системные хосты добавляются к хостам, определённым в конфигурации, при запуске. Значение по умолчанию — `false`.
|
||||
|
||||
> `tag`: string
|
||||
|
||||
Трафик запросов, отправляемых встроенным DNS, за исключением режимов `localhost`, `fakedns`, `TCPL`, `DOHL` и `DOQL`, можно сопоставить в маршрутизации с помощью `inboundTag` по этому тегу.
|
||||
|
@ -231,10 +240,14 @@ DNS-запросы, отправляемые встроенным DNS-серве
|
|||
"port": 5353,
|
||||
"domains": ["domain:xray.com"],
|
||||
"expectedIPs": ["geoip:cn"],
|
||||
"unexpectedIPs": ["geoip:cloudflare"],
|
||||
"skipFallback": false,
|
||||
"clientIP": "1.2.3.4",
|
||||
"queryStrategy": "UseIPv4",
|
||||
"tag": "server-1",
|
||||
"timeoutMs": 4000,
|
||||
"allowUnexpectedIPs": false
|
||||
"disableCache": false,
|
||||
"finalQuery": false,
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -290,14 +303,41 @@ DNS-запросы, отправленные модулем DNS, делятся
|
|||
|
||||
Если этот элемент не настроен, IP-адреса будут возвращены как есть.
|
||||
|
||||
если вы добавите "*" в этот список, исходные IP-адреса все равно будут возвращены, если ни один IP-адрес не совпадет.
|
||||
|
||||
> `unexpectedIPs`: [\[string\]
|
||||
|
||||
Противоположность `expectedIPs`. IP-адрес считается совпавшим тогда и только тогда, когда он не совпадает ни с одним из диапазонов IP-адресов в списке. Другими словами:
|
||||
`expectedIPs = [0.0.0.0/0, ::/0] - unexpectedIPs.`
|
||||
|
||||
если вы добавите "*" в этот список, исходные IP-адреса все равно будут возвращены, если ни один IP-адрес не совпадет.
|
||||
|
||||
> `skipFallback`: true | false
|
||||
|
||||
`true` - этот сервер будет пропущен при выполнении отката DNS-запроса (fallback), по умолчанию `false`, то есть сервер не будет пропущен.
|
||||
|
||||
> `finalQuery`: true | false
|
||||
|
||||
Если `true`, результат запроса возвращается в любом случае (даже если список IP-адресов пуст), и никакой другой запасной вариант (fallback) не будет выполнен.
|
||||
|
||||
> `disableCache`: true | false
|
||||
|
||||
Если `true`, кеш отключается только для этого DNS-сервера.
|
||||
|
||||
Этот параметр не влияет на DNS для `localhost`, который всегда использует системный кеш DNS.
|
||||
|
||||
> `timeoutMs`: number
|
||||
|
||||
Время ожидания DNS-сервера, по умолчанию 4000 мс.
|
||||
Тайм-аут DNS-сервера, по умолчанию 4000 мс.
|
||||
|
||||
> `allowUnexpectedIPs`: bool
|
||||
Этот параметр не влияет на DNS для `localhost`, который всегда использует системный тайм-аут DNS.
|
||||
|
||||
Если включено: когда `expectedIPs` завершит фильтрацию IP-адресов, и если все IP-адреса были отфильтрованы как не соответствующие условиям, то все равно вернуть IP-адреса. В противном случае запрос считается неудачным.
|
||||
> `tag`: string
|
||||
|
||||
Тег этого DNS-сервера. Если он установлен, то будет использоваться как тег входящего соединения для инициации запроса (в нелокальном режиме), переопределяя глобальный параметр тега.
|
||||
|
||||
> `queryStrategy`: "UseIP" | "UseIPv4" | "UseIPv6" | "UseSystem"
|
||||
|
||||
`UseIPv4` запрашивает только записи A; `UseIPv6` запрашивает только записи AAAA. Значение по умолчанию — `UseIP`, которое запрашивает и A, и AAAA записи.
|
||||
|
||||
`UseSystem`: при каждом DNS-запросе выполняется проверка системной сети на предмет поддержки IPv6 (и IPv4). Если поддерживается IPv6 (или IPv4), то адреса IPv6 (или IPv4) также возвращаются, в противном случае — нет.
|
||||
|
|
|
@ -62,6 +62,8 @@
|
|||
Если указан только один порт, Xray будет прослушивать входящие подключения на этом порту.
|
||||
Если указан диапазон портов, то фактическое поведение зависит от настройки `allocate`.
|
||||
|
||||
Обратите внимание, что прослушивание порта — это довольно ресурсоемкая операция. Прослушивание слишком большого диапазона портов может привести к значительному увеличению потребляемых ресурсов и даже нарушить нормальную работу Xray. Как правило, проблемы могут начаться, когда количество прослушиваемых портов приближается к четырехзначным числам. Если вам нужен большой диапазон, рассмотрите возможность использования iptables для перенаправления вместо того, чтобы настраивать его здесь.
|
||||
|
||||
> `protocol`: "dokodemo-door" | "http" | "shadowsocks" | "mixed" | "vless" | "vmess" | "trojan" | "wireguard"
|
||||
|
||||
Название протокола подключения.
|
||||
|
|
|
@ -32,7 +32,9 @@ DNS — это исходящий протокол, который в основ
|
|||
|
||||
> `nonIPQuery`: string
|
||||
|
||||
Управляет запросами, не относящимися к IP-адресам (не A и AAAA). `"drop"` — отклонять, `"skip"` — не обрабатывать встроенным DNS-сервером, а пересылать на целевой сервер. Значение по умолчанию — `"drop"`.
|
||||
Управляет запросами, не относящимися к IP-адресам (не A и AAAA). `"drop"` — отклонять, `"skip"` — не обрабатывать встроенным DNS-сервером, а пересылать на целевой сервер. В отличие от `"drop"`, это позволяет избежать ситуации, когда приложение тратит слишком много времени в ожидании ответа DNS до тайм-аута.
|
||||
|
||||
Значение по умолчанию — `"drop"`.
|
||||
|
||||
> `blockTypes`: array
|
||||
|
||||
|
@ -40,4 +42,6 @@ DNS — это исходящий протокол, который в основ
|
|||
|
||||
Поскольку `nonIPQuery` по умолчанию отклоняет все запросы, не относящиеся к A и AAAA, необходимо установить для него значение `skip`, чтобы этот параметр заработал. Конечно, можно и не менять, а использовать его только для блокировки запросов A или AAAA, чтобы блокировать запросы IPv4/IPv6, но это крайне не рекомендуется. Рекомендуется настроить соответствующие параметры в `queryStrategy` встроенного DNS-сервера.
|
||||
|
||||
Примечание: когда `blockTypes` используется только для блокировки A или AAAA, если `nonIPQuery` установлен в `reject`, то способом блокировки также будет возврат DNS reject, а не отбрасывание запроса.
|
||||
|
||||
## Примеры конфигурации DNS <Badge text="В РАЗРАБОТКЕ" type="warning"/>
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
"tcpFastOpen": false,
|
||||
"tproxy": "off",
|
||||
"domainStrategy": "AsIs",
|
||||
"happyEyeballs": {},
|
||||
"dialerProxy": "",
|
||||
"acceptProxyProtocol": false,
|
||||
"tcpKeepAliveInterval": 0,
|
||||
|
@ -105,7 +106,7 @@ Reality — это самое безопасное на данный момен
|
|||
```json
|
||||
{
|
||||
"serverName": "xray.com",
|
||||
"serverNameToVerify": "",
|
||||
"verifyPeerCertInNames": "",
|
||||
"rejectUnknownSni": false,
|
||||
"allowInsecure": false,
|
||||
"alpn": ["h2", "http/1.1"],
|
||||
|
@ -134,9 +135,11 @@ Reality — это самое безопасное на данный момен
|
|||
В частности, если клиент устанавливает его в IP-адрес, Xray не будет отправлять SNI, и для использования этой функции также необходимо включить `allowInsecure`.
|
||||
:::
|
||||
|
||||
> `serverNameToVerify`: string
|
||||
> `verifyPeerCertInNames`: \[ string \]
|
||||
|
||||
Только для клиента. Используется для проверки SNI сертификата, переопределяя `serverName`, используемый для проверки. Предназначен для таких специальных целей, как domain fronting. Более безопасен, чем изменение `serverName` и включение `allowInsecure`, так как по-прежнему выполняется проверка подписи сертификата. Однако это эксклюзивная функция utls, требующая настройки `fingerprint` для активации utls.
|
||||
Только для клиента. Список SNI, используемый для проверки сертификата (достаточно, чтобы хотя бы один SAN из сертификата находился в этом списке). Этот список переопределит `serverName`, который используется для проверки, и предназначен для особых целей, таких как domain fronting. По сравнению с предыдущим методом изменения `serverName` и включения `allowInsecure`, этот способ более безопасен, так как он по-прежнему выполняет проверку подписи сертификата.
|
||||
|
||||
Специальное значение `"FromMitM"`: при его использовании в список будет дополнительно добавлен SNI из TLS-трафика, расшифрованного входящим соединением `dokodomo-door`.
|
||||
|
||||
> `rejectUnknownSni`: bool
|
||||
|
||||
|
@ -146,6 +149,8 @@ Reality — это самое безопасное на данный момен
|
|||
|
||||
Массив строк, указывающий значения ALPN, указанные во время рукопожатия TLS. Значение по умолчанию: `["h2", "http/1.1"]`.
|
||||
|
||||
Специальное значение: `["FromMitM"]` (когда это единственный элемент) заставит исходящий TLS использовать ALPN из TLS-соединения, расшифрованного входящим `dokodemo-door`.
|
||||
|
||||
> `minVersion`: string
|
||||
|
||||
`minVersion` — это минимально допустимая версия TLS.
|
||||
|
@ -439,7 +444,7 @@ Reality лишь модифицирует TLS, и для реализации н
|
|||
|
||||
```json
|
||||
{
|
||||
"ocspStapling": 3600,
|
||||
"ocspStapling": 0,
|
||||
"oneTimeLoading": false,
|
||||
"usage": "encipherment",
|
||||
"buildChain": false,
|
||||
|
@ -496,15 +501,18 @@ Reality лишь модифицирует TLS, и для реализации н
|
|||
}
|
||||
```
|
||||
|
||||
Сертификат сервера будет автоматически перезагружаться каждые 3600 секунд (то есть каждый час).
|
||||
|
||||
> `ocspStapling`: number
|
||||
|
||||
Интервал обновления OCSP-скрепления, совпадает с интервалом перезагрузки сертификата. Единица измерения: секунды. Значение по умолчанию: `3600`, то есть один час.
|
||||
Интервал обновления OCSP Stapling в секундах, по умолчанию 0. Любое ненулевое значение включит OCSP Stapling и переопределит время горячей перезагрузки сертификата по умолчанию в 3600 секунд (OCSP Stapling выполняется во время перезагрузки).
|
||||
|
||||
> `oneTimeLoading`: true | false
|
||||
|
||||
Загружать только один раз. Если значение равно `true`, то функция горячей перезагрузки сертификата и функция OCSP-скрепления будут отключены.
|
||||
Загружать только один раз, по умолчанию `false`. Если значение `true`, функции горячей перезагрузки сертификата и OCSP Stapling будут отключены.
|
||||
|
||||
::: warning
|
||||
Если значение равно `true`, то OCSP-скрепление будет отключено.
|
||||
Если значение равно `true`, то OCSP-Stapling будет отключено.
|
||||
:::
|
||||
|
||||
> `usage`: "encipherment" | "verify" | "issue"
|
||||
|
@ -573,6 +581,7 @@ Reality лишь модифицирует TLS, и для реализации н
|
|||
"tproxy": "off",
|
||||
"domainStrategy": "AsIs",
|
||||
"dialerProxy": "",
|
||||
"happyEyeballs": {},
|
||||
"acceptProxyProtocol": false,
|
||||
"tcpKeepAliveInterval": 0,
|
||||
"tcpKeepAliveIdle": 300,
|
||||
|
@ -824,3 +833,39 @@ PS: Если трафик домена, например, обычный веб-
|
|||
Значение, которое нужно установить для опции. В примере устанавливается значение bbr.
|
||||
|
||||
Если `type` указан как int, значение должно быть десятичным числом.
|
||||
|
||||
|
||||
> `happyEyeballs`: {}
|
||||
|
||||
Реализация happyEyeballs по RFC-8305 применима только к TCP. Когда целью является доменное имя, она запускает "гонку" между IP-адресами и выбирает первый, с которым удалось установить соединение. Это работает, когда `domainStrategy` установлен на `UseIP`/`ForceIP` (включая их v4/v6/v4v6 версии, но это сокращает список доступных IP-адресов только до v4 или v6, что не рекомендуется).
|
||||
|
||||
::: warning
|
||||
При использовании этой функции не используйте `domainStrategy` для исходящего соединения `Freedom`, так как это приведет к тому, что `Sockopt` будет видеть только конечный, уже выбранный IP-адрес.
|
||||
:::
|
||||
|
||||
```json
|
||||
"happyEyeballs": {
|
||||
"tryDelayMs": 250,
|
||||
"prioritizeIPv6": false,
|
||||
"interleave": 1,
|
||||
"maxConcurrentTry": 4,
|
||||
}
|
||||
```
|
||||
|
||||
> `tryDelayMs`: number
|
||||
|
||||
Интервал времени между каждым запросом "гонки", в миллисекундах. По умолчанию 0 (что означает, что функция отключена), рекомендуемое значение — 250.
|
||||
|
||||
> `prioritizeIPv6`: bool
|
||||
|
||||
Тип первого IP-адреса при сортировке IP-адресов. По умолчанию `false` (то есть IPv4 будет первым).
|
||||
|
||||
> `interleave`: number
|
||||
|
||||
"First Address Family count" из RFC-8305, значение по умолчанию — 1. Этот параметр определяет чередование при сортировке IP-адресов разных версий.
|
||||
|
||||
Например, очередь IP-адресов для набора номера будет отсортирована как 46464646 (при значении 1) или 44664466 (при значении 2) (где 6 — это IPv6-адрес, а 4 — IPv4-адрес).
|
||||
|
||||
> `maxConcurrentTry`: number
|
||||
|
||||
Максимальное количество одновременных попыток. Используется для предотвращения ситуации, когда ядро создает большое количество соединений, если разрешено много IP-адресов и ни одно из соединений не увенчалось успехом. По умолчанию 4, установка значения 0 отключает happyEyeballs.
|
||||
|
|
|
@ -81,14 +81,39 @@ Xray предлагает два способа проверки:
|
|||
|
||||
## Установка с помощью Docker
|
||||
|
||||
- [teddysun/xray](https://hub.docker.com/r/teddysun/xray)
|
||||
- [teddysun/xray](https.hub.docker.com/r/teddysun/xray) Имеет root-права, есть оболочка (shell), совместим со всеми архитектурами, поддерживаемыми Alpine. Скомпилирован и собран на частном сервере dl.lamp.sh. Более удобен в использовании.
|
||||
- [ghcr.io/xtls/xray-core](https.ghcr.io/xtls/xray-core) Не имеет root-прав, нет оболочки (shell), поддерживает большее количество архитектур. Скомпилирован и собран из официального репозитория с поддержкой отслеживания. Удобство принесено в жертву ради более высокой безопасности.
|
||||
|
||||
### Файловая структура образа Docker
|
||||
|
||||
- `/etc/xray/config.json`: файл конфигурации;
|
||||
- `/usr/bin/xray`: основная программа Xray;
|
||||
- `/usr/share/xray/geoip.dat`: файл данных IP;
|
||||
- `/usr/share/xray/geosite.dat`: файл данных доменных имен.
|
||||
|
||||
Образ версии teddysun/xray:
|
||||
|
||||
- `/usr/bin/xray`: Основная программа Xray
|
||||
- `/etc/xray/config.json`: Единый конфигурационный файл (каталог, в котором он находится, является точкой монтирования)
|
||||
- `/usr/share/xray/`: Каталог с файлами ресурсов, содержит файлы геолокационных данных от v2fly
|
||||
- geoip.dat
|
||||
- geosite.dat
|
||||
|
||||
Образ версии ghcr.io/xtls/xray-core:
|
||||
|
||||
- `/usr/local/bin/xray`: Основная программа Xray (владелец root:root, права доступа к файлу 755)
|
||||
- `/usr/local/etc/xray/`: Каталог конфигурационных файлов (точка монтирования) (владелец каталога root:root, права доступа к каталогу 755, права доступа к файлам 644)
|
||||
- 01_api.json
|
||||
- 02_dns.json
|
||||
- 03_routing.json
|
||||
- 04_policy.json
|
||||
- 05_inbounds.json
|
||||
- 06_outbounds.json
|
||||
- 07_transport.json
|
||||
- 08_stats.json
|
||||
- 09_reverse.json
|
||||
- `/usr/local/share/xray/`: Каталог с файлами ресурсов, содержит файлы геолокационных данных от Loyalsoldier (права доступа те же, что и выше)
|
||||
- geoip.dat
|
||||
- geosite.dat
|
||||
- `/var/log/xray/`: Каталог лог-файлов (точка монтирования) (владелец каталога root:root, права доступа 755; владелец файлов 65532:65532, права доступа 600)
|
||||
- access.log
|
||||
- error.log
|
||||
|
||||
# Графические клиенты
|
||||
|
||||
|
|
Loading…
Reference in New Issue