This section will tell you all the details of Xray configuration. By mastering these contents, Xray will unleash its full power in your hands.


The configuration file of Xray is in JSON format, and the configuration format for the client and server is the same, except for the actual configuration content. It takes the following form:

  "log": {},
  "api": {},
  "dns": {},
  "routing": {},
  "policy": {},
  "inbounds": [],
  "outbounds": [],
  "transport": {},
  "stats": {},
  "reverse": {},
  "fakedns": {},
  "metrics": {}


If you are new to Xray, you can first click to view configuration and running in the Quick Start guide, to learn the most basic configuration method, and then refer to the contents of this section to master all the configuration methods of Xray.

Basic Configuration Modules


Log configurations, controlling how Xray emits logs.


Configures how Xray provides API interfaces for calling remotely.

dns: DnsObject

Configures the built-in DNS server. System DNS will be used if not configured.

routing: RoutingObject

Configures routing. Specify rules to route connections through different outbounds.

policy: PolicyObject

Local policy configurations, specifying different user levels and corresponding policies.

inbounds: [ InboundObject ]

An array of inbound connection configurations.

outbounds: [ OutboundObject ]

An array of outbound connection configurations.

transport: TransportObject

Configures how Xray establishes and uses network connections to other servers.

stats: StatsObject

Configures traffic statistics.

reverse: ReverseObject

Configures the built-in reverse proxy. You can forward server traffic to the client, effectively achieving reverse proxying.

fakedns: FakeDnsObject

FakeDNS configuration. Can be used with a transparent proxy to obtain the actual domains.

metrics: metricsObject

Metrics configuration. A more straightforward (and hopefully better) way to export metrics.