2.4k star,推荐一款go语言写的开源网络隧道代理工具
主要支持如下几种,开源地址在文末:
正向代理
作为代理服务访问网络,可以组合使用多种协议组成转发链进行转发。
端口转发
将一个服务的端口映射到另外一个服务的端口,同样可以组合使用多种协议组成转发链进行转发。
反向代理
利用隧道和内网穿透将内网服务暴露到公网访问。
具体介绍
GOST是一个用Go语言编写的简单隧道工具,它可以在不同的主机和协议之间创建和管理安全的隧道。
它支持多种功能,如多端口、代理、Web代理、代理链、SOCKS5、Shadowsocks、DNS、TUN/TAP等。本文将介绍GOST的特点、使用方法、安装方法和类似产品的对比,并做出总结。
GOST的特点
GOST的主要特点有以下几点:
- 跨平台:GOST可以运行在Windows、Linux、MacOS、FreeBSD等多种操作系统上,也可以编译成ARM架构的二进制文件,运行在树莓派等设备上。
- 多协议:GOST支持多种隧道协议,如TCP、UDP、HTTP、HTTPS、HTTP2、WS、WSS、KCP、QUIC、SSH、SS、SSR、TLS、OBFS4等,可以实现不同协议之间的转换和混淆。
- 灵活配置:GOST可以通过命令行参数、配置文件、Web界面等多种方式进行配置,也可以通过RESTful API动态修改配置。GOST还支持多种认证方式,如用户名密码、IP白名单、IP黑名单、证书等。
- 高性能:GOST使用Go语言编写,利用了Go语言的并发特性,可以处理大量的连接和数据。GOST还支持多核心负载均衡、连接复用、流量压缩、心跳检测等功能,提高了隧道的性能和稳定性。
GOST的使用方法
GOST的使用方法主要分为两种:客户端模式和服务端模式。客户端模式是指GOST作为一个本地代理,将本地的请求转发到远程的服务端。
服务端模式是指GOST作为一个远程代理,接收来自客户端的请求,并转发到目标地址。GOST可以同时运行多个客户端模式和服务端模式,实现多重代理和代理链。
客户端模式的基本用法是:
gost -L=protocol://[user:pass@]local_addr:local_port/remote_addr:remote_port
其中,protocol
是指隧道协议,如socks5
、http
、ss
等;user:pass
是指认证信息,如果不需要认证,可以省略;local_addr:local_port
是指本地监听的地址和端口;
remote_addr:remote_port
是指远程服务端的地址和端口。例如,如果想要使用SOCKS5协议,将本地的1080端口的请求转发到远程的example.com:443
,可以使用以下命令:
gost -L=socks5://:1080/example.com:443
服务端模式的基本用法是:
gost -L=protocol://[user:pass@]local_addr:local_port
其中,protocol
、user:pass
和local_addr:local_port
的含义与客户端模式相同,只是不需要指定远程地址和端口。例如,如果想要使用HTTP协议,监听本地的8080端口,可以使用以下命令:
gost -L=http://:8080
GOST还支持多种高级用法,如代理链、Web代理、DNS代理、透明代理、TUN/TAP设备等,具体可以参考官方文档。
GOST的安装方法
GOST的安装方法有以下几种:
- 下载二进制文件:GOST的官方网站提供了多个平台的二进制文件,可以直接下载并运行。例如,如果想要下载Linux平台的64位版本,可以使用以下命令:
wget https://github.com/ginuerzh/gost/releases/download/v2.11.5/gost-linux-amd64-2.11.5.gz
gunzip gost-linux-amd64-2.11.5.gz
chmod +x gost-linux-amd64-2.11.5
./gost-linux-amd64-2.11.5 -h
- 使用包管理器:GOST也可以通过一些包管理器进行安装,例如,如果想要使用Homebrew在MacOS上安装GOST,可以使用以下命令¹:
brew install gost
gost -h
- 从源码编译:GOST的源码托管在GitHub上,可以通过
go get
命令获取并编译。例如,如果想要从源码编译GOST,可以使用以下命令:
go get -u github.com/ginuerzh/gost/cmd/gost
gost -h
GOST的类似产品对比
GOST的类似产品有以下几种:
- Shadowsocks:Shadowsocks是一个基于SOCKS5协议的加密代理工具,它支持多种加密算法和混淆插件,可以实现安全的代理通信。Shadowsocks的优点是简单易用,支持多种平台和客户端,缺点是协议较为固定,容易被识别和干扰。
- V2Ray:V2Ray是一个基于多种协议的代理工具,它支持多种传输层协议和应用层协议,可以实现复杂的代理功能。V2Ray的优点是功能强大,支持多种模式和场景,缺点是配置较为复杂,需要一定的学习成本。
- Brook:Brook是一个基于WebSocket协议的代理工具,它支持多种模式,如普通代理、VPN、透明代理等。Brook的优点是协议简单,支持多种平台和客户端,缺点是性能较低,容易被封锁。
GOST与这些类似产品的对比如下表所示:
产品 | 协议 | 配置 | 性能 | 稳定性 |
---|---|---|---|---|
GOST | 多种 | 灵活 | 高 | 高 |
Shadowsocks | SOCKS5 | 简单 | 高 | 中 |
V2Ray | 多种 | 复杂 | 中 | 高 |
Brook | WebSocket | 简单 | 低 | 低 |
总结
GOST是一个用Go语言编写的简单隧道工具,它支持多种隧道协议和功能,可以实现不同主机和协议之间的安全通信。
GOST的特点是跨平台、多协议、灵活配置和高性能,它的使用方法和安装方法也比较简单,可以满足多种代理需求。GOST与其他类似产品相比,有着各自的优劣,用户可以根据自己的情况选择合适的工具。
开源地址:https://github.com/go-gost/gost