利用VPN隧道实现本地开发人员PC和阿里云VPC的网络互通,从而实现本地开发人员PC和VPC内的HSF服务的相互调用。
背景信息
通过VPN在本地调试RPC服务的架构如下图所示:

VPN部署结构
VPN部署结构如下图所示:

概念 | 说明 | 本文中的示例 |
---|---|---|
OpenVPN Server IP | VPC客户端访问VPN服务器的公网IP地址 | 116.62.136.60 |
开发人员PC IP | 开发人员PC通过VPN暴露在VPC内可被路由的IP地址 | 192.168.255.6 |
开发人员PC IP网段 | 一个VPN服务可以连接多个VPC客户端,每个客户端都分配一个独立的IP地址,这个IP地址的可分配范围就是IP网段。 | 192.168.255.0/24 |
VPN容器网关IP | 本文中OpenVPN Server使用了Docker的网桥模式,Docker网桥为OpenVpn容器分配的IP即VPN容器网关IP。 | 172.31.254.2 |
ECS 私有 IP | ECS在VPC中的IP, 一个ECS对应一个私有IP。 | 172.16.0.86 |
容器 IP | EDAS为每一个应用的Docker容器分配的IP地址。一个ECS上启动多个容器时会分配多个容器IP, 一个EDAS应用容器只有一个容器IP。 | 10.0.64.3 |
使用Docker在VPC内的ECS上安装OpenVPN服务器
在本地开发人员PC上配置OpenVPN客户端
- Mac:安装Tunnelblick
- Windows:安装openVpn Client
此处以Mac为例进行演示。
配置VPC内的VPN网络路由
从VPC内的ECS到开发人员PC的网络还需要进行下面的配置才能打通。包含两种方式:打通OpenVPN宿主机到开发人员PC网络和打通集群内其他机器到开发人员PC的网络,下面将分别介绍。
- 打通OpenVPN宿主机到开发人员PC网络
- 执行docker exec -ti openvpn bash,登录OpenVPN容器。
- 执行route -n,在OpenVPN容器内查询路由规则。
- 根据3中开发人员PC的IP,获取对应的路由规则中的IP地址段。
示例中获取到的IP为
192.168.255.6
,对应上图中的网段为192.168.255.0/24,即Destination 192.168.255.0,子网掩码255.255.255.0. - 在OpenVPN容器内执行docker exec -ti openvpn bash命令,获取eth0网卡的IP(VPN容器网关IP)。
- 执行
route add -net 192.168.255.0 netmask 255.255.255.0 dev docker0 gw 172.31.254.2
命令,添加宿主机到VPN容器的路由规则。以上一步获取到的IP作为网关,将上上步拿到的网段的流量转到docker0网卡。
- 在VPN所在宿主机执行
ping 192.168.255.6
命令,测试到开发人员PC的网络是否连通。
- 打通集群内其他机器到开发人员PC的网络
获取EDAS环境配置信息进行Debug调试
-
下载云上鉴权版本的Pandora压缩包taobao-hsf.tgz。
-
下载到本地后,执行
tar -xvf taobao-hsf.tgz
得到taobao-hsf.sar文件夹。假设文件夹目录为:/Users/jiangyu.zjy/demoSpasKey/pandora/taobao-hsf.sar
-
在线上EDAS环境中运行的ECS上执行
cat /home/admin/.spas_key/default
获取鉴权参数,并写入本地开发人员PC的文件中。注意 不同的命名空间配置不同,请妥善保管鉴权配置参数,避免安全风险。目录示例为(/Users/username/demoSpasKey/default)。
-
在运行着EDAS实例的ECS(需与被调试的应用在同一个命名空间内)上执行
ps -ef|grep java |grep tomcat |grep project.name
获取其他配置参数。project.name 应用ID 00de7116-d8eb-4d57-ba6a-caf6fccb7484 ecc.id 应用实例ID df0724b3-1057-44ef-b14f-f291d562a457 JM.CONTAINER.ID 应用Tomcat容器ID, 同应用实例ID df0724b3-1057-44ef-b14f-f291d562a457 address.server.domain 地址服务器域名 addr-hz-internal.edas.aliyun.com address.server.port 地址服务器端口 8080 configserver.client.port 注册中心开放的端口 8000 -
配置Consumer应用启动参数。
pandora.location 本地taobao-hsf.sar文件夹的绝对路径 /Users/jiangyu.zjy/demoSpasKey/pandora/taobao-hsf.sar spas.identity 本地鉴权信息文件的绝对路径 /Users/jiangyu.zjy/demoSpasKey/default project.name 应用ID 00de7116-d8eb-4d57-ba6a-caf6fccb7484 tenant.id 租户ID 5f18a6c8-da89-456e-a3e5-0eabc411d1ed address.server.domain 地址服务器域名 addr-hz-internal.edas.aliyun.com address.server.port 地址服务器端口 8080 configserver.client.port 注册中心开放的端口 8000 hsf.server.ip 开发人员PC IP 192.168.255.6 -
启动本地Consumer应用,访问线上的HSF服务。
-
配置Provider应用启动参数,配置内容同Consumer应用。
-
线上服务调用本地HSF。
在文档使用中是否遇到以下问题
更多建议
匿名提交