mirror of
https://github.com/p4gefau1t/trojan-go.git
synced 2024-04-21 12:21:34 +00:00
fix docs
This commit is contained in:
@@ -6,7 +6,19 @@ weight: 8
|
||||
|
||||
### 注意,Trojan-GFW版本不支持这个特性
|
||||
|
||||
Trojan-Go支持用户自定义协议栈。在自定义模式下,Trojan-Go将放弃对协议栈的控制,允许用户操作底层协议栈组合。例如,你可以在一层TLS上再建立一层或更多层TLS;或是使用TLS传输Websocket流量,在Websocket层上再建立一层TLS,在第二层TLS上再使用AEAD进行传输,等等。**如果你不了解网络相关知识,请不要尝试使用这个功能。不正确的配置可能导致Trojan-Go无法正常工作,或是导致性能,安全性方面的问题。**
|
||||
Trojan-Go允许高级用户自定义协议栈。在自定义模式下,Trojan-Go将放弃对协议栈的控制,允许用户操作底层协议栈组合。例如
|
||||
|
||||
- 在一层TLS上再建立一层或更多层TLS加密
|
||||
|
||||
- 使用TLS传输Websocket流量,在Websocket层上再建立一层TLS,在第二层TLS上再使用AEAD进行传输
|
||||
|
||||
- 在TCP连接上,使用Shadowsocks的AEAD加密传输Trojan协议
|
||||
|
||||
- 将一个入站Trojan的TLS流量解包后重新用TLS包装为新的出站Trojan流量
|
||||
|
||||
等等。
|
||||
|
||||
**如果你不了解网络相关知识,请不要尝试使用这个功能。不正确的配置可能导致Trojan-Go无法正常工作,或是导致性能和安全性方面的问题。**
|
||||
|
||||
Trojan-Go将所有协议抽象为隧道,每个隧道可能提供客户端,负责发送;也可能提供服务端,负责接受;或者两者皆提供。自定义协议栈即自定义隧道的堆叠方式。
|
||||
|
||||
@@ -20,13 +32,16 @@ Trojan-Go将所有协议抽象为隧道,每个隧道可能提供客户端,
|
||||
|dokodemo | n | n | y | y | y | n |
|
||||
|tproxy | n | n | y | y | y | n |
|
||||
|tls | y | n | y | n | y | y |
|
||||
|trojan | y | n | y | n | y | y |
|
||||
|trojan | y | n | y | y | y | y |
|
||||
|mux | y | n | y | n | y | y |
|
||||
|simplesocks | y | n | y | y | y | y |
|
||||
|shadowsocks | y | n | y | n | y | y |
|
||||
|websocket | y | n | y | n | y | y |
|
||||
|freedom | n | n | y | y | n | y |
|
||||
|socks | y | n | y | y | y | n |
|
||||
|http | y | n | y | n | y | n |
|
||||
|router | y | y | y | y | n | y |
|
||||
|adapter | y | n | y | n | y | n |
|
||||
|
||||
自定义协议栈的工作方式是,定义树/链上节点并分别它们起名(tag)并添加配置,然后使用tag组成的有向路径,描述这棵树/链。例如,对于一个典型的Trojan-Go服务器,可以如此描述:
|
||||
|
||||
@@ -40,11 +55,11 @@ Trojan-Go将所有协议抽象为隧道,每个隧道可能提供客户端,
|
||||
|
||||
- freedom
|
||||
|
||||
对于入站,你可以描述一条链,一棵树或者有向无环图,对于出站,你只能描述一个链。**注意,每条路径必须以不需要下层提供流或包的隧道开始(transport/tproxy/dokodemo等),必须以能向上层提供包和流的隧道终止(trojan/simplesocks/freedom),且必须确认对应隧道是否可作为出站/入站**
|
||||
对于入站,你可以描述一条链,一棵树或者一个有向无环图(DAG),对于出站,你只能描述一个链。**注意,每条路径,必须以不需要下层提供流或包的隧道开始(transport/tproxy/dokodemo等),必须以能向上层提供包和流的隧道终止(trojan/simplesocks/freedom),且必须确认对应隧道是否可作为出站/入站**
|
||||
|
||||
要启用自定义协议栈,将```run_type```指定为custom,此时除```inbound```和```outbound```之外的其他选项将被忽略。
|
||||
|
||||
下面是一个例子,你可以在此基础上插入或减少协议节点。配置文件为简明起见,使用YAML配置,你也可以使用JSON来配置,作用是等价的。
|
||||
下面是一个例子,你可以在此基础上插入或减少协议节点。配置文件为简明起见,使用YAML进行配置,你也可以使用JSON来配置,除格式不同之外,效果是等价的。
|
||||
|
||||
客户端 client.yaml
|
||||
|
||||
@@ -146,6 +161,16 @@ inbound:
|
||||
-
|
||||
- transport
|
||||
- tls
|
||||
- ws
|
||||
- websocket
|
||||
- trojan2
|
||||
```
|
||||
|
||||
outbound:
|
||||
node:
|
||||
- protocol: freedom
|
||||
tag: freedom
|
||||
|
||||
path:
|
||||
-
|
||||
- freedom
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user