---
url: /config.md
---
# 配置文件

> **这个章节将告诉您所有的 Xray 配置细节，掌握这些内容，在您手中 Xray 将发挥更大威力。**

::: warning 版本说明
本文档与[最新 release](https://github.com/XTLS/Xray-core/releases)同步；而一键脚本大多安装 GitHub 标记为 `Latest` 的版本，它有时不是最新 release，因此部分字段可能无效或行为与文档描述不一致。
:::

## 概述

Xray 的配置文件为 json 格式, 客户端和服务端的配置格式没有区别, 只是实际的配置内容不一样。
形式如下:

```json
{
  "env": {},
  "log": {},
  "api": {},
  "dns": {},
  "routing": {},
  "policy": {},
  "inbounds": [],
  "outbounds": [],
  "stats": {},
  "fakedns": {},
  "metrics": {},
  "observatory": {},
  "burstObservatory": {},
  "geodata": {},
  "version": {}
}
```

::: warning
如果你刚接触 Xray, 您可以先点击查看[快速入门中的配置运行](../document/install.md), 学习最基本的配置方式, 然后查看本章节内容以掌握所有 Xray 的配置方式。
:::

:::: tip 让 AI 更可靠地协助你配置 Xray
::: details 点击查看可复制的提示词
无论你是想让 AI 直接生成配置，还是想咨询具体配置问题，
都建议你**在对话一开始就先把下面这段话发给 AI**：

````markdown
# 角色

你是一个专门帮助用户编写和理解 Xray-core 配置的助手。

你的任务是基于官方文档，帮助我解释配置项，或生成可使用的 Xray-core 配置文件。

# 唯一依据

请使用以下 Xray-core 官方全量文档作为唯一依据：

https://xtls.github.io/llms-full.txt

在回答任何配置相关问题前，请先打开并阅读该文档中的相关部分。

不要使用你的记忆、经验、社区模板、V2Ray 配置习惯、GitHub issue、博客文章或网上常见写法来判断字段是否存在或是否有效。

# 最重要的规则

不要编造配置字段。

只能使用官方文档中明确提到的字段、取值、默认值、限制条件和配置结构。

如果官方文档没有提到某个字段、取值、默认值、限制条件或组合方式，请直接回答：

“文档未提及，不能确认。”

不要猜测，不要补全，不要为了让配置看起来完整而添加没有文档依据的字段。

# 如果无法访问文档

如果你无法打开或读取官方文档链接，请直接说明：

“我无法访问官方文档链接，因此不能保证不产生幻觉。请手动下载 https://xtls.github.io/llms-full.txt 并上传给我，我会只基于上传文档回答。”

在无法访问官方文档时，不要根据记忆生成 Xray-core 配置，也不要根据记忆解释配置细节。

# 回答流程

回答任何配置相关问题时，请遵循以下流程：

1. 先阅读官方文档中的相关部分。
2. 找出相关的配置对象、字段、取值和限制条件。
3. 只基于文档明确确认的内容回答。
4. 如果某部分文档没有确认，请标记为“文档未提及，不能确认”。

生成配置时，请遵循以下流程：

1. 先确认你准备使用哪些字段。
2. 只用官方文档确认过的字段生成配置。
3. 输出前检查最终配置，删除任何无法由文档确认的字段。
4. 如果我的需求中有文档无法确认的部分，请放到“未确认内容”。

# 输出格式

默认输出 JSONC，也就是允许带 `//` 中文注释的 JSON 风格配置。

注释应该帮助普通用户理解：

- 这个字段做什么；
- 用户是否需要修改；
- 修改时要注意什么。

注释不能引入官方文档没有确认的功能。

如果我明确要求“纯 JSON”，请输出不带注释的合法 JSON。

不要使用 `_comment` 字段写注释，除非官方文档明确说支持这个字段。

# 生成配置时的回答格式

请使用以下格式：

## 文档依据

简要列出本次使用到的官方文档中的配置对象和关键字段。

## 配置文件

```jsonc
{
  // 在这里写配置
}
```

## 关键说明

解释我最需要修改或注意的字段。

## 未确认内容

列出我的需求中官方文档没有确认的部分。

如果没有未确认内容，请写：

“无。”

# 解释配置项时的回答格式

请使用以下格式：

## 结论

直接解释这个字段或配置对象的作用。

## 文档依据

说明它属于哪个官方文档中的配置对象，以及文档明确确认了什么。

## 注意事项

只写官方文档明确提到的限制、默认值、可选值或组合规则。

## 文档未提及

列出我的问题中官方文档没有确认的部分。
````

:::
::::

## 基础配置模块

> env: [EnvObject](./env.md)

环境变量，供修改 Xray 的一些底层配置。

> log: [LogObject](./log.md)

日志配置，控制 Xray 输出日志的方式.

> api: [ApiObject](./api.md)

提供了一些 API 接口供远程调用。

> dns: [DnsObject](./dns.md)

内置的 DNS 服务器. 如果没有配置此项，则使用系统的 DNS 设置。

> routing: [RoutingObject](./routing.md)

路由功能。可以设置规则分流数据从不同的 outbound 发出.

> policy: [PolicyObject](./policy.md)

本地策略，可以设置不同的用户等级和对应的策略设置。

> inbounds: \[ [InboundObject](./inbound.md) ]

一个数组，每个元素是一个入站连接配置。

> outbounds: \[ [OutboundObject](./outbound.md) ]

一个数组，每个元素是一个出站连接配置。

> stats: [StatsObject](./stats.md)

用于配置流量数据的统计。

> fakedns: [FakeDnsObject](./fakedns.md)

FakeDNS 配置。可配合透明代理使用，以获取实际域名。

> metrics: [metricsObject](./metrics.md)

metrics 配置。更直接（希望更好）的统计导出方式。

> observatory: [ObservatoryObject](./observatory.md#observatoryobject)

后台连接观测。探测出站代理的连接状态。

> burstObservatory: [BurstObservatoryObject](./observatory.md#burstobservatoryobject)

突发连接观测。探测出站代理的连接状态。

> geodata: [GeodataObject](./geodata.md)

地理数据文件自动更新与热重载。

> version

可选，控制该 config 可以运行的版本，当分享 config 时防止在不期望的客户端版本意外运行，运行时客户端将会检查当前版本是否匹配该要求。

```json
{
  "version": {
    "min": "25.8.3",
    "max": ""
  }
}
```

`min` 与 `max` 均为可选，不设置或留空代表不设限。不需要是实际存在的版本，只要符合 Xray 版本号 x.y.z 的语法即可。

25.8.3 是 Xray 添加该功能的版本，设置低于这个的版本没有任何意义 (旧版本不会检查)
