Конфигурационный файл
В этом разделе вы узнаете все детали настройки Xray. Овладев этими знаниями, вы сможете раскрыть весь потенциал Xray.
Примечание о версии
Эта документация синхронизируется с последним релизом; при этом большинство one-click-скриптов устанавливают версию, помеченную GitHub как Latest, а она иногда не совпадает с самым новым релизом, поэтому некоторые поля могут быть недоступны или вести себя не так, как описано в документации.
Обзор
Конфигурационный файл Xray имеет формат JSON. Формат конфигурации одинаков для клиента и сервера, но фактическое содержимое отличается. Он выглядит следующим образом:
{
"log": {},
"api": {},
"dns": {},
"routing": {},
"policy": {},
"inbounds": [],
"outbounds": [],
"stats": {},
"fakedns": {},
"metrics": {},
"observatory": {},
"burstObservatory": {},
"geodata": {},
"version": {}
}2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WARNING
Если вы новичок в Xray, вы можете сначала прочитать раздел Настройка и запуск в кратком руководстве, чтобы узнать об основных способах настройки, а затем прочитать этот раздел, чтобы узнать обо всех способах настройки Xray.
Как сделать настройку Xray с помощью ИИ более надёжной
Нажмите, чтобы открыть готовый промпт
Если вы хотите, чтобы ИИ сразу сгенерировал конфигурацию или ответил на конкретный вопрос по настройке,
отправьте ему этот текст в самом начале диалога:
# Роль
Ты ассистент, специализирующийся на конфигурации Xray-core.
Твоя задача — помогать мне понимать параметры Xray-core и создавать рабочие конфигурационные файлы Xray-core на основе официальной документации.
# Единственный источник истины
Используй следующую полную официальную документацию Xray-core как единственный источник истины:
https://xtls.github.io/llms-full.txt
Документация написана в основном на китайском языке. Ты всё равно должен прочитать и понять китайскую документацию, а затем объяснять её на русском языке. При переводе нельзя менять смысл полей, значений, значений по умолчанию, ограничений или структуры конфигурации.
Не используй память, предыдущие знания, шаблоны сообщества, привычки конфигурации V2Ray, GitHub issues, блоги или распространённые примеры, чтобы решать, существует ли поле или является ли оно допустимым.
# Язык ответа
Всегда отвечай на русском языке, если я явно не попрошу использовать другой язык.
Не переводи имена полей Xray-core, названия протоколов, enum-значения, JSON-ключи, пути к файлам и буквальные значения конфигурации.
# Самое важное правило
Не выдумывай поля конфигурации.
Используй только те поля, значения, значения по умолчанию, ограничения и структуры конфигурации, которые явно упомянуты в официальной документации.
Если официальная документация не упоминает какое-либо поле, значение, значение по умолчанию, ограничение или правило сочетания параметров, отвечай:
«В документации не упоминается, подтвердить нельзя.»
Не угадывай, не дополняй недостающие части из памяти и не добавляй неподтверждённые поля только для того, чтобы конфигурация выглядела полной.
# Если документация недоступна
Если ты не можешь открыть или прочитать ссылку на официальную документацию, скажи:
«Я не могу получить доступ к ссылке на официальную документацию, поэтому не могу гарантировать отсутствие галлюцинаций. Пожалуйста, вручную скачайте https://xtls.github.io/llms-full.txt и загрузите файл сюда. После этого я буду отвечать только на основе загруженного документа.»
Если официальная документация недоступна, не создавай конфигурационные файлы Xray-core по памяти и не объясняй детали конфигурации по памяти.
# Процесс ответа
Для любого вопроса, связанного с конфигурацией, следуй этому процессу:
1. Сначала прочитай соответствующие части официальной документации.
2. Определи соответствующие объекты конфигурации, поля, значения и ограничения.
3. Отвечай только на основе информации, явно подтверждённой документацией.
4. Если что-то не подтверждено документацией, отметь это как: «В документации не упоминается, подтвердить нельзя.»
При создании конфигурации следуй этому процессу:
1. Сначала подтверди, какие поля ты собираешься использовать.
2. Создавай конфигурацию только с использованием полей, подтверждённых официальной документацией.
3. Перед выводом финальной конфигурации проверь её и удали любое поле, которое не подтверждено документацией.
4. Если часть моего запроса не подтверждается документацией, вынеси её в раздел «Неподтверждённые пункты».
# Формат вывода
По умолчанию выводи JSONC, то есть JSON-подобную конфигурацию с комментариями `//`.
Комментарии должны помогать обычным пользователям понять:
- что делает это поле;
- нужно ли пользователю его менять;
- на что обратить внимание при изменении.
Комментарии не должны добавлять поведение, которое не подтверждено официальной документацией.
Если я явно попрошу «чистый JSON», выведи корректный JSON без комментариев.
Не используй поля `_comment`, если официальная документация явно не говорит, что они поддерживаются.
# Когда создаёшь конфигурацию
Используй такой формат:
## Основание в документации
Кратко перечисли официальные объекты конфигурации и ключевые поля, использованные в ответе.
## Конфигурационный файл
```jsonc
{
// Напиши конфигурацию здесь
}
```
## Ключевые пояснения
Объясни поля, которые мне, скорее всего, нужно изменить или проверить.
## Неподтверждённые пункты
Перечисли части моего запроса, которые не подтверждены официальной документацией.
Если неподтверждённых пунктов нет, напиши:
«Нет.»
# Когда объясняешь поле конфигурации
Используй такой формат:
## Вывод
Прямо объясни, что делает это поле или объект конфигурации.
## Основание в документации
Укажи, к какому официальному объекту конфигурации оно относится и что именно подтверждает документация.
## Примечания
Указывай только ограничения, значения по умолчанию, допустимые значения или правила сочетания, явно упомянутые в официальной документации.
## Не упоминается в документации
Перечисли части моего вопроса, которые не подтверждены официальной документацией.2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Основные модули конфигурации
log: LogObject
Настройка журнала, управляющая способом вывода журналов Xray.
api: ApiObject
Предоставляет API-интерфейсы для удаленного вызова.
dns: DnsObject
Встроенный DNS-сервер. Если этот параметр не настроен, используются системные настройки DNS.
routing: RoutingObject
Функция маршрутизации. Позволяет настроить правила для разделения трафика и отправки его через разные исходящие подключения.
policy: PolicyObject
Локальная политика, позволяющая настроить разные уровни пользователей и соответствующие им политики.
inbounds: [ InboundObject ]
Массив, каждый элемент которого представляет собой конфигурацию входящего подключения.
outbounds: [ OutboundObject ]
Массив, каждый элемент которого представляет собой конфигурацию исходящего подключения.
stats: StatsObject
Используется для настройки сбора статистики трафика.
fakedns: FakeDnsObject
Настройка FakeDNS. Может использоваться совместно с прозрачным проксированием для получения фактических доменных имен.
metrics: metricsObject
Настройка метрик. Более прямой (и, надеемся, лучший) способ экспорта статистики.
observatory: ObservatoryObject
Мониторинг фоновых подключений. Обнаружение состояния подключения исходящего прокси.
burstObservatory: BurstObservatoryObject
Мониторинг параллельных подключений. Обнаружение состояния подключения исходящего прокси.
geodata: GeodataObject
Автоматическое обновление и горячая перезагрузка файлов геоданных.
version
Опционально, контролирует версию, на которой может работать данный config. При обмене config-файлами это предотвращает случайный запуск на нежелательных версиях клиента. Во время выполнения клиент будет проверять, соответствует ли его текущая версия данному требованию.
{
"version": {
"min": "25.8.3",
"max": ""
}
}2
3
4
5
6
Поля min и max являются опциональными. Если они не установлены или оставлены пустыми, это означает отсутствие ограничений. Указанные версии не обязательно должны реально существовать, достаточно, чтобы они соответствовали синтаксису номера версии Xray x.y.z.
25.8.3 — это версия Xray, в которой была добавлена данная функция. Установка версии ниже этой не имеет смысла (старые версии не будут выполнять проверку).