GO语言实现的安全隧道
功能特性
- ✅多端口监听
- ✅多级转发链
- ✅多协议支持
- ✅TCP/UDP端口转发
- ✅反向代理和隧道
- ✅TCP/UDP透明代理
- ✅DNS解析和代理
- ✅TUN/TAP设备与TUN2SOCKS
- ✅负载均衡
- ✅路由控制
- ✅限速限流
- ✅准入控制
- ✅插件系统
- ✅监控指标
- ✅动态配置
- ✅Web API
- ✅GUI/WebUI
概览

GOST作为隧道有三种主要使用方式。
概述
GOST主要由四大模块:服务(Service),节点(Node),跳跃点(Hop),转发链(Chain),五个子模块:监听器(Listener),处理器(Handler),转发器(Forwarder),拨号器(Dialer)和连接器(Connector),外加若干辅助模块:节点选择器(Selector),准入控制器(Admission),分流器(Bypass),域名解析器(Resolver),主机映射器(Hosts),限速器(Limiter)等组成。
服务(Service)
服务是数据的出入口,客户端的数据由服务接收并进行处理,最后将处理完的数据再发送给客户端。
每个服务包含一个监听器(Listener)和一个处理器(Handler)。
节点(Node)
节点是客户端视角下转发链所使用的服务的总称,转发链中的节点可以看作是服务所对应的客户端。当前程序所运行的服务以外的服务均可看作是节点(甚至当前程序开启的服务也可以被视为节点),并且不局限于GOST程序提供的服务。
每个节点包含一个拨号器(Dialer)和一个连接器(Connector)。
跳跃点(Hop)
跳跃点是一组节点(Node)的集合。一个长度为3的转发链,对应有3个跳跃点,数据会依次经过每个跳跃点中的某个节点进行处理。
转发链(Chain)
转发链是由若干个跳跃点按照特定顺序构成的多级跳跃点组(Hop Group)。一个转发链可以由一个或多个跳跃点(Hop)组成,当进行数据转发时会根据转发策略(节点选择器,分流器)在每个跳跃点中选取一个节点,最终构成一条转发路径(Route),服务会使用这条路径来进行数据转发。
监听器(Listener)
监听器在本地打开指定的端口,负责数据的收发及数据通道的建立和初始化工作(例如加解密,会话和数据流通道初始化等),与客户端进行直接的数据交互。
处理器(Handler)
处理器是监听器上的一个逻辑抽象层,当监听器建立好数据通道之后,客户端的实际请求数据会交给处理器进行处理,其中包括路由判断,域名解析,权限控制等处理逻辑。
转发器(Forwarder)
转发器用于端口转发,被处理器使用。处理器根据转发器配置的节点组和节点选择器对每个请求数据进行转发处理。
拨号器(Dialer)
拨号器与服务的监听器相对应,负责与服务进行数据交互,数据通道建立和初始化工作。
连接器(Connector)
连接器是拨号器上的一个逻辑抽象层,与服务的处理器相对应,当拨号器与服务建立好数据通道后,再由连接器进行实际请求数据的处理工作。
正向代理
作为代理服务访问网络,可以组合使用多种协议组成转发链进行转发。

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

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

下载安装
二进制文件
https://github.com/go-gost/gost/releases
源码编译
git clone https://github.com/go-gost/gost.git cd gost/cmd/gost go build
Docker
docker run --rm gogost/gost -V
工具
GUI
go-gost/gostctl
WebUI
ui.gost.run
go-gost/gost-ui
Shadowsocks Android插件
hamid-nazari/ShadowsocksGostPlugin
帮助与支持
GitHub:https://github.com/go-gost/gost/issues
YouTube: https://www.youtube.com/@gost-tunnel
Telegram:https://t.me/gogost
Google讨论组:https://groups.google.com/d/forum/go-gost
旧版入口:v2.gost.run
这小玩意还挺有意思?!是吧!

