Files
gtun/doc/基础用法_基于gtun实现公有云访问外部加速.md
2024-07-11 21:23:37 +08:00

4.8 KiB
Raw Permalink Blame History

基于gtun实现公有云访问外部加速

之前的三篇教程都偏向于本地加速的,在云场景下也能实现类似的代理加速功能,公有云场景和旁路由非常类似,

本文通过配置一个部署了gtun云网关让所有vpc的访问流量都通过这台服务器作为加速网关能够实现两个基本的功能

  • vpc内访问加速比如现在AI发展迅猛很多企业都需要在公有云上下载大模型那么通过配置gtun的加速网关能够解决这一场景
  • 跨vpc的单边访问比如有大陆和美国两个公有云通过配置对端vpc的网段加速就能实现大陆vpc通过内网ip访问美国的vpc。

依照惯例,我们还是先看一看拓扑图。

img.png

  • 包含大陆腾讯云和美国aws
  • 美国aws找一台云服务器部署gtund同时内网开启一个api-server进行测试验证
  • 大陆腾讯云找一台云服务器部署gtun同时内网有其他实例通过配置vpc路由把流量转到gtun所在的云服务器上

⚠️ gtun的云服务器相当于一个路由器如果该云服务器宕机会影响到其他实例的网络可用性

那么接下来开始具体的配置。

本文适用于2.0.7及以上版本

其他文章参考:

程序安装

这个之前的文章已经详细介绍了,并没有太多的区别,可以参考下面文章来进行配置

基础用法:基于gtun+ipset实现ip代理加速和分流

配置

首先清理GTUN_ALL配置的加速列表和NOPROXY的加速列表

ipset -F GTUN_ALL
ipset -F NOPROXY

这两个操作完之后就是一个不配置任何加速的空跑的gtun服务然后开始配置

配置包括两个方面:

  • gtun所在云服务器的转发规则ipset操作
  • 公有云的路由表

本文包括两个场景:

  • 美国公有云vpc网段的加速
  • 非vpc网段的加速

首先配置vpc网段的加速。

第一步把对端vpc的cidr加入到GTUN_ALL这个ipset当中

ipset add GTUN_ALL 172.31.0.0/16 

配置完这一步之后你就可以在gtun所在的云服务器通过对端服务器的内网地址访问到对端的服务。

我们启动一个http server来进行测试

root@ip-172-31-3-157:~# python3 -m http.server 12590

# 在大陆腾讯云通过curl访问测试
root@iZwz97kfjnf78copv1ae65Z:~# curl 172.31.3.157:12590 >/dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   835  100   835    0     0   3255      0 --:--:-- --:--:-- --:--:--  3261

# 观察输出来源IP是gtund所在服务器的内网IP172.31.3.157
Serving HTTP on 0.0.0.0 port 12590 (http://0.0.0.0:12590/) ...
172.31.3.157 - - [28/Apr/2024 10:59:31] "GET / HTTP/1.1" 200 -

有时候我们并不只是一台机器需要被gtun代理因此需要配置除了gtun所在的服务器之外的其他服务器的代理 这里需要通过配置公有云的vpc路由来把流量导入到gtun所在服务器。

第二步配置公有云的路由表把对端vpc的cidr路由到gtun所在的云服务器实例。

通过公有云的路由表能够实现其他机器也能够通过gtun访问到对端vpc的http服务。

非美国vpc网段的流量也是同样的配置方式只是路由表会比较大您也可以跟之前的文章一样配置类似0.0.0.0/0的路由把所有流量先导入到gtun所在服务器。

结束语

gtun加速公有云访问外部流量与其他场景没有本质上的区别唯一的区别仅仅只是需要配置公有云的路由

如果要跟软路由场景对标软路由由于本身有无线Wi-Fi因此网关会自动设置为gtun所在机器公有云则需要在云厂商控制台配置路由来控制。

本文的方式更像是旁路由的方式旁路由通常是手动修改网关地址或者通过修改dhcp下发的地址来控制流量的流向这里的公有云路由表类似dhcp下发。