Remove QUIC, DomainSocket and global transport from EN/RU (#571)

This commit is contained in:
mmmray
2024-09-03 18:13:23 +02:00
committed by GitHub
parent fae74f958e
commit 76e4a6eba9
9 changed files with 3 additions and 410 deletions
+1 -83
View File
@@ -5,76 +5,6 @@
Транспорт определяет способ передачи данных. Обычно оба конца сетевого подключения должны использовать одинаковый транспорт.
Например, если один конец использует WebSocket, то другой конец также должен использовать WebSocket, иначе соединение не будет установлено.
Настройка транспорта (transport) состоит из двух частей:
1. ~~Глобальные настройки ([TransportObject](#transportobject)) (устарело)~~
2. Локальные настройки ([StreamSettingsObject](#streamsettingsobject)).
- Локальные настройки позволяют указать способ передачи данных для каждого отдельного входящего или исходящего подключения.
- Обычно клиент и сервер должны использовать одинаковый транспорт для соответствующих входящих и исходящих подключений.
Если в настройках указан тип транспорта, но не указаны конкретные параметры, будут использованы настройки из глобальной конфигурации.
<details>
<summary>Глобальные настройки</summary>
## TransportObject (устарело)
`TransportObject` соответствует полю `transport` в конфигурационном файле.
```json
{
"transport": {
"tcpSettings": {},
"kcpSettings": {},
"wsSettings": {},
"httpSettings": {},
"quicSettings": {},
"dsSettings": {},
"grpcSettings": {},
"httpupgradeSettings": {}
}
}
```
> `tcpSettings`: [TcpObject](./transports/tcp.md)
Настройки TCP-подключений.
> `kcpSettings`: [KcpObject](./transports/mkcp.md)
Настройки mKCP-подключений.
> `wsSettings`: [WebSocketObject](./transports/websocket.md)
Настройки WebSocket-подключений.
> `httpSettings`: [HttpObject](./transports/h2.md)
Настройки HTTP/2-подключений.
> `quicSettings`: [QuicObject](./transports/quic.md)
Настройки QUIC-подключений.
> `grpcSettings`: [GRPCObject](./transports/grpc.md)
Настройки gRPC-подключений.
> `httpupgradeSettings`: [HttpUpgradeObject](./transports/httpupgrade.md)
Настройки HTTPUpgrade-подключений.
> `splithttpSettings`: [SplitHttpObject](./transports/splithttp.md)
Настройки SplitHTTP-подключений.
> `dsSettings`: [DomainSocketObject](./transports/domainsocket.md)
Настройки Domain Socket-подключений.
</details>
## StreamSettingsObject
`StreamSettingsObject` соответствует полю `streamSettings` во входящем или исходящем подключении.
@@ -89,8 +19,6 @@
"kcpSettings": {},
"wsSettings": {},
"httpSettings": {},
"quicSettings": {},
"dsSettings": {},
"grpcSettings": {},
"httpupgradeSettings": {},
"splithttpSettings": {},
@@ -116,7 +44,7 @@
}
```
> `network`: "tcp" | "ws" | "h2" | "grpc" | "quic" | "kcp" | "httpupgrade" | "splithttp"
> `network`: "tcp" | "ws" | "h2" | "grpc" | "kcp" | "httpupgrade" | "splithttp"
Тип транспорта, используемый для передачи данных.
Значение по умолчанию - `"tcp"`.
@@ -171,21 +99,11 @@ Reality - это самый безопасный на данный момент
Настройки HTTP/2 для текущего подключения, действуют только при использовании HTTP/2.
Настройки аналогичны глобальным настройкам, описанным выше.
> `quicSettings`: [QUICObject](./transports/quic.md)
Настройки QUIC для текущего подключения, действуют только при использовании QUIC.
Настройки аналогичны глобальным настройкам, описанным выше.
> `grpcSettings`: [GRPCObject](./transports/grpc.md)
Настройки gRPC для текущего подключения, действуют только при использовании gRPC.
Настройки аналогичны глобальным настройкам, описанным выше.
> `dsSettings`: [DomainSocketObject](./transports/domainsocket.md)
Настройки Domain socket для текущего подключения, действуют только при использовании Domain socket.
Настройки аналогичны глобальным настройкам, описанным выше.
> `httpupgradeSettings`: [HttpUpgradeObject](./transports/httpupgrade.md)
Настройки HTTPUpgrade для текущего подключения, действуют только при использовании HTTPUpgrade.
-43
View File
@@ -1,43 +0,0 @@
# DomainSocket
::: danger
Рекомендуется прописать в разделе `listen` файла [inbounds](../inbound.md). В качестве способа передачи можно выбрать TCP, WebSocket, HTTP/2.
В будущем использование DomainSocket может быть прекращено.
:::
DomainSocket использует стандартные доменные сокеты Unix для передачи данных.
Его преимущество заключается в использовании встроенного в операционную систему канала передачи, не занимающего сетевой буфер.
Теоретически, по сравнению с локальной петлей (local loopback), доменный сокет работает немного быстрее.
В настоящее время он доступен только на платформах, поддерживающих доменные сокеты Unix, таких как Linux и macOS. Недоступно в Windows 10 до сборки 17036.
Если в качестве способа передачи указан DomainSocket, то порт и IP-адрес, настроенные во входящем и исходящем прокси, будут недействительны, и вся передача будет осуществляться через DomainSocket.
## DomainSocketObject
`DomainSocketObject` соответствует элементу `dsSettings` конфигурации передачи.
```json
{
"path": "/path/to/ds/file",
"abstract": false,
"padding": false
}
```
> `path`: string
Допустимый путь к файлу.
::: danger
Этот файл не должен существовать до запуска Xray.
:::
> `abstract`: true | false
Является ли сокет абстрактным доменным сокетом, значение по умолчанию `false`.
> `padding`: true | false
Использовать ли padding для абстрактного доменного сокета, значение по умолчанию `false`.
-75
View File
@@ -1,75 +0,0 @@
# QUIC
QUIC (Quick UDP Internet Connection) — это протокол, предложенный Google для многоканальной передачи данных по UDP. Его основные преимущества:
1. Сокращение времени установки соединения (1-RTT или 0-RTT).
2. Многоканальность и отсутствие проблем с блокировкой, как у TCP.
3. Миграция соединений (в основном на стороне клиента): при переходе с Wi-Fi на 4G соединение не разрывается.
QUIC в настоящее время находится в экспериментальной стадии и использует реализацию IETF, которая находится в процессе стандартизации, поэтому совместимость с финальной версией не гарантируется.
- По умолчанию:
- 12-байтовый Connection ID.
- Автоматическое отключение соединения через 30 секунд бездействия (может повлиять на работу некоторых долгоживущих соединений).
## QuicObject
`QuicObject` соответствует элементу `quicSettings` в конфигурации транспорта.
::: danger
Конфигурация на обоих концах соединения должна быть полностью идентичной, иначе соединение установить не удастся.
QUIC требует включения TLS. Если TLS не включён в настройках транспорта, Xray сгенерирует самоподписанный сертификат для использования TLS.
:::
```json
{
"security": "none",
"key": "",
"header": {
"type": "none"
}
}
```
> `security`: "none" | "aes-128-gcm" | "chacha20-poly1305"
Метод шифрования.
Это шифрование применяется к пакетам данных QUIC. Зашифрованные пакеты не могут быть распознаны.
Значение по умолчанию: без шифрования.
> `key`: string
Ключ шифрования.
Может быть любой строкой. Используется только если `security` не равен `"none"`.
> `header`: [HeaderObject](#headerobject)
Настройки маскировки заголовков пакетов.
### HeaderObject
```json
{
"type": "none"
}
```
> `type`: string
Тип маскировки. Допустимые значения:
- `"none"`: значение по умолчанию, маскировка не используется, отправляемые данные не имеют характерных признаков.
- `"srtp"`: маскировка под SRTP-трафик (например, FaceTime).
- `"utp"`: маскировка под uTP-трафик (например, BitTorrent).
- `"wechat-video"`: маскировка под видеозвонки WeChat.
- `"dtls"`: маскировка под DTLS 1.2.
- `"wireguard"`: маскировка под WireGuard (не является настоящим WireGuard).
::: tip
Если ни шифрование, ни маскировка не включены, то пакеты QUIC отправляются в исходном виде и могут быть распознаны другими инструментами QUIC.
Для предотвращения обнаружения рекомендуется включить хотя бы шифрование или маскировку.
:::