update README.md

This commit is contained in:
rui.zheng 2017-08-05 17:15:42 +08:00
parent 7220d7478a
commit 3ed4a707fc

View File

@ -20,6 +20,7 @@ gost - GO Simple Tunnel
* HTTP2隧道 (2.4+) * HTTP2隧道 (2.4+)
* SSH隧道 (2.4+) * SSH隧道 (2.4+)
* QUIC隧道 (2.4+) * QUIC隧道 (2.4+)
* obfs4隧道 (2.4+)
二进制文件下载https://github.com/ginuerzh/gost/releases 二进制文件下载https://github.com/ginuerzh/gost/releases
@ -46,6 +47,10 @@ protocol: 代理协议类型(http, socks4(a), socks5, ss), transport: 数据传
> http2 - 标准HTTP2代理并向下兼容HTTPS: http2://:443 > http2 - 标准HTTP2代理并向下兼容HTTPS: http2://:443
> h2 - HTTP2 h2隧道: h2://:443
> h2c - HTTP2 h2c隧道: h2c://:443
> socks4(a) - 标准SOCKS4(A)代理: socks4://:1080或socks4a://:1080 > socks4(a) - 标准SOCKS4(A)代理: socks4://:1080或socks4a://:1080
> socks5 - 标准SOCKS5代理(支持TLS协商加密): socks5://:1080 > socks5 - 标准SOCKS5代理(支持TLS协商加密): socks5://:1080
@ -66,9 +71,7 @@ protocol: 代理协议类型(http, socks4(a), socks5, ss), transport: 数据传
> ssh - SSH代理隧道: ssh://:2222SSH转发隧道: forward+ssh://:2222 > ssh - SSH代理隧道: ssh://:2222SSH转发隧道: forward+ssh://:2222
> h2 - HTTP2 h2隧道: h2://:443 > obfs4 - obfs4隧道: obfs4://:8080
> h2c - HTTP2 h2c隧道: h2c://:443
#### 端口转发 #### 端口转发
@ -86,6 +89,8 @@ scheme://[bind_address]:port/[host]:hostport
#### 配置文件 #### 配置文件
此功能由[@septs](https://github.com/septs)贡献。
> -C : 指定配置文件路径 > -C : 指定配置文件路径
配置文件为标准json格式 配置文件为标准json格式
@ -297,6 +302,24 @@ gost -L=:8080 -F=ssh://server_ip:2222?ping=60
gost -L=redirect://:12345 -F=http2://server_ip:443 gost -L=redirect://:12345 -F=http2://server_ip:443
``` ```
#### obfs4
此功能由[@isofew](https://github.com/isofew)贡献。
服务端:
```bash
gost -L=obfs4://:443
```
当服务端运行后会在控制台打印出连接地址供客户端使用:
```
obfs4://:443/?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0
```
客户端:
```
gost -L=:8888 -F='obfs4://server_ip:443?cert=4UbQjIfjJEQHPOs8vs5sagrSXx1gfrDCGdVh2hpIPSKH0nklv1e4f29r7jb91VIrq4q5Jw&iat-mode=0'
```
加密机制 加密机制
------ ------
#### HTTP #### HTTP
@ -359,6 +382,12 @@ gost内置了TLS证书如果需要使用其他TLS证书有两种方法
gost -L="http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file" gost -L="http2://:443?cert=/path/to/my/cert/file&key=/path/to/my/key/file"
``` ```
对于客户端可以指定CA证书进行证书锁定(Certificate Pinning):
```bash
gost -L=:8080 -F="http2://:443?ca=ca.pem"
```
此功能由[@sheerun](https://github.com/sheerun)贡献
SOCKS5 UDP数据处理 SOCKS5 UDP数据处理
------ ------
#### 不设置转发代理 #### 不设置转发代理
@ -377,6 +406,38 @@ gost作为标准SOCKS5代理处理UDP数据
当设置转发代理时gost会使用UDP-over-TCP方式转发UDP数据。proxy1 - proxyN可以为任意HTTP/HTTPS/HTTP2/SOCKS5/Shadowsocks类型代理。 当设置转发代理时gost会使用UDP-over-TCP方式转发UDP数据。proxy1 - proxyN可以为任意HTTP/HTTPS/HTTP2/SOCKS5/Shadowsocks类型代理。
权限控制
------
此功能由[@sheerun](https://github.com/sheerun)贡献。
服务端可以通过白名单(`whitelist`参数)和黑名单(`blacklist`参数)来控制客户端的请求是否允许被处理。
参数格式为: `[actions]:[hosts]:[ports]`
`[actions]`是一个由`,`分割的动作列表,可选值有: `tcp`(TCP转发), `udp`(UDP转发), `rtcp`(TCP远程转发), `rudp`(UDP远程转发), 或 `*`(所有动作)。
`[hosts]`是一个由`,`分割的Host列表代表可以绑定到(rtcp,rudp)或转发到(tcp,udp)的目的主机,支持通配符(*.google.com)和`*`(所有主机)。
`[ports]`是一个由`,`分割的端口列表,代表可以绑定到(rtcp,rudp)或转发到(tcp,udp)的目的端口,可以是`*`(所有端口)。
多组权限可以通过`+`进行连接:
`whitelist=rtcp,rudp:localhost,127.0.0.1:2222,8000-9000+udp:8.8.8.8,8.8.4.4:53`(允许TCP/UDP远程端口转发绑定到localhost,127.0.0.1的2222端口和8000-9000端口范围同时允许UDP转发到8.8.8.8:53和8.8.4.4:53)
SSH远程端口转发只能绑定到127.0.0.1:8000
```bash
gost -L=forward+ssh://localhost:8389?whitelist=rtcp:127.0.0.1:8000
```
SOCKS5的TCP/UDP远程端口转发只允许绑定到大于1000的端口
```bash
gost -L=socks://localhost:8389?blacklist=rtcp,rudp:*:0-1000
```
SOCKS5的UDP转发只能转发到8.8.8.8:53
```bash
gost -L=socks://localhost:8389?whitelist=udp:8.8.8.8:53
```
限制条件 限制条件
------ ------
代理链中的HTTP代理节点必须支持CONNECT方法。 代理链中的HTTP代理节点必须支持CONNECT方法。