Try fix prettier format

This commit is contained in:
yuhan6665
2025-04-09 22:39:12 -04:00
parent ab2f511011
commit f9761b7b84
144 changed files with 6723 additions and 4280 deletions
-2
View File
@@ -39,5 +39,3 @@ VMess - это зашифрованный транспортный проток
### [Протокол mKCP](./protocols/mkcp.md)
mKCP - это потоковый транспортный протокол, основанный на [протоколе KCP](https://github.com/skywind3000/kcp), который может передавать любые потоки данных по порядку.
-2
View File
@@ -79,5 +79,3 @@ go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main
::: warning
Убедитесь, что вы используете ту же версию Golang, что и для сборки релиза.
:::
-4
View File
@@ -41,7 +41,3 @@
### Транспортный уровень
Транспортный уровень предоставляет модули инструментов, связанных с передачей сетевых данных.
+1 -4
View File
@@ -117,7 +117,7 @@ Xray-core
- Для имен файлов и каталогов по возможности используйте одно английское слово, например, hello.go.
- Если это невозможно, используйте дефисы для разделения слов в имени каталога и подчеркивания для разделения слов в имени файла, например, hello-world/hello_again.go.
- Тестовый код должен иметь суффикс _test.go.
- Тестовый код должен иметь суффикс \_test.go.
- Для типов используйте нотацию PascalCase, например, ConnectionHandler.
- Сокращения не обязательно писать в нижнем регистре, то есть HTML не нужно писать как Html.
- Для публичных переменных-членов также используйте нотацию PascalCase.
@@ -148,6 +148,3 @@ Xray-core
Если вам нужно использовать диапазон в файле конфигурации, используйте тип `Int32Range`. Для получения значений используйте `.From` и `.To` вместо использования строкового типа (`string`) и последующего ручного разбора.
Метод `.EnsureOrder()` можно использовать для обмена значений From и To, если From больше, чем To (при необходимости).
+5 -9
View File
@@ -29,7 +29,7 @@ mKCP - это протокол, основанный на UDP, все комму
### Пакет данных
| 4 байта | 2 байта | L байт |
|---------------------------------|----------------|------------------|
| ------------------------------- | -------------- | ---------------- |
| Информация для аутентификации A | Длина данных L | Сегментная часть |
Где:
@@ -40,7 +40,7 @@ mKCP - это протокол, основанный на UDP, все комму
### Сегмент данных
| 2 байта | 1 байт | 1 байт | 4 байта | 4 байта | 4 байта | 2 байта | Len байт |
|--------------------|-------------|-----------|--------------------|---------------------|---------------------------------------|-----------|----------|
| ------------------ | ----------- | --------- | ------------------ | ------------------- | ------------------------------------- | --------- | -------- |
| Идентификатор Conv | Команда Cmd | Опция Opt | Временная метка Ts | Порядковый номер Sn | Неподтвержденный порядковый номер Una | Длина Len | Данные |
Где:
@@ -56,8 +56,8 @@ mKCP - это протокол, основанный на UDP, все комму
### Сегмент подтверждения
| 2 байта | 1 байт | 1 байт | 4 байта | 4 байта | 4 байта | 2 байта | Len * 4 байта |
|--------------------|-------------|-----------|----------|------------------------------------------|--------------------|-----------|----------------------------------|
| 2 байта | 1 байт | 1 байт | 4 байта | 4 байта | 4 байта | 2 байта | Len \* 4 байта |
| ------------------ | ----------- | --------- | -------- | ---------------------------------------- | ------------------ | --------- | -------------------------------- |
| Идентификатор Conv | Команда Cmd | Опция Opt | Окно Wnd | Следующий порядковый номер для приема Sn | Временная метка Ts | Длина Len | Подтвержденные порядковые номера |
Где:
@@ -77,7 +77,7 @@ mKCP - это протокол, основанный на UDP, все комму
### Сегмент пульса
| 2 байта | 1 байт | 1 байт | 4 байта | 4 байта | 4 байта |
|--------------------|-------------|-----------|---------------------------------------|------------------------------------------|--------------|
| ------------------ | ----------- | --------- | ------------------------------------- | ---------------------------------------- | ------------ |
| Идентификатор Conv | Команда Cmd | Опция Opt | Неподтвержденный порядковый номер Una | Следующий порядковый номер для приема Sn | Задержка Rto |
Где:
@@ -90,7 +90,3 @@ mKCP - это протокол, основанный на UDP, все комму
- Неподтвержденный порядковый номер Una: тот же, что и Una в сегменте данных
- Следующий порядковый номер для приема Sn: тот же, что и Sn в сегменте подтверждения
- Задержка Rto: задержка, рассчитанная самим удаленным хостом
+7 -11
View File
@@ -42,7 +42,7 @@ Mux.Cool использует симметричный формат переда
### Формат кадра
| 2 байта | L байт | X байт |
|--------------------|------------|-----------------------|
| ------------------ | ---------- | --------------------- |
| Длина метаданных L | Метаданные | Дополнительные данные |
### Метаданные
@@ -58,13 +58,13 @@ Mux.Cool использует симметричный формат переда
Если опция Opt(D) включена, формат дополнительных данных следующий:
| 2 байта | X-2 байта |
|-----------|-----------|
| --------- | --------- |
| Длина X-2 | Данные |
### Создание нового подсоединения (New)
| 2 байта | 1 байт | 1 байт | 1 байт | 2 байта | 1 байт | A байт | 8 байт |
|---------|--------|-----------|------------|---------|--------------|---------|------------------|
| ------- | ------ | --------- | ---------- | ------- | ------------ | ------- | ---------------- |
| ID | 0x01 | Опция Opt | Тип сети N | Порт | Тип адреса T | Адрес A | Global ID (XUDP) |
Где:
@@ -90,13 +90,13 @@ Mux.Cool использует симметричный формат переда
TCP
| 2 байта | 1 байт | 1 байт |
|---------|--------|-----------|
| ------- | ------ | --------- |
| ID | 0x02 | Опция Opt |
UDP
| 2 байта | 1 байт | 1 байт | 1 байт | 2 байта | 1 байт | A байт |
|---------|--------|-----------|------------|---------|--------------|---------|
| ------- | ------ | --------- | ---------- | ------- | ------------ | ------- |
| ID | 0x02 | Опция Opt | Тип сети N | Порт | Тип адреса T | Адрес A |
При поддержании подсоединения, если Opt(D) включена, данные, переносимые этим кадром, должны быть отправлены на целевой хост.
@@ -105,7 +105,7 @@ XUDP добавляет адрес UDP после Opt(D) в том же форм
### Закрытие подсоединения (End)
| 2 байта | 1 байт | 1 байт |
|---------|--------|-----------|
| ------- | ------ | --------- |
| ID | 0x03 | Опция Opt |
При поддержании подсоединения, если Opt(D) включена, данные, переносимые этим кадром, должны быть отправлены на целевой хост.
@@ -113,7 +113,7 @@ XUDP добавляет адрес UDP после Opt(D) в том же форм
### Поддержание соединения (KeepAlive)
| 2 байта | 1 байт | 1 байт |
|---------|--------|-----------|
| ------- | ------ | --------- |
| ID | 0x04 | Опция Opt |
При поддержании соединения:
@@ -127,7 +127,3 @@ XUDP добавляет адрес UDP после Opt(D) в том же форм
В протоколах, ориентированных на целевой адрес, таких как Shadowsocks и VMess, при установлении соединения должен быть указан целевой адрес.
Для обеспечения совместимости протокол Mux.Cool определяет адрес "v1.mux.cool". То есть, если целевой адрес главного соединения совпадает с этим адресом, пересылка осуществляется в режиме Mux.Cool, в противном случае пересылка осуществляется традиционным способом. (Примечание: это внутренняя метка программы, VMess и VLESS не отправляют адрес "v1.mux.cool" в пакетах данных).
+2 -4
View File
@@ -5,11 +5,11 @@ VLESS - это легковесный, не сохраняющий состоя
## Запрос и ответ
| 1 байт | 16 байт | 1 байт | M байт | 1 байт | 2 байта | 1 байт | S байт | X байт |
|------------------|--------------------|-----------------------------------|------------------------------------|---------|---------|------------|--------|----------------|
| ---------------- | ------------------ | --------------------------------- | ---------------------------------- | ------- | ------- | ---------- | ------ | -------------- |
| Версия протокола | Эквивалентный UUID | Длина дополнительной информации M | Дополнительная информация ProtoBuf | Команда | Порт | Тип адреса | Адрес | Данные запроса |
| 1 байт | 1 байт | N байт | Y байт |
|-----------------------------------------------|-----------------------------------|------------------------------------|---------------|
| --------------------------------------------- | --------------------------------- | ---------------------------------- | ------------- |
| Версия протокола, совпадает с версией запроса | Длина дополнительной информации N | Дополнительная информация ProtoBuf | Данные ответа |
Структура VLESS была такой же, как указано выше, еще во второй альфа-версии (ALPHA 2) (BETA - это пятая бета-версия):
@@ -89,5 +89,3 @@ Schedulers не нужно располагать снаружи, как Encrypt
Спасибо <img src="https://avatars2.githubusercontent.com/u/7822648?s=32" width="32px" height="32px" alt="a"/> [@DuckSoft](https://github.com/DuckSoft) за предложение!
Подробнее см. [Предложение по стандарту общих ссылок VMessAEAD / VLESS](https://github.com/XTLS/Xray-core/issues/91)
+8 -11
View File
@@ -44,7 +44,7 @@ VMess использует асимметричный формат, то ест
## Запрос клиента
| 16 байт | X байт | Оставшаяся часть |
|-------------------------------|------------------|------------------|
| ----------------------------- | ---------------- | ---------------- |
| Информация для аутентификации | Часть с командой | Часть с данными |
### Информация для аутентификации
@@ -64,14 +64,14 @@ VMess использует асимметричный формат, то ест
- Вектор инициализации: MD5(X + X + X + X), X = []byte(время генерации информации для аутентификации) (8 байт, Big Endian)
| 1 байт | 16 байт | 16 байт | 1 байт | 1 байт | 4 бита | 4 бита | 1 байт | 1 байт | 2 байта | 1 байт | N байт | P байт | 4 байта |
|------------------|--------------------------------------------|----------------------------|-------------------------|-----------|-----------|----------------------|-----------------|-------------|-----------|--------------|---------|------------------|---------------------|
| ---------------- | ------------------------------------------ | -------------------------- | ----------------------- | --------- | --------- | -------------------- | --------------- | ----------- | --------- | ------------ | ------- | ---------------- | ------------------- |
| Номер версии Ver | Вектор инициализации для шифрования данных | Ключ для шифрования данных | Аутентификация ответа V | Опция Opt | Остаток P | Метод шифрования Sec | Зарезервировано | Команда Cmd | Порт Port | Тип адреса T | Адрес A | Случайные данные | Контрольная сумма F |
Подробности опции Opt: (если бит равен 1, опция включена)
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| X | X | X | X | X | M | R | S |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| --- | --- | --- | --- | --- | --- | --- | --- |
| X | X | X | X | X | M | R | S |
Где:
@@ -112,7 +112,7 @@ VMess использует асимметричный формат, то ест
Если Opt(S) включена, для части с данными используется следующий формат. Фактические данные запроса разбиваются на несколько блоков, каждый из которых имеет следующий формат. После проверки всех блоков сервер пересылает их в соответствии с базовым форматом.
| 2 байта | L байт |
|---------|--------------|
| ------- | ------------ |
| Длина L | Пакет данных |
Где:
@@ -142,7 +142,7 @@ VMess использует асимметричный формат, то ест
Данные заголовка ответа шифруются с помощью AES-128-CFB, вектор инициализации - MD5(вектор инициализации для шифрования данных), ключ - MD5(ключ для шифрования данных). Фактические данные ответа зависят от настроек шифрования.
| 1 байт | 1 байт | 1 байт | 1 байт | M байт | Оставшаяся часть |
|-------------------------|-----------|-------------|-----------------|--------------------|---------------------------|
| ----------------------- | --------- | ----------- | --------------- | ------------------ | ------------------------- |
| Аутентификация ответа V | Опция Opt | Команда Cmd | Длина команды M | Содержимое команды | Фактические данные ответа |
Где:
@@ -160,7 +160,7 @@ VMess использует асимметричный формат, то ест
### Команда динамического порта
| 1 байт | 2 байта | 16 байт | 2 байта | 1 байт | 1 байт |
|-----------------|-----------|----------------------------|---------|----------------------|------------------|
| --------------- | --------- | -------------------------- | ------- | -------------------- | ---------------- |
| Зарезервировано | Порт Port | Идентификатор пользователя | AlterID | Уровень пользователя | Время действия T |
Где:
@@ -173,6 +173,3 @@ VMess использует асимметричный формат, то ест
## Примечания
- Для обеспечения обратной совместимости все зарезервированные поля должны иметь значение 0.