diff --git a/README.md b/README.md index d1ddec1..3348b4d 100644 --- a/README.md +++ b/README.md @@ -13,29 +13,11 @@ license -gtun是一款开源的ip代理加速软件,通过`tproxy`技术实现流量劫持,`quic`和`kcp`等协议优化广域网传输,gtun提供一个基础通道,所有加入`ipset`的ip,出口,入口流量都会被gtun进行拦截并代理到指定出口。 - +gtun是一款开源的ip代理加速软件,目前只支持linux,通过`tproxy`技术实现流量劫持,`quic`和`kcp`等协议优化广域网传输,gtun提供一个基础通道,所有加入`ipset`的ip的流量都会被gtun进行拦截并代理到指定出口。 gtun支持多线路配置,可以同时对美国,日本,欧洲目的网络进行加速访问。您可以结合dnsmasq来使用,将需要配置加速的域名解析结果加入ipset,从而实现域名加速。 [![](https://res.cloudinary.com/marcomontalbano/image/upload/v1686622903/video_to_markdown/images/youtube--pxv02e5EXPE-c05b58ac6eb4c4700831b2b3070cd403.jpg)](https://www.youtube.com/watch?v=pxv02e5EXPE "") -## 应用场景 - -- SaaS软件加速,加速访问Salesforce,offce365等产品 -- 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度 -- 直播加速,tiktok海外直播加速,抖音直播加速 -- 游戏加速,结合专线网络和路由盒子实现游戏加速盒 -- 云服务器出口加速网关,加速整个公有云内网访问外网的流量 - -**玩法分享** - -- [基于gtun+n1盒子实现软路由加速]() -- [基于gtun实现的tiktok加速路由]() -- [基于gtun实现办公网访问公有云内网]() -- [基于gtun实现的游戏加速盒]() - -gtun是一个完整的加速器,**目前只支持linux** - 同时我们也基于gtun开发了收费版本,对标阿里云的全球应用加速,ucloud的pathX等产品的功能,只是会更加灵活,支持私有化部署,独立部署,可以部署到公有云,数据中心和软路由,如果您感兴趣,可以访问[我们的网站](https://www.beyondnetwork.net)进行免费免费体验。 关于项目有任何问题需要咨询,可以[联系作者](#关于作者)进行交流 @@ -54,6 +36,21 @@ gtun是一个完整的加速器,**目前只支持linux** - [有问题怎么办](#有问题怎么办) - [关于作者](#关于作者) +## 应用场景 + +- SaaS软件加速,加速访问Salesforce,offce365等产品 +- 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度 +- 直播加速,tiktok海外直播加速,抖音直播加速 +- 游戏加速,结合专线网络和路由盒子实现游戏加速盒 +- 云服务器出口加速网关,加速整个公有云内网访问外网的流量 + +**玩法分享** + +- [基于gtun+n1盒子实现软路由加速]() +- [基于gtun实现的tiktok加速路由]() +- [基于gtun实现办公网访问公有云内网]() +- [基于gtun实现的游戏加速盒]() + ## 功能特性 - 纯应用层实现,不存在overlay网络,支持tcp和udp协议以及运行在其上的所有七层协议 @@ -142,6 +139,7 @@ log: path: gtun.log ``` +通常只需要修改server和trace两个字段,value为gtund的的`公网IP:监听端口`即可。 配置完成之后可以启动gtun程序,运行`./gtun -c gtun.yaml`即可启动。 diff --git a/etc/gtun/gtun.yaml b/etc/gtun/gtun.yaml index 6f9c24c..00dc579 100644 --- a/etc/gtun/gtun.yaml +++ b/etc/gtun/gtun.yaml @@ -2,11 +2,11 @@ accelerator: HK: routes: - scheme: "kcp" - server: "gtun.alihk.byc.com:3002", - trace: "gtun.alihk.byc.com:3003", + server: "gtun.alihk.byc.com:3002" + trace: "gtun.alihk.byc.com:3003" - scheme: "mux" - server: "gtun.alihk.byc.com:3002", - trace: "gtun.alihk.byc.com:3003", + server: "gtun.alihk.byc.com:3002" + trace: "gtun.alihk.byc.com:3003" proxy: tproxy_tcp: | { diff --git a/src/gtun/config/config.go b/src/gtun/config/config.go index 0f09e07..05464bb 100644 --- a/src/gtun/config/config.go +++ b/src/gtun/config/config.go @@ -1,7 +1,6 @@ package config import ( - "encoding/json" "github.com/ICKelin/gtun/src/internal/signature" "gopkg.in/yaml.v2" "os" @@ -23,11 +22,11 @@ type RouteConfig struct { } type Accelerator struct { - Region string `json:"region"` - GeoSite []string `json:"geo_site"` - GeoIP []string `json:"geo_ip"` - Routes []*RouteConfig `json:"routes"` - Proxy map[string]json.RawMessage `json:"proxy"` + Region string `json:"region"` + GeoSite []string `json:"geo_site"` + GeoIP []string `json:"geo_ip"` + Routes []*RouteConfig `json:"routes"` + Proxy map[string]string `json:"proxy"` } type Log struct { diff --git a/src/gtun/proxy/proxy.go b/src/gtun/proxy/proxy.go index 1be55ce..0f6e05d 100644 --- a/src/gtun/proxy/proxy.go +++ b/src/gtun/proxy/proxy.go @@ -26,7 +26,7 @@ func Register(name string, constructor func() Proxy) error { return nil } -func Serve(region string, proxyConfig map[string]json.RawMessage) error { +func Serve(region string, proxyConfig map[string]string) error { logs.Debug("region %s proxy config %s", region, proxyConfig) err := setup(region, proxyConfig) if err != nil { @@ -36,14 +36,14 @@ func Serve(region string, proxyConfig map[string]json.RawMessage) error { return nil } -func setup(region string, proxyConfigs map[string]json.RawMessage) error { +func setup(region string, proxyConfigs map[string]string) error { for name, config := range proxyConfigs { constructor := registerProxy[name] if constructor == nil { return errNotRegister } p := constructor() - err := p.Setup(region, config) + err := p.Setup(region, json.RawMessage(config)) if err != nil { return err }