fix config parse

This commit is contained in:
ICKelin
2024-04-22 16:07:29 +08:00
parent 513a3ae19c
commit 91af488b45
4 changed files with 29 additions and 32 deletions

View File

@@ -13,29 +13,11 @@
<img src="https://img.shields.io/github/license/mashape/apistatus.svg" alt="license">
</a>
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软件加速加速访问Salesforceoffce365等产品
- 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度
- 直播加速tiktok海外直播加速抖音直播加速
- 游戏加速,结合专线网络和路由盒子实现游戏加速盒
- 云服务器出口加速网关,加速整个公有云内网访问外网的流量
**玩法分享**
- [基于gtun+n1盒子实现软路由加速]()
- [基于gtun实现的tiktok加速路由]()
- [基于gtun实现办公网访问公有云内网]()
- [基于gtun实现的游戏加速盒]()
gtun是一个完整的加速器**目前只支持linux**
同时我们也基于gtun开发了收费版本对标阿里云的全球应用加速ucloud的pathX等产品的功能只是会更加灵活支持私有化部署独立部署可以部署到公有云数据中心和软路由如果您感兴趣可以访问[我们的网站](https://www.beyondnetwork.net)进行免费免费体验。
关于项目有任何问题需要咨询,可以[联系作者](#关于作者)进行交流
@@ -54,6 +36,21 @@ gtun是一个完整的加速器**目前只支持linux**
- [有问题怎么办](#有问题怎么办)
- [关于作者](#关于作者)
## 应用场景
- SaaS软件加速加速访问Salesforceoffce365等产品
- 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度
- 直播加速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`即可启动。

View File

@@ -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: |
{

View File

@@ -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 {

View File

@@ -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
}