mirror of
https://github.com/p4gefau1t/trojan-go.git
synced 2024-04-21 12:21:34 +00:00
deploy: b5b7845408
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
+18
-52
@@ -30,7 +30,7 @@
|
||||
<meta itemprop="name" content="国内直连和广告屏蔽">
|
||||
<meta itemprop="description" content="注意,Trojan-GFW版本不支持这个特性 Trojan-Go内建的路由模块可以帮助你实现国内直连,即客户端对于国内网站不经过代理,直接连接">
|
||||
|
||||
<meta itemprop="wordCount" content="815">
|
||||
<meta itemprop="wordCount" content="620">
|
||||
<meta itemprop="image" content="https://p4gefau1t.github.io/trojan-go/images/og-image.png"/>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<span style="color:#e6db74">"your_password"</span>
|
||||
],
|
||||
<span style="color:#f92672">"ssl"</span>: {
|
||||
<span style="color:#f92672">"sni"</span>: <span style="color:#e6db74">"your_domain_name"</span>
|
||||
<span style="color:#f92672">"sni"</span>: <span style="color:#e6db74">"your-domain-name.com"</span>
|
||||
},
|
||||
<span style="color:#f92672">"mux"</span> :{
|
||||
<span style="color:#f92672">"enabled"</span>: <span style="color:#66d9ef">true</span>
|
||||
@@ -75,65 +75,31 @@
|
||||
<span style="color:#f92672">"router"</span>:{
|
||||
<span style="color:#f92672">"enabled"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"bypass"</span>: [
|
||||
<span style="color:#e6db74">"geosite:cn"</span>,
|
||||
<span style="color:#e6db74">"geoip:cn"</span>,
|
||||
<span style="color:#e6db74">"geoip:private"</span>
|
||||
<span style="color:#e6db74">"geoip:private"</span>,
|
||||
<span style="color:#e6db74">"geosite:cn"</span>,
|
||||
<span style="color:#e6db74">"geosite:geolocation-cn"</span>
|
||||
],
|
||||
<span style="color:#f92672">"block"</span>: [
|
||||
<span style="color:#e6db74">"geosite:category-ads"</span>
|
||||
],
|
||||
<span style="color:#f92672">"proxy"</span>: [
|
||||
<span style="color:#e6db74">"geosite:geolocation-!cn"</span>
|
||||
]
|
||||
}
|
||||
}
|
||||
</code></pre></div><p>所需要的geoip.dat和geosite.dat已经包含在release的压缩包中,直接使用即可。它们来自v2ray的<a href="https://github.com/v2ray/domain-list-community">domain-list-community</a>和<a href="https://github.com/v2ray/geoip">geoip</a>。</p>
|
||||
<p>这个配置文件激活了router模块,使用的是白名单的模式,当匹配到中国大陆的ip或域名时,将使用直接连接,否则使用trojan代理进行连接。</p>
|
||||
<p>你也可以配置自己的列表文件,列表文件每一行是一个域名或者IP子网(CIDR)。例如,你想要屏蔽所有example.com域名以及其子域名,以及192.168.1.0/24,只需要编写一个txt文件</p>
|
||||
</code></pre></div><p>这个配置文件激活了router模块,使用的是白名单的模式,当匹配到中国大陆或者局域网的IP/域名时,直接连接。如果是广告运营商的域名,则直接断开连接。</p>
|
||||
<p>所需要的数据库geoip.dat和geosite.dat已经包含在release的压缩包中,直接使用即可。它们来自v2ray的<a href="https://github.com/v2ray/domain-list-community">domain-list-community</a>和<a href="https://github.com/v2ray/geoip">geoip</a>。你可以使用如<code>geosite:cn</code>,<code>geosite:bilibili</code>的形式来指定某一类域名,使用如<code>geoip:cn</code>,<code>geoip:private</code>的形式来指定某一类IP。所有可用的tag可以在<a href="https://github.com/v2ray/domain-list-community">domain-list-community</a>仓库中找到。</p>
|
||||
<p>你也可以配置自己的列表文件,列表文件每一行是一个域名或者IP子网(CIDR)。例如,想要屏蔽所有example.com域名以及其子域名,以及192.168.1.0/24,只需要编写一个txt文件</p>
|
||||
<p>test_list.txt</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">example.com
|
||||
192.168.1.0/24
|
||||
</code></pre></div><p>然后在block字段中填入该文件名</p>
|
||||
<p>同时geosite中也含有广告提供商的域名,可以通过"geosite:category-ads"指定屏蔽它们。下面这个例子使用了一个列表文件,和geosite的category-ads标签,对相关连接进行屏蔽</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"><span style="color:#e6db74">"router"</span><span style="color:#960050;background-color:#1e0010">:</span>{
|
||||
<span style="color:#f92672">"enabled"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"bypass"</span>: [
|
||||
<span style="color:#e6db74">"geosite:cn"</span>,
|
||||
<span style="color:#e6db74">"geoip:cn"</span>,
|
||||
<span style="color:#e6db74">"geoip:private"</span>
|
||||
],
|
||||
<span style="color:#f92672">"block"</span>: [
|
||||
<span style="color:#e6db74">"test_list.txt"</span>,
|
||||
<span style="color:#e6db74">"geosite:category-ads"</span>
|
||||
],
|
||||
}
|
||||
</code></pre></div><p>下面是完整的路由策略设置</p>
|
||||
<p>路由策略有三种</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Proxy 代理。将请求通过TLS隧道进行代理,由trojan服务器和目的地址进行连接。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Bypass 绕过。直接在本地和目的地址进行连接。</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Block 封锁。不代理请求,直接关闭连接。</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"><span style="color:#e6db74">"router"</span><span style="color:#960050;background-color:#1e0010">:</span> {
|
||||
<span style="color:#f92672">"enabled"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"bypass"</span>: [
|
||||
<span style="color:#e6db74">"geoip:tag1"</span>,
|
||||
<span style="color:#e6db74">"geosite:tag2"</span>,
|
||||
<span style="color:#e6db74">"bypass_list1.txt"</span>,
|
||||
<span style="color:#e6db74">"bypass_list2.txt"</span>
|
||||
],
|
||||
<span style="color:#f92672">"block"</span>: [
|
||||
<span style="color:#e6db74">"block_list.txt"</span>
|
||||
],
|
||||
<span style="color:#f92672">"proxy"</span>: [
|
||||
<span style="color:#e6db74">"proxy_list.txt"</span>
|
||||
]
|
||||
}
|
||||
</code></pre></div><p>其中<code>bypass</code>,<code>block</code>, <code>proxy</code>字段中填入相应的列表文件或者geo数据库tag。列表文件每行是一个域名或者IP地址段(CIDR)。geo数据库geoip和geosite为IP数据库和域名数据库。一旦匹配,则执行相应策略。</p>
|
||||
<p>更详细的说明参考完整的配置文件。</p>
|
||||
</code></pre></div><p>然后在修改上面的block选项,添加一行指定该文件名即可</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json"><span style="color:#e6db74">"block"</span><span style="color:#960050;background-color:#1e0010">:</span> [
|
||||
<span style="color:#e6db74">"geosite:category-ads"</span>,
|
||||
<span style="color:#e6db74">"test_list.txt"</span>
|
||||
]
|
||||
</code></pre></div><p>更详细的说明参考"完整的配置文件"一节。</p>
|
||||
<div class="edit-meta">
|
||||
|
||||
<br><a href="https://github.com/p4gefau1t/trojan-go/docs/edit/master/content/advance/router.md" class="edit-page"><i class="fas fa-pen-square"></i> Edit on GitHub</a></div><nav class="pagination"><a class="nav nav-prev" href="https://p4gefau1t.github.io/trojan-go/advance/websocket/" title="使用Websocket进行CDN转发和抵抗中间人攻击"><i class="fas fa-arrow-left" aria-hidden="true"></i> Prev - 使用Websocket进行CDN转发和抵抗中间人攻击</a>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
+15
-8
@@ -30,7 +30,7 @@
|
||||
<meta itemprop="name" content="正确配置Trojan-Go">
|
||||
<meta itemprop="description" content="下面将介绍如何正确配置Trojan-Go以完全隐藏你的代理节点特征。 在开始之前,你需要 一个服务器,且未被GFW封锁 一个域名,可以使用免费的域">
|
||||
|
||||
<meta itemprop="wordCount" content="2284">
|
||||
<meta itemprop="wordCount" content="2448">
|
||||
<meta itemprop="image" content="https://p4gefau1t.github.io/trojan-go/images/og-image.png"/>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
<p>我们的目标是,使得你的服务器和正常的HTTPS网站表现相同。</p>
|
||||
<p>首先你需要一个HTTP服务器,可以使用nginx,apache,caddy等配置一个本地HTTP服务器,也可以使用别人的HTTP服务器。HTTP服务器的作用是,当GFW主动探测时,向它展示一个完全正常的Web页面。</p>
|
||||
<p><strong>你需要在<code>remote_addr</code>和<code>remote_port</code>指定这个HTTP服务器的地址。<code>remote_addr</code>可以是IP或者域名。Trojan-Go将会测试这个HTTP服务器是否工作正常,如果不正常,Trojan-Go会拒绝启动。</strong></p>
|
||||
<p>下面是一份比较安全的服务器配置,需要你在本地80端口配置一个HTTP服务(必要,你也可以使用其他的网站HTTP服务器,如"remote_addr”: “example.com”),在1234端口配置一个HTTPS服务(可选,可以删除<code>fallback_port</code>字段,跳过这个步骤)</p>
|
||||
<p>下面是一份比较安全的服务器配置server.json,需要你在本地80端口配置一个HTTP服务(必要,你也可以使用其他的网站HTTP服务器,如"remote_addr”: “example.com”),在1234端口配置一个HTTPS服务(可选,可以删除<code>fallback_port</code>字段,跳过这个步骤)</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{
|
||||
<span style="color:#f92672">"run_type"</span>: <span style="color:#e6db74">"server"</span>,
|
||||
<span style="color:#f92672">"local_addr"</span>: <span style="color:#e6db74">"0.0.0.0"</span>,
|
||||
@@ -105,11 +105,12 @@
|
||||
<span style="color:#f92672">"ssl"</span>: {
|
||||
<span style="color:#f92672">"cert"</span>: <span style="color:#e6db74">"server.crt"</span>,
|
||||
<span style="color:#f92672">"key"</span>: <span style="color:#e6db74">"server.key"</span>,
|
||||
<span style="color:#f92672">"sni"</span>: <span style="color:#e6db74">"your-domain-name.com"</span>,
|
||||
<span style="color:#f92672">"fallback_port"</span>: <span style="color:#ae81ff">1234</span>
|
||||
}
|
||||
}
|
||||
</code></pre></div><p>这个配置文件使Trojan-Go在服务器的所有IP地址上(0.0.0.0)监听443端口,分别使用server.crt和server.key作为证书和密钥进行TLS握手。你应该使用尽可能复杂的密码,同时确保客户端和服务端<code>password</code>是一致的。</p>
|
||||
<p>当一个连接试图连接Trojan-Go的监听端口时,会发生下面的事情:</p>
|
||||
</code></pre></div><p>这个配置文件使Trojan-Go在服务器的所有IP地址上(0.0.0.0)监听443端口,分别使用server.crt和server.key作为证书和密钥进行TLS握手。你应该使用尽可能复杂的密码,同时确保客户端和服务端<code>password</code>是一致的。注意,<strong>Trojan-Go会检测你的HTTP服务器<code>http://remote_addr:remote_port</code>是否正常工作。如果你的HTTP服务器工作不正常,Trojan-Go将拒绝启动。</strong></p>
|
||||
<p>当一个客户端试图连接Trojan-Go的监听端口时,会发生下面的事情:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>如果TLS握手成功,检测到TLS的内容非Trojan协议(有可能是HTTP请求,或者来自GFW的主动探测)。Trojan-Go将TLS连接代理到本地127.0.0.1:80上的HTTP服务。这时在远端看来,Trojan-Go服务就是一个HTTPS网站。</p>
|
||||
@@ -121,10 +122,13 @@
|
||||
<p>如果TLS握手失败,说明对方使用的不是TLS协议进行连接。此时Trojan-Go将这个TCP连接代理到本地127.0.0.1:1234上运行的HTTPS服务,本地HTTPS服务器也会检测到连接不是TLS连接,返回一个400 Bad Reqeust的HTTP页面。<code>fallback_port</code>是一个可选选项,如果没有填写,Trojan-Go会直接终止连接。虽然是可选的,但是还是强烈建议填写。</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>你可以通过使用浏览器访问你的域名<code>https://your_domain_name</code>来验证。如果工作正常,你的浏览器会显示一个正常的HTTPS保护的Web页面,页面内容与服务器本机80端口上的页面一致。你还可以使用<code>http://your_domain_name:443</code>验证<code>fallback_port</code>工作是否正常。</p>
|
||||
<p>你可以通过使用浏览器访问你的域名<code>https://your-domain-name.com</code>来验证。如果工作正常,你的浏览器会显示一个正常的HTTPS保护的Web页面,页面内容与服务器本机80端口上的页面一致。你还可以使用<code>http://your-domain-name.com:443</code>验证<code>fallback_port</code>工作是否正常。</p>
|
||||
<p>事实上,你甚至可以将Trojan-Go当作你的HTTPS服务器,用来给你的网站提供HTTPS服务。访客可以正常地通过Trojan-Go浏览你的网站,而和代理流量互不影响。但是注意,不要在<code>remote_port</code>和<code>fallback_port</code>搭建有高实时性需求的服务,Trojan-Go识别到非Trojan协议流量时会有意增加少许延迟以抵抗GFW基于时间的检测。</p>
|
||||
<p>配置完成后,可以使用</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">./trojan-go -config ./server.json
|
||||
</code></pre></div><p>启动服务端。</p>
|
||||
<h3 id="客户端配置">客户端配置</h3>
|
||||
<p>对应的客户端配置</p>
|
||||
<p>对应的客户端配置client.json</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-json" data-lang="json">{
|
||||
<span style="color:#f92672">"run_type"</span>: <span style="color:#e6db74">"client"</span>,
|
||||
<span style="color:#f92672">"local_addr"</span>: <span style="color:#e6db74">"127.0.0.1"</span>,
|
||||
@@ -135,11 +139,14 @@
|
||||
<span style="color:#e6db74">"your_awesome_password"</span>
|
||||
],
|
||||
<span style="color:#f92672">"ssl"</span>: {
|
||||
<span style="color:#f92672">"sni"</span>: <span style="color:#e6db74">"your_domain_name"</span>
|
||||
<span style="color:#f92672">"sni"</span>: <span style="color:#e6db74">"your-domain-name.com"</span>
|
||||
}
|
||||
}
|
||||
</code></pre></div><p>这个客户端配置使Trojan-Go开启一个监听在本地1080端口的socks5/http代理(自动识别),远端服务器为your_awesome_server:443,your_awesome_server可以是IP或者域名。</p>
|
||||
<p>如果你在<code>remote_addr</code>中填写的是域名,<code>sni</code>可以省略。如果你在<code>remote_addr</code>填写的是IP地址,<code>sni</code>字段应当填写你申请证书的对应域名,或者你自己签发的证书的Common Name,而且必须一致。注意,<code>sni</code>字段目前的在TLS协议中是<strong>明文传送</strong>的(目的是使服务器提供相应证书)。GFW已经被证实具有SNI探测和阻断能力,所以不要填写类似<code>google.com</code>等已经被封锁的域名,否则很有可能导致你的服务器也被遭到锁。</p>
|
||||
<p>配置完成后,可以使用</p>
|
||||
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-shell" data-lang="shell">./trojan-go -config ./client.json
|
||||
</code></pre></div><p>启动客户端。</p>
|
||||
<p>更多关于配置文件的信息,可以在左侧导航栏中找到相应介绍。</p>
|
||||
<div class="edit-meta">
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<meta itemprop="name" content="完整的配置文件">
|
||||
<meta itemprop="description" content="下面是一个完整的配置文件,其中的必填选项有 run_type local_addr local_port remote_addr remote_port 对于服务器server,key和cert为必填。 对于客户端client,反向代理隧道fo">
|
||||
|
||||
<meta itemprop="wordCount" content="6172">
|
||||
<meta itemprop="wordCount" content="6345">
|
||||
<meta itemprop="image" content="https://p4gefau1t.github.io/trojan-go/images/og-image.png"/>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
@@ -85,8 +85,10 @@
|
||||
<span style="color:#f92672">"password"</span>: [],
|
||||
<span style="color:#f92672">"buffer_size"</span>: <span style="color:#ae81ff">32</span>,
|
||||
<span style="color:#f92672">"dns"</span>: [],
|
||||
<span style="color:#f92672">"disable_http_check"</span>: <span style="color:#66d9ef">false</span>,
|
||||
<span style="color:#f92672">"ssl"</span>: {
|
||||
<span style="color:#f92672">"verify"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"verify_hostname"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"cert"</span>: <span style="color:#960050;background-color:#1e0010">*required*</span>,
|
||||
<span style="color:#f92672">"key"</span>: <span style="color:#960050;background-color:#1e0010">*required*</span>,
|
||||
<span style="color:#f92672">"key_password"</span>: <span style="color:#e6db74">""</span>,
|
||||
@@ -136,6 +138,7 @@
|
||||
<span style="color:#f92672">"double_tls"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"ssl"</span>: {
|
||||
<span style="color:#f92672">"verify"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"verify_hostname"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"cert"</span>: <span style="color:#e6db74">""</span>,
|
||||
<span style="color:#f92672">"key"</span>: <span style="color:#e6db74">""</span>,
|
||||
<span style="color:#f92672">"key_password"</span>: <span style="color:#e6db74">""</span>,
|
||||
@@ -144,6 +147,7 @@
|
||||
<span style="color:#f92672">"session_ticket"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"reuse_session"</span>: <span style="color:#66d9ef">true</span>,
|
||||
<span style="color:#f92672">"plain_http_response"</span>: <span style="color:#e6db74">""</span>,
|
||||
<span style="color:#f92672">"key_log"</span>: <span style="color:#e6db74">""</span>
|
||||
}
|
||||
},
|
||||
<span style="color:#f92672">"forward_proxy"</span>: {
|
||||
@@ -178,7 +182,7 @@
|
||||
<span style="color:#f92672">"key"</span>: <span style="color:#e6db74">""</span>,
|
||||
<span style="color:#f92672">"key_password"</span>: <span style="color:#e6db74">""</span>,
|
||||
<span style="color:#f92672">"client_cert"</span>: []
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</code></pre></div><h2 id="说明">说明</h2>
|
||||
@@ -188,6 +192,7 @@
|
||||
<p><code>log_level</code>指定日志等级。等级越高,输出的信息越少,0输出Debug以上日志(所有日志),1输出Info及以上日志,2输出Warning及以上日志,3输出Error及以上信息,4输出Fatal及以上信息,5完全不输出日志。</p>
|
||||
<p><code>log_file</code>指定日志输出文件路径。如果未指定则使用标准输出。</p>
|
||||
<p><code>password</code>可以填入多个密码。除了使用配置文件配置密码之外,trojan-go还支持使用mysql配置密码,参见下文。客户端的密码,只有与服务端配置文件中或者在数据库中的密码记录一致,才能通过服务端的校验,正常使用代理服务。</p>
|
||||
<p><code>buffer_size</code>为单个连接缓冲区大小,单位KiB,默认32KiB。适当提升这个数值可以提升网络吞吐量和效率,但是也会增加内存消耗。对于路由器等嵌入式系统,建议根据实际情况,适当减小该数值。</p>
|
||||
<p><code>dns</code>指定trojan-go使用的DNS服务器列表,如果不指定则使用主机默认DNS。如果指定了服务器,按照列表顺序依次查询,支持UDP/TCP/DOT类型的DNS,查询结果会被缓存五分钟。使用URL格式描述服务器,例如</p>
|
||||
<ul>
|
||||
<li>
|
||||
@@ -207,9 +212,10 @@
|
||||
</li>
|
||||
</ul>
|
||||
<p>使用DOT可以防止DNS请求泄露,但由于TLS的握手耗费更多时间,查询速度也会有一定的下降,请自行斟酌性能和安全性的平衡。</p>
|
||||
<p><code>buffer_size</code>为单个连接缓冲区大小,单位KiB,默认32KiB。适当提升这个数值可以提升网络吞吐量和效率,但是也会增加内存消耗。对于路由器等嵌入式系统,建议根据实际情况,适当减小该数值。</p>
|
||||
<p><code>disable_http_check</code>是否禁用HTTP可用性检查。</p>
|
||||
<h3 id="ssl选项"><code>ssl</code>选项</h3>
|
||||
<p><code>verify</code>表示客户端(client/nat/forward)是否校验服务端提供的证书合法性,默认开启。出于安全性考虑,这个选项不应该在实际场景中选择false,否则可能遭受中间人攻击。如果使用自签名或者自签发的证书,开启<code>verify</code>会导致校验失败。这种情况下,应当保持<code>verify</code>开启,然后在<code>cert</code>中填写服务端的证书,即可正常连接。</p>
|
||||
<p><code>verify_hostname</code>表示服务端是否校验客户端提供的SNI与服务端设置的一致性。如果服务端SNI字段留空,认证将被强制关闭。</p>
|
||||
<p>服务端必须填入<code>cert</code>和<code>key</code>,对应服务器的证书和私钥文件,请注意证书是否有效/过期。如果使用权威CA签发的证书,客户端(client/nat/forward)可以不填写<code>cert</code>。如果使用自签名或者自签发的证书,应当在的<code>cert</code>处填入服务器证书文件,否则可能导致校验失败。</p>
|
||||
<p><code>sni</code>指的是证书的Common Name,如果你使用letsencrypt等机构签名的证书,这里填入你的域名。如果这一项未填,将使用<code>remote_addr</code>填充。你应当指定一个有效的SNI(和远端证书CN一致),否则客户端可能无法验证远端证书有效性从而无法连接。</p>
|
||||
<p><code>alpn</code>为TLS的应用层协议协商指定协议。在TLS Client/Server Hello中传输,协商应用层使用的协议,仅用作指纹伪造,并无实际作用。<strong>如果使用了CDN,错误的alpn字段可能导致与CDN协商错误的应用层协议</strong>。</p>
|
||||
@@ -236,14 +242,15 @@
|
||||
</ul>
|
||||
<p>一旦指纹的值被设置,<code>cipher</code>,<code>curves</code>,<code>alpn</code>,<code>session_ticket</code>等有可能影响指纹的字段将使用该指纹的特定设置覆写。</p>
|
||||
<p><code>plain_http_response</code>指服务端TLS握手失败时,明文发送的原始数据(原始TCP数据)。这个字段填入该文件路径。推荐使用<code>fallback_port</code>而不是该字段。</p>
|
||||
<p><code>fallback_port</code>指服务端TLS握手失败时,trojan-go将该连接代理的端口。这是trojan-go的特性,以便更好地隐蔽Trojan服务器,抵抗GFW的主动检测,使得服务器的443端口在遭遇非TLS协议的探测时,行为与正常服务器完全一致。当服务器接受了一个连接但无法进行TLS握手时,如果<code>fallback_port</code>不为空,则流量将会被代理至remote_addr:fallback_port。例如,你可以在本地使用nginx开启一个https服务,当你的服务器443端口被非TLS协议请求时(比如http请求),trojan-go将代理至本地https服务器,nginx将使用http协议明文返回一个400 Bad Request页面。你可以通过使用浏览器访问<code>http://your_domain_name.com:443</code>进行验证。</p>
|
||||
<p><code>fallback_port</code>指服务端TLS握手失败时,trojan-go将该连接代理的端口。这是trojan-go的特性,以便更好地隐蔽Trojan服务器,抵抗GFW的主动检测,使得服务器的443端口在遭遇非TLS协议的探测时,行为与正常服务器完全一致。当服务器接受了一个连接但无法进行TLS握手时,如果<code>fallback_port</code>不为空,则流量将会被代理至remote_addr:fallback_port。例如,你可以在本地使用nginx开启一个https服务,当你的服务器443端口被非TLS协议请求时(比如http请求),trojan-go将代理至本地https服务器,nginx将使用http协议明文返回一个400 Bad Request页面。你可以通过使用浏览器访问<code>http://your-domain-name.com:443</code>进行验证。</p>
|
||||
<p><code>serve_plain_text</code>服务端直接是否直接接受TCP连接并处理trojan协议明文。开启此选项后,<code>ssl</code>的其他选项将失效,trojan-go将直接处理连入的TCP连接而不使用TLS。此选项的意义在于支持nginx等Web服务器的分流。如果开启,请不要将trojan-go服务对外暴露。</p>
|
||||
<p><code>key_log</code>TLS密钥日志的文件路径。如果填写则开启密钥日志。<strong>记录密钥将破坏TLS的安全性,此项不应该用于除调试以外的其他任何用途。</strong></p>
|
||||
<h3 id="mux多路复用选项"><code>mux</code>多路复用选项</h3>
|
||||
<p>多路复用是trojan-go的特性。如果服务器和客户端都是trojan-go,可以开启mux多路复用以减少高并发情景下的延迟(只需要客户端开启此选项即可,服务端自动适配)。</p>
|
||||
<p>注意,开启多路复用不会提升你的链路速度。相反,它会增加客户端和服务端的CPU和内存消耗,从而可能造成速度下降。多路复用的意义在于降低延迟。</p>
|
||||
<p><code>enabled</code>是否开启多路复用</p>
|
||||
<p>注意,多路复用的意义在于降低握手延迟,而不是提升链路速度。相反,它会增加客户端和服务端的CPU和内存消耗,从而可能造成速度下降。</p>
|
||||
<p><code>enabled</code>是否开启多路复用。</p>
|
||||
<p><code>concurrency</code>指单个TLS隧道可以承载的最大连接数,默认为8。这个数值越大,多连接并发时TLS由于握手产生的延迟就越低,但网络吞吐量可能会有所降低,填入负数或者0表示所有连接只使用一个TLS隧道承载。</p>
|
||||
<p><code>idle_timeout</code>指TLS隧道在空闲多久之后关闭,单位为秒。如果数值为负或0,则一旦TLS隧道空闲,则立即关闭</p>
|
||||
<p><code>idle_timeout</code>指TLS隧道在空闲多久之后关闭,单位为秒。如果数值为负值或0,则一旦TLS隧道空闲,则立即关闭。</p>
|
||||
<h3 id="router路由选项"><code>router</code>路由选项</h3>
|
||||
<p>路由功能是trojan-go的特性。trojan-go的路由策略有三种。</p>
|
||||
<ul>
|
||||
@@ -295,7 +302,7 @@
|
||||
<p>你到代理节点的直接TLS连接遭到了GFW的中间人攻击</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>警告:<strong>由于信任CDN证书并使用CDN网络进行传输,HTTPS连接对于CDN是透明的,CDN运营商可以查看Websocket流量传输内容。如果你使用了国内的CDN,应当假定CDN不可信任,请务必开启double_tls进行双重加密,并使用obfuscation_password进行流量混淆</strong></p>
|
||||
<p>警告:<strong>由于信任CDN证书并使用CDN网络进行传输,HTTPS连接对于CDN是透明的,CDN运营商可以直接审计Websocket流量传输内容。如果你使用了国内的CDN,应当假定CDN不可信任,请务必开启double_tls进行双重加密,并使用obfuscation_password进行流量混淆</strong></p>
|
||||
<p><code>enabled</code>表示是否启用Websocket承载流量,服务端开启后同时支持一般Trojan协议和基于websocket的Trojan协议,客户端开启后将只使用websocket承载所有Trojan协议流量。</p>
|
||||
<p><code>path</code>指的是Websocket使用的URL路径,必须以斜杠("/")开头,如”/longlongwebsocketpath”,并且服务器和客户端必须一致。</p>
|
||||
<p><code>hostname</code>Websocket握手时使用的主机名,客户端如果留空则使用<code>remote_addr</code>填充。如果使用了CDN,这个选项一般填入域名。</p>
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
+1
-1
@@ -32,7 +32,7 @@
|
||||
<body><div class="container"><header>
|
||||
<h1>Trojan-Go Docs</h1>
|
||||
|
||||
<span class="version">Version 0.4.11</span>
|
||||
<span class="version">Version 0.4.12</span>
|
||||
<a href="https://github.com/p4gefau1t/trojan-go" class="github"><i class="fab fa-github"></i></a>
|
||||
<p class="description">An unidentifiable mechanism that helps you bypass GFW. </p>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user