mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2025-01-19 17:21:41 +03:00
44 lines
1.4 KiB
Markdown
44 lines
1.4 KiB
Markdown
# 设计目标
|
||
|
||
- Xray 内核提供了一个平台,支持必要的网络代理功能,在其之上可以进二次开发,以提供更好的用户体验;
|
||
- 以跨平台为首要原则,以减少二次开发的成本;
|
||
|
||
## 架构
|
||
|
||
![Architecture](./framework.png)
|
||
|
||
内核分为三层:应用层、代理层和传输层。
|
||
|
||
每一层内包含数个模块,模块间互相独立,同类型的模块可无缝替换。
|
||
|
||
### 应用层
|
||
|
||
应用层包含一些代理层中常用的功能,这些功能被抽象出来,以便在不同的代理模块中复用。
|
||
|
||
应用层的模块应为纯软件实现,与硬件或平台相关的技术无关。
|
||
|
||
重要模块列表:
|
||
|
||
- Dispatcher: 用于把入站代理所接收到的数据,传送给出站代理;
|
||
- Router: 路由模块,详见 [路由配置](../../config/routing.md);
|
||
- DNS: 内置的 DNS 服务器模块;
|
||
- Proxy Manager: 代理管理器;
|
||
|
||
### 代理层
|
||
|
||
代理层分为两部分:入站代理(Inbound Proxy)和出站代理(Outbound Proxy)。
|
||
|
||
两部分相互独立,入站代理不依赖于某个特定的出站代理,反之亦然。
|
||
|
||
#### 入站代理
|
||
|
||
- 实现 [proxy.Inbound](https://github.com/xtls/Xray-core/blob/main/proxy/proxy.go) 接口;
|
||
|
||
#### 出站代理
|
||
|
||
- 实现 [proxy.Outbound](https://github.com/xtls/Xray-core/blob/main/proxy/proxy.go) 接口;
|
||
|
||
### 传输层
|
||
|
||
传输层提供一些网络数据传输相关的工具模块。
|