13
13
<img src =" https://img.shields.io/github/license/mashape/apistatus.svg " alt =" license " >
14
14
</a >
15
15
16
- gtun是一款开源的ip代理加速软件,通过` tproxy ` 技术实现流量劫持,` quic ` 和` kcp ` 等协议优化广域网传输,gtun提供一个基础通道,所有加入` ipset ` 的ip,出口,入口流量都会被gtun进行拦截并代理到指定出口。
17
-
16
+ gtun是一款开源的ip代理加速软件,目前只支持linux,通过` tproxy ` 技术实现流量劫持,` quic ` 和` kcp ` 等协议优化广域网传输,gtun提供一个基础通道,所有加入` ipset ` 的ip的流量都会被gtun进行拦截并代理到指定出口。
18
17
gtun支持多线路配置,可以同时对美国,日本,欧洲目的网络进行加速访问。您可以结合dnsmasq来使用,将需要配置加速的域名解析结果加入ipset,从而实现域名加速。
19
18
20
19
[ ![ ] ( https://res.cloudinary.com/marcomontalbano/image/upload/v1686622903/video_to_markdown/images/youtube--pxv02e5EXPE-c05b58ac6eb4c4700831b2b3070cd403.jpg )] ( https://www.youtube.com/watch?v=pxv02e5EXPE " ")
21
20
22
- ** 使用场景**
23
-
24
- - SaaS软件加速,加速访问Salesforce,offce365等产品
25
- - 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度
26
- - 直播加速,tiktok海外直播加速,抖音直播加速
27
- - 游戏加速,结合专线网络和路由盒子实现游戏加速盒
28
-
29
- gtun是一个完整的加速器,** 目前只支持linux**
30
-
31
- 同时我们也基于gtun开发了收费版本,对标阿里云的全球应用加速,ucloud的pathX等产品的功能,只是会更加灵活,支持私有化部署,独立部署,可以下沉到办公室,如果您感兴趣,可以访问[ 我们的网站] ( https://www.beyondnetwork.net ) 进行免费免费体验。
21
+ 同时我们也基于gtun开发了收费版本,对标阿里云的全球应用加速,ucloud的pathX等产品的功能,只是会更加灵活,支持私有化部署,独立部署,可以部署到公有云,数据中心和软路由,如果您感兴趣,可以访问[ 我们的网站] ( https://www.beyondnetwork.net ) 进行免费免费体验。
32
22
33
23
关于项目有任何问题需要咨询,可以[ 联系作者] ( #关于作者 ) 进行交流
34
24
35
25
## 目录
36
26
- [ 介绍] ( #gtun )
27
+ - [ 应用场景] ( #应用场景 )
37
28
- [ 功能特性] ( #功能特性 )
38
29
- [ 技术原理] ( #技术原理 )
39
30
- [ 安装部署] ( #安装部署 )
@@ -42,10 +33,24 @@ gtun是一个完整的加速器,**目前只支持linux**
42
33
- [ 安装运行gtun] ( #安装运行gtun )
43
34
- [ 配置加速ip] ( #配置加速ip )
44
35
- [ 加速效果测试] ( #加速效果 )
45
- - [ 应用场景] ( #应用场景 )
36
+ - [ 用法玩法] ( )
37
+ - [ 基础用法: 基于gtun+ipset实现ip代理加速和分流] ( doc/基础用法:基于gtun+ipset实现ip代理加速和分流.md )
38
+ - [ 基础用法: 基于gtun+dnsmasq实现域名代理加速和分流] ( doc/基础用法:基于gtun+dnsmasq实现域名代理加速和分流.md )
39
+ - [ 基础用法: openwrt搭载gtun打造加速软路由,连接Wi-Fi即可畅游网络] ( doc/基础用法:openwrt搭载gtun打造加速软路由,连接Wi-Fi即可畅游网络.md )
40
+ - [ 基础用法: 基于gtun实现公有云访问外部加速] ( doc/基础用法:基于gtun实现公有云访问外部加速.md )
41
+ - [ 玩转N1盒子:基于gtun实现的tiktok加速路由] ( doc/玩转N1盒子:基于gtun实现的tiktok加速路由.md )
42
+ - [ 玩转N1盒子:基于gtun实现的游戏加速盒] ( doc/玩转N1盒子:基于gtun实现的游戏加速盒.md )
46
43
- [ 有问题怎么办] ( #有问题怎么办 )
47
44
- [ 关于作者] ( #关于作者 )
48
45
46
+ ## 应用场景
47
+
48
+ - SaaS软件加速,加速访问Salesforce,offce365等产品
49
+ - 云服务器加速,加速访问海外服务器,跳板机,提升操作流畅度
50
+ - 直播加速,tiktok海外直播加速,抖音直播加速
51
+ - 游戏加速,结合专线网络和路由盒子实现游戏加速盒
52
+ - 云服务器出口加速网关,加速整个公有云内网访问外网的流量
53
+
49
54
## 功能特性
50
55
51
56
- 纯应用层实现,不存在overlay网络,支持tcp和udp协议以及运行在其上的所有七层协议
@@ -64,9 +69,9 @@ gtun是一款ip正向代理软件,包含代理客户端gtun和服务端gtund
64
69
65
70
gtun最主要的功能是流量代理,gtun经过三个版本的演变,最初基于tun网卡的vpn技术,然后优化到dnat技术,再到目前的tproxy技术,现已逐步趋于稳定。
66
71
67
- gtun本身只提供流量代理通道,至于哪些流量需要被劫持,这个是由使用者定义的,使用者最终只需要将被代理的IP加入到` ipset ` 当中,那么该ipset的ip就会被代理
72
+ gtun本身只提供流量代理通道,至于哪些流量需要被劫持,** 这个是由使用者定义的** ,使用者最终只需要将被代理的IP加入到` ipset ` 当中,那么该ipset的ip就会被代理
68
73
69
- 为了实现更加快速的代理,gtun考虑集成` kcp ` 或者` quic ` 等基于UDP实现的可靠性传输协议,以避免长链路tcp丢包严重触发拥塞控制机制,降低传输效率。
74
+ 为了实现更加快速的代理,gtun考虑集成` kcp ` 或者` quic ` 等基于UDP实现的可靠性传输协议,同时接入FEC,实时选路等机制, 以避免长链路tcp丢包严重触发拥塞控制机制,降低传输效率。
70
75
71
76
[ 返回目录] ( #目录 )
72
77
@@ -76,87 +81,110 @@ gtun本身只提供流量代理通道,至于哪些流量需要被劫持,这
76
81
### 前期准备
77
82
78
83
- 一台公有云服务器,用于部署服务端程序gtund,区域越靠近被加速区域(源站)越好,并且确认gtund监听的端口被打开
79
- - 另外一台可以是公有云服务器,也可以是内网机器,用于部署客户端程序gtun,目前gtun只支持linux系统。
84
+ - 另外一台可以是公有云服务器,也可以是内网机器,也可以是路由器, 用于部署客户端程序gtun,目前gtun只支持linux系统
80
85
81
86
### 安装运行gtund
82
- gtund需要运行在公有云上,相对比较简单,原则上越靠近源站越好。
87
+ gtund部署在美国的AWS上,支持systemd和docker两种方式进行启动。
88
+
89
+ 在[ release] ( https://github.com/ICKelin/gtun/releases ) 里面找到2.0.7版本的产物并进行下载,
90
+
91
+ ```
92
+ cd gtund
93
+ ./install.sh
94
+ ```
95
+ install.sh 会创建gtund的运行目录,并通过systemd把gtund程序拉起。
96
+ 执行install.sh完成之后,gtund会:
97
+ - 监听tcp的3002作为mux协议的服务端口
98
+ - 监听udp的3002作为kcp协议的服务端口
99
+ - 日志记录在/opt/apps/gtund/logs/gtund.log
83
100
84
- 首先生成配置文件,可以下载 [ gtund.yaml ] ( https://github.com/ICKelin/gtun/blob/master/etc/gtund.yaml ) 进行修改
101
+ gtund的默认配置为,默认情况下不需要作任何的修改即可
85
102
86
103
``` yaml
104
+ enable_auth : true
105
+ auths :
106
+ - access_token : " ICKelin:free"
107
+ expired_ath : 0
108
+
87
109
trace : " :3003"
88
110
server :
89
111
- listen : " :3002"
90
- authKey : " rewrite with your auth key"
91
112
scheme : " kcp"
92
113
114
+ - listen : " :3002"
115
+ scheme : " mux"
116
+
93
117
log :
94
118
days : 5
95
119
level : " debug"
96
- path : " gtund.log"
120
+ path : " /opt/apps/gtund/logs/gtund.log"
121
+
97
122
```
98
123
99
- 大部分情况下,如果您的端口未被占用,不需要修改任何配置
100
- ` ./gtund -c gtund.yaml`文件即可。
124
+ 您也可以使用docker-compose来进行安装:
101
125
102
- # ## 安装运行gtun
103
- gtun可以运行在内网,也可以运行在公有云,在本场景当中,gtun会被部署在内网。
126
+ ``` shell
127
+ cd gtund
128
+ docker-compose up --build -d
129
+ ```
104
130
105
- 首先生成配置文件,可以下载 [gtun.yaml](https://github.com/ICKelin/gtun/blob/master/etc/gtun.yaml) 进行修改
131
+ 执行完之后docker ps 看是否启动成功
106
132
107
- ` ` ` yaml
108
- settings:
109
- US:
110
- # 代理ip文件,可以是本地文件,也可以是网络文件,一行是一个IP或者cidr
111
- proxy_file: "https://www.ipdeny.com/ipblocks/data/countries/us.zone"
112
- route:
113
- # 拨测地址,需要修改US_SERVER_IP和US_SERVER_TRACE_PORT,对应gtund的公网IP和端口
114
- - trace_addr: ${US_SERVER_IP}:${US_SERVER_TRACE_PORT}
115
- scheme: "kcp"
116
- # 服务端地址,修改为对应gtund的IP和端口
117
- addr: ${US_SERVER_IP}:${US_SERVER_PORT}
118
- auth_key: "rewrite with your auth key"
119
- proxy:
120
- # 代理插件配置
121
- "tproxy_tcp": |
122
- {
123
- "read_timeout": 30,
124
- "write_timeout": 30,
125
- "listen_addr": ":8524",
126
- "rate_limit": 50,
127
- "region": "US"
128
- }
129
- "tproxy_udp": |
130
- {
131
- "read_timeout": 30,
132
- "write_timeout": 30,
133
- "session_timeout": 30,
134
- "listen_addr": ":8524",
135
- "rate_limit": 50,
136
- "region": "US"
137
- }
138
- log:
139
- days: 5
140
- level: Debug
141
- path: gtun.log
133
+ ### 安装运行gtun
142
134
143
- http_server:
144
- listen_addr: ":9001"
135
+ gtun的安装也类似,在[ release] ( https://github.com/ICKelin/gtun/releases ) 里面找到2.0.7版本的产物并进行下载,然后在本地linux上进行部署
136
+
137
+ ``` shell
138
+ cd gtun
139
+ export ACCESS_TOKEN=" ICKelin:free"
140
+ export SERVER_IP=" gtund所在的服务器的ip"
141
+ ./install.sh
145
142
```
146
143
147
- 配置完成之后可以启动gtun程序,运行`./gtun -c gtun.yaml`即可启动。
144
+ 其中ACCESS_TOKEN为gtund配置的认证的token,SERVER_IP是gtund的公网IP
145
+
146
+ 安装完成之后查看是否有错误日志
148
147
149
- gtund启动时,会自动设置 iptables规则和路由表,并将需要加速的ip加入ipset当中,如果ip量比较大,启动时间会稍微长一些。
148
+ 同样,你也可以使用docker-compose来安装
149
+
150
+ ``` shell
151
+ cd gtun
152
+ docker-compose up --build -d
153
+ ```
154
+
155
+ 执行完成之后docker ps 看是否启动成功。
150
156
151
157
[ 返回目录] ( #目录 )
152
158
153
159
### 配置加速ip
154
- 目前支持两种方式配置IP:
155
160
156
- - 基于接口的方式,我们提供HTTP接口进行动态增删IP,目前正在开发页面配置动态管理加速的IP,应用,域名,敬请期待。
157
- - 使用命令手动配置,手动将ip加入到ipset当中
161
+ 在上述过程中,启动了gtun和gtund程序,但是并未添加任何需要加速的信息,那么gtun如何进行加速呢?需要额外手动配置加速ip,并将该ip的tcp流量全部转发至127.0.0.1:8524端口,udp流量全部转发至127.0.0.1:8524∂端口。
162
+
163
+ 这个过程是通过ipset和路由来配置的。以1.1.1.1为例
164
+
165
+ 第一步,创建ipset,并将1.1.1.1加入其中
166
+ ```
167
+ ipset create GTUN-US hash:net
168
+ ipset add GTUN-US 1.1.1.1
169
+ ```
170
+
171
+ 第二步,创建iptables规则,匹配目的ip为GTUN-US这个ipset内部的ip,然后做tproxy操作,将流量重定向到本地8524和8524端口
172
+
173
+ ```
174
+ iptables -t mangle -I PREROUTING -p tcp -m set --match-set GTUN-US dst -j TPROXY --tproxy-mark 1/1 --on-port 8524
175
+ iptables -t mangle -I PREROUTING -p udp -m set --match-set GTUN-US dst -j TPROXY --tproxy-mark 1/1 --on-port 8524
176
+ iptables -t mangle -I OUTPUT -m set --match-set GTUN-US dst -j MARK --set-mark 1
177
+ ```
178
+
179
+ 第三步,添加路由表
180
+
181
+ ```
182
+ ip rule add fwmark 1 lookup 100
183
+ ip ro add local default dev lo table 100
184
+ ```
185
+
186
+ 至此所有配置都已经完成,后续需要新增代理ip,只使用以下命令将ip加入GTUN-US这个ipset当中即可,现在可以先尝试测试1.1.1.1这个ip的代理。
158
187
159
- 接下来以命令配置的方式进行配置,以`1.1.1.1`为例,只需要将`1.1.1.1`加入其中ipset当中`ipset add GTUN-US 1.1.1.1`即可。
160
188
```
161
189
root@raspberrypi:/home/pi# nslookup www.google.com 1.1.1.1
162
190
Server: 1.1.1.1
@@ -211,13 +239,6 @@ root@raspberrypi:/home/pi# wget http://speedtest.atlanta.linode.com/100MB-atlant
211
239
212
240
[ 返回目录] ( #目录 )
213
241
214
- ## 应用场景
215
-
216
- - IP加速,可用于ip,子网加速
217
- - 域名,站点加速,需要使用dnsmasq或者nginx/openresty等组件实现
218
- - k8s集群网络代理,ip加速的一个子集,可代理访问k8s的service,pod网段
219
- - 全球应用加速
220
-
221
242
## 有问题怎么办
222
243
223
244
- [ wiki] ( https://github.com/ICKelin/gtun/wiki )
0 commit comments