# Xray 的工作模式 ## 单服务器模式 与其它的网络代理工具一样,你需要一台配置了 Xray 的服务器,然后在自己的设备上安装并配置 Xray 客户端,然后即可流畅地访问互联网。 ```mermaid graph LR; A(PC) -.- B(防火墙); B -.-> C(墙外网站); A --> D(Xray/VPS); D --> C; A --> E(墙内网站); ``` 一个 Xray 服务器可同时支持多台设备使用不同的代理协议访问。同时,经过合理的配置,Xray 可以识别并区分需要代理以及不需要代理的流量,直连的流量不需要绕路。 ## 桥接模式 如果你不想在每一台设备上都配置路由,你也可以设置一台中转服务器,用于接收客户端发来的所有流量,然后在服务器中进行转发判断。 ```mermaid graph LR; A(PC) -.-> B(防火墙); B -.-> C(墙外网站); A --> D(墙内 VPS); D --> E(墙外 VPS); E --> C; D --> F(墙内网站); ``` ## 工作原理 在配置 Xray 之前,不妨先来看一下 Xray 的工作原理,以下是单个 Xray 进程的内部结构示意图。多个 Xray 之间相互独立,互不影响。 ```mermaid graph LR; A1(inbound) --> D(Dispatcher / Router / DNS); A2(inbound) --> D; A3(inbound) --> D; A4(inbound) --> D; D --> B1(outbound); D --> B2(outbound); D --> B3(outbound); D --> B4(outbound); ``` - 需要配置至少一个入站连接(Inbound)和一个出站连接(Outbound)才可以正常工作。 - 入站连接负责与客户端(如浏览器)通信: - 入站连接通常可以配置用户认证,如 ID 和密码等; - 入站连接收到数据之后,会交给分发器(Dispatcher)进行分发; - 出站连接负责将数据发给服务器,如另一台主机上的 Xray。 - 当有多个出站连接时,可以配置路由(Routing)来指定某一类流量由某一个出站连接发出。 - 路由会在必要时查询 DNS 以获取更多信息来进行判断。