安全隧道利器gost
介绍
项目地址 https://github.com/ginuerzh/gost
特性
- 可同时监听多端口
- 可设置转发代理,支持多级转发(代理链)
- 支持标准HTTP/HTTPS/SOCKS5代理协议
- SOCKS5代理支持TLS协商加密
- Tunnel UDP over TCP
- 支持Shadowsocks协议 (OTA: 2.2+,UDP: 2.4+)
- 支持本地/远程端口转发 (2.1+)
- 支持HTTP 2.0 (2.2+)
- 实验性支持QUIC (2.3+)
- 支持KCP协议 (2.3+)
- 透明代理 (2.3+)
我为什么喜欢它
- 配置相当简洁优雅
- 功能相当强大
- 独立的依赖,跨平台(其实这是go优点)
安装
以ubuntu来说
1 |
|
也可以去https://github.com/ginuerzh/gost/releases 下最二进制版。
使用
功能比较强大,详细的可以去看项目主页上的说明,上面写得非常好。
下面只列出自己常用的功能
代替ss,做科学上网工具
- 服务端
gost -L=ss://aes-128-cfb:123456@:8338?ota=1
- 客户端
gost -L=:8080 -F=ss://aes-128-cfb:123456@server_ip:8338?ota=1
本地端口转发
- TCP
gost -L=tcp://:2222/192.168.1.1:22
就是监听本地的2222端口,把2222收到的数据包都转发到192.168.1.1:22上去。
TCP 远程端口转发
- 服务端
gost -L=1080
- 客户端
gost -L=rtcp://:2222/192.168.1.1:22 -F=socks://<server_ip>:1080
将<server_ip>:2222
上的数据(通过代理链)转发到192.168.1.1:22上。
这个功能可以做内网穿透,但未验证当客户端ip发生变化时,会不会重连。
比如可以把内网web服务暴露到公网
比如:
客户端
1 |
|
服务端
1 |
|
把35.201.138.200上的80端口的信息,转发到本地192.168.2.8:8000
配置日志
-logtostderr : 输出到控制台
-v=3 : 日志级别(1-5),级别越高,日志越详细(级别5将开启http2 debug)
-log_dir=/log/dir/path : 输出到目录/log/dir/path
总结
之前关于服务器与客户端的想法都被这个项目实现了
而且是基于go,多平台,无依赖。
安全隧道利器gost
https://blog.fengcl.com/2017/06/09/go-simple-tunnel-gost-introduction/