mirror of
https://github.com/ICKelin/gtun.git
synced 2025-09-26 19:11:15 +08:00
doc: update readme
This commit is contained in:
100
README.md
100
README.md
@@ -19,21 +19,30 @@ gtun支持多线路配置,可以同时对美国,日本,欧洲目的网络
|
||||
|
||||
[](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)进行免费免费体验。
|
||||
同时我们也基于gtun开发了收费版本,对标阿里云的全球应用加速,ucloud的pathX等产品的功能,只是会更加灵活,支持私有化部署,独立部署,可以部署到公有云,数据中心和软路由,如果您感兴趣,可以访问[我们的网站](https://www.beyondnetwork.net)进行免费免费体验。
|
||||
|
||||
关于项目有任何问题需要咨询,可以[联系作者](#关于作者)进行交流
|
||||
|
||||
## 目录
|
||||
- [介绍](#gtun)
|
||||
- [应用场景](#应用场景)
|
||||
- [功能特性](#功能特性)
|
||||
- [技术原理](#技术原理)
|
||||
- [安装部署](#安装部署)
|
||||
@@ -42,7 +51,6 @@ gtun是一个完整的加速器,**目前只支持linux**
|
||||
- [安装运行gtun](#安装运行gtun)
|
||||
- [配置加速ip](#配置加速ip)
|
||||
- [加速效果测试](#加速效果)
|
||||
- [应用场景](#应用场景)
|
||||
- [有问题怎么办](#有问题怎么办)
|
||||
- [关于作者](#关于作者)
|
||||
|
||||
@@ -64,9 +72,9 @@ gtun是一款ip正向代理软件,包含代理客户端gtun和服务端gtund
|
||||
|
||||
gtun最主要的功能是流量代理,gtun经过三个版本的演变,最初基于tun网卡的vpn技术,然后优化到dnat技术,再到目前的tproxy技术,现已逐步趋于稳定。
|
||||
|
||||
gtun本身只提供流量代理通道,至于哪些流量需要被劫持,这个是由使用者定义的,使用者最终只需要将被代理的IP加入到`ipset`当中,那么该ipset的ip就会被代理
|
||||
gtun本身只提供流量代理通道,至于哪些流量需要被劫持,**这个是由使用者定义的**,使用者最终只需要将被代理的IP加入到`ipset`当中,那么该ipset的ip就会被代理
|
||||
|
||||
为了实现更加快速的代理,gtun考虑集成`kcp`或者`quic`等基于UDP实现的可靠性传输协议,以避免长链路tcp丢包严重触发拥塞控制机制,降低传输效率。
|
||||
为了实现更加快速的代理,gtun考虑集成`kcp`或者`quic`等基于UDP实现的可靠性传输协议,同时接入FEC,实时选路等机制,以避免长链路tcp丢包严重触发拥塞控制机制,降低传输效率。
|
||||
|
||||
[返回目录](#目录)
|
||||
|
||||
@@ -76,10 +84,10 @@ gtun本身只提供流量代理通道,至于哪些流量需要被劫持,这
|
||||
### 前期准备
|
||||
|
||||
- 一台公有云服务器,用于部署服务端程序gtund,区域越靠近被加速区域(源站)越好,并且确认gtund监听的端口被打开
|
||||
- 另外一台可以是公有云服务器,也可以是内网机器,用于部署客户端程序gtun,目前gtun只支持linux系统。
|
||||
- 另外一台可以是公有云服务器,也可以是内网机器,也可以是路由器,用于部署客户端程序gtun,目前gtun只支持linux系统
|
||||
|
||||
### 安装运行gtund
|
||||
gtund需要运行在公有云上,相对比较简单,原则上越靠近源站越好。
|
||||
gtund需要运行在公有云上,相对比较简单,原则上越靠近需要加速的区域越好。
|
||||
|
||||
首先生成配置文件,可以下载 [gtund.yaml](https://github.com/ICKelin/gtun/blob/master/etc/gtund.yaml) 进行修改
|
||||
|
||||
@@ -87,13 +95,16 @@ gtund需要运行在公有云上,相对比较简单,原则上越靠近源站
|
||||
trace: ":3003"
|
||||
server:
|
||||
- listen: ":3002"
|
||||
authKey: "rewrite with your auth key"
|
||||
scheme: "kcp"
|
||||
|
||||
- listen: ":3001"
|
||||
scheme: "mux"
|
||||
|
||||
log:
|
||||
days: 5
|
||||
level: "debug"
|
||||
path: "gtund.log"
|
||||
|
||||
```
|
||||
|
||||
大部分情况下,如果您的端口未被占用,不需要修改任何配置
|
||||
@@ -105,58 +116,66 @@ gtun可以运行在内网,也可以运行在公有云,在本场景当中,g
|
||||
首先生成配置文件,可以下载 [gtun.yaml](https://github.com/ICKelin/gtun/blob/master/etc/gtun.yaml) 进行修改
|
||||
|
||||
```yaml
|
||||
settings:
|
||||
US:
|
||||
# 代理ip文件,可以是本地文件,也可以是网络文件,一行是一个IP或者cidr
|
||||
proxy_file: "https://www.ipdeny.com/ipblocks/data/countries/us.zone"
|
||||
route:
|
||||
# 拨测地址,需要修改US_SERVER_IP和US_SERVER_TRACE_PORT,对应gtund的公网IP和端口
|
||||
- trace_addr: ${US_SERVER_IP}:${US_SERVER_TRACE_PORT}
|
||||
scheme: "kcp"
|
||||
# 服务端地址,修改为对应gtund的IP和端口
|
||||
addr: ${US_SERVER_IP}:${US_SERVER_PORT}
|
||||
auth_key: "rewrite with your auth key"
|
||||
accelerator:
|
||||
HK:
|
||||
routes:
|
||||
- scheme: "kcp"
|
||||
server: "gtun.alihk.byc.com:3002"
|
||||
trace: "gtun.alihk.byc.com:3003"
|
||||
proxy:
|
||||
# 代理插件配置
|
||||
"tproxy_tcp": |
|
||||
tproxy_tcp: |
|
||||
{
|
||||
"read_timeout": 30,
|
||||
"write_timeout": 30,
|
||||
"listen_addr": ":8524",
|
||||
"rate_limit": 50,
|
||||
"region": "US"
|
||||
"listen_addr": ":8524"
|
||||
}
|
||||
"tproxy_udp": |
|
||||
tproxy_udp: |
|
||||
{
|
||||
"read_timeout": 30,
|
||||
"write_timeout": 30,
|
||||
"session_timeout": 30,
|
||||
"listen_addr": ":8524",
|
||||
"rate_limit": 50,
|
||||
"region": "US"
|
||||
"listen_addr": ":8524"
|
||||
}
|
||||
log:
|
||||
days: 5
|
||||
level: Debug
|
||||
level: debug
|
||||
path: gtun.log
|
||||
|
||||
http_server:
|
||||
listen_addr: ":9001"
|
||||
```
|
||||
|
||||
配置完成之后可以启动gtun程序,运行`./gtun -c gtun.yaml`即可启动。
|
||||
|
||||
gtund启动时,会自动设置 iptables规则和路由表,并将需要加速的ip加入ipset当中,如果ip量比较大,启动时间会稍微长一些。
|
||||
|
||||
[返回目录](#目录)
|
||||
|
||||
### 配置加速ip
|
||||
目前支持两种方式配置IP:
|
||||
|
||||
- 基于接口的方式,我们提供HTTP接口进行动态增删IP,目前正在开发页面配置动态管理加速的IP,应用,域名,敬请期待。
|
||||
- 使用命令手动配置,手动将ip加入到ipset当中
|
||||
在上述过程中,启动了gtun和gtund程序,但是并未添加任何需要加速的信息,那么gtun如何进行加速呢?需要额外手动配置加速ip,并将该ip的tcp流量全部转发至127.0.0.1:8524端口,udp流量全部转发至127.0.0.1:8524∂端口。
|
||||
|
||||
这个过程是通过ipset和路由来配置的。以1.1.1.1为例
|
||||
|
||||
第一步,创建ipset,并将1.1.1.1加入其中
|
||||
```
|
||||
ipset create GTUN-US hash:net
|
||||
ipset add GTUN-US 1.1.1.1
|
||||
```
|
||||
|
||||
第二步,创建iptables规则,匹配目的ip为GTUN-US这个ipset内部的ip,然后做tproxy操作,将流量重定向到本地8524和8524端口
|
||||
|
||||
```
|
||||
iptables -t mangle -I PREROUTING -p tcp -m set --match-set GTUN-US dst -j TPROXY --tproxy-mark 1/1 --on-port 8524
|
||||
iptables -t mangle -I PREROUTING -p udp -m set --match-set GTUN-US dst -j TPROXY --tproxy-mark 1/1 --on-port 8524
|
||||
iptables -t mangle -I OUTPUT -m set --match-set GTUN-US dst -j MARK --set-mark 1
|
||||
```
|
||||
|
||||
第三步,添加路由表
|
||||
|
||||
```
|
||||
ip rule add fwmark 1 lookup 100
|
||||
ip ro add local default dev lo table 100
|
||||
```
|
||||
|
||||
至此所有配置都已经完成,后续需要新增代理ip,只使用以下命令将ip加入GTUN-US这个ipset当中即可,现在可以先尝试测试1.1.1.1这个ip的代理。
|
||||
|
||||
接下来以命令配置的方式进行配置,以`1.1.1.1`为例,只需要将`1.1.1.1`加入其中ipset当中`ipset add GTUN-US 1.1.1.1`即可。
|
||||
```
|
||||
root@raspberrypi:/home/pi# nslookup www.google.com 1.1.1.1
|
||||
Server: 1.1.1.1
|
||||
@@ -211,13 +230,6 @@ root@raspberrypi:/home/pi# wget http://speedtest.atlanta.linode.com/100MB-atlant
|
||||
|
||||
[返回目录](#目录)
|
||||
|
||||
## 应用场景
|
||||
|
||||
- IP加速,可用于ip,子网加速
|
||||
- 域名,站点加速,需要使用dnsmasq或者nginx/openresty等组件实现
|
||||
- k8s集群网络代理,ip加速的一个子集,可代理访问k8s的service,pod网段
|
||||
- 全球应用加速
|
||||
|
||||
## 有问题怎么办
|
||||
|
||||
- [wiki](https://github.com/ICKelin/gtun/wiki)
|
||||
|
Reference in New Issue
Block a user