Update README.md

This commit is contained in:
ginuerzh 2015-11-07 12:37:15 +08:00
parent 0cfefc1979
commit 6e9e50e12d

View File

@ -6,7 +6,7 @@ gost - GO Simple Tunnel
#### 特性 #### 特性
* 可同时监听多端口 * 可同时监听多端口
* 可设置转发代理,支持多级转发(转发链) * 可设置转发代理,支持多级转发(转发链)
* 兼容标准http/socks5代理协议 * 兼容标准http(s)/socks5代理协议
* socks5代理支持tls协商加密 * socks5代理支持tls协商加密
* Tunnel UDP over TCP * Tunnel UDP over TCP
* 兼容shadowsocks协议 * 兼容shadowsocks协议
@ -27,15 +27,15 @@ scheme分为两部分: protocol+transport
protocol: 代理协议类型(http, socks5, shadowsocks), transport: 数据传输方式(tcp, websocket, tls), 二者可以任意组合,或单独使用。 protocol: 代理协议类型(http, socks5, shadowsocks), transport: 数据传输方式(tcp, websocket, tls), 二者可以任意组合,或单独使用。
> http - 作为标准http代理: http://:8080 > http - 作为http代理: http://:8080
> http+tls - 作为http代理使用tls传输数据: http+tls://:8080 > http+tls - 作为https代理(可能需要提供受信任的证书): http+tls://:8080
> socks - 作为标准socks5代理: socks://:8080 > socks - 作为标准socks5代理(支持tls协商加密): socks://:8080
> socks+ws - 作为socks5代理使用websocket传输数据: socks+ws://:8080 > socks+ws - 作为socks5代理使用websocket传输数据: socks+ws://:8080
> tls - 作为http/socks5代理使用tls传输数据: tls://:8080 > tls - 作为https/socks5代理使用tls传输数据: tls://:8080
> ss - 作为shadowsocks服务ss://aes-256-cfb:123456@:8080 > ss - 作为shadowsocks服务ss://aes-256-cfb:123456@:8080
@ -85,9 +85,9 @@ gost -L=:8080 -F=http://admin:123456@192.168.1.1:8081
<img src="https://ginuerzh.github.io/images/gost_03.png" /> <img src="https://ginuerzh.github.io/images/gost_03.png" />
```bash ```bash
gost -L=:8080 -F=http://192.168.1.1:8081 -F=socks://192.168.1.2:8082 -F=a.b.c.d:NNNN gost -L=:8080 -F=http+tls://192.168.1.1:443 -F=socks+ws://192.168.1.2:8082 -F=a.b.c.d:NNNN
``` ```
gost按照-F设置顺序通过转发链将请求最终转发给a.b.c.d:NNNN处理每一个转发代理可以是任意http/socks5类型代理。 gost按照-F设置顺序通过转发链将请求最终转发给a.b.c.d:NNNN处理每一个转发代理可以是任意http(s)/socks5类型代理。
##### 加密机制 ##### 加密机制
@ -106,6 +106,14 @@ gost -L=socks+tls://:8080
gost针对socks5额外提供了协商的tls传输方法与上面的不同之处在于socks5最开始的方法选择(method selection)过程是非加密的。 gost针对socks5额外提供了协商的tls传输方法与上面的不同之处在于socks5最开始的方法选择(method selection)过程是非加密的。
如果连接方是gost则后续的通讯使用tls加密否则使用标准socks5进行通讯(未加密)。 如果连接方是gost则后续的通讯使用tls加密否则使用标准socks5进行通讯(未加密)。
也就是说如果连接方也是gost使用以下方法
```bash
gost -L=socks://:8080
```
数据也会被加密传输这时就不需要使用socks+tls(数据会被双重加密传输)模式了。
gost内置了tls证书如果需要使用其他的tls证书在gost目录放置key.pem(公钥)和cert.pem(私钥)两个文件即可。 gost内置了tls证书如果需要使用其他的tls证书在gost目录放置key.pem(公钥)和cert.pem(私钥)两个文件即可。
#### SOCKS5 UDP数据处理 #### SOCKS5 UDP数据处理