第240114期 – gost

第240114期 - gost
2.4k star,推荐一款go语言写的开源网络隧道代理工具

主要支持如下几种,开源地址在文末

正向代理

作为代理服务访问网络,可以组合使用多种协议组成转发链进行转发。

第240114期 - gost

端口转发

将一个服务的端口映射到另外一个服务的端口,同样可以组合使用多种协议组成转发链进行转发。

第240114期 - gost

反向代理

利用隧道和内网穿透将内网服务暴露到公网访问。

第240114期 - gost

具体介绍

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是指隧道协议,如socks5httpss等;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

其中,protocoluser:passlocal_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多种灵活
ShadowsocksSOCKS5简单
V2Ray多种复杂
BrookWebSocket简单

总结

GOST是一个用Go语言编写的简单隧道工具,它支持多种隧道协议和功能,可以实现不同主机和协议之间的安全通信。

GOST的特点是跨平台、多协议、灵活配置和高性能,它的使用方法和安装方法也比较简单,可以满足多种代理需求。GOST与其他类似产品相比,有着各自的优劣,用户可以根据自己的情况选择合适的工具。

开源地址:https://github.com/go-gost/gost


© 版权声明

相关文章