多客户端通过SSL-VPN实现网络互通

使用SSL-VPN实现客户端访问VPC时,如果一个VPN网关下连接了多个客户端,除了可以实现多个客户端同时与VPC相互通信,多个客户端之间默认也支持相互通信。

场景示例

某公司因业务发展需要拓展服务器资源,公司计划在阿里云侧部署服务器以节省物理设备成本。阿里云侧服务器部署完成后,企业需要一个解决方案,满足以下网络连通诉求:

  • 本地服务器(客户端2、客户端3)与VPC内服务器可以实现私网互通以完成业务交互

  • 出差的员工(客户端1)可以远程访问公司内网(私网)所有服务器资源

SSL-VPN可以满足该企业的网络连通诉求。在VPC下创建一个VPN网关,分别在客户端1、客户端2、客户端3中安装VPN软件,经过配置后,使客户端1、客户端2、客户端3均与VPC建立SSL-VPN连接,即可快速实现客户端1、客户端2、客户端3、ECS实例之间的加密私网互通,任意两个节点之间均能相互通信,满足企业的网络连通诉求。

image

前提条件

  • 创建一个VPC实例,VPC中使用ECS部署了相关服务。

  • 客户端1、客户端2、客户端3均能够访问互联网。

操作步骤

步骤一:创建VPN网关

  1. 登录VPN网关管理控制台
  2. VPN网关页面,单击创建VPN网关

  3. VPN网关(包月)页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。

    • 地域和可用区:选择VPN网关实例的地域。 本文选择华东1(杭州)

      说明

      确保VPN网关实例的地域和VPC实例的地域相同。

    • 网关类型:需选择普通型

    • 网络类型:需选择公网

    • VPC:选择VPC实例。

    • 虚拟交换机1:从VPC实例中选择一个交换机实例。

    • 虚拟交换机2:从VPC实例中选择第二个交换机实例。

      在支持多可用区的地域,您需要从VPC实例下指定两个分布在不同可用区的交换机实例。每个交换机实例下需要拥有一个空闲的IP地址。如果交换机不满足需求,需新建交换机实例

    • IPsec-VPN关闭IPsec-VPN功能。

    • SSL-VPN开启SSL-VPN功能。

    • SSL连接数:选择需要连接的客户端的数量。

    以上仅列举本文强相关的配置,其余配置项保持默认值或为空。更多信息,请参见创建和管理VPN网关实例

  4. 返回VPN网关页面,查看创建的VPN网关实例。

    刚创建好的VPN网关实例的状态是准备中,约1~5分钟会变成正常状态。正常状态就表明VPN网关实例已完成初始化,可以正常使用。

步骤二:创建SSL服务端

  1. 在左侧导航栏,选择网间互联 > VPN > SSL服务端

  2. 在顶部菜单栏,选择SSL服务端的地域。

    说明

    需确保SSL服务端的地域和已创建的VPN网关实例的地域相同。

  3. SSL服务端页面,单击创建SSL服务端

  4. 创建SSL服务端面板,根据以下信息配置SSL服务端,然后单击确定

    • VPN网关:选择已创建的VPN网关实例。

    • 本端网段:以CIDR地址块的形式输入要访问的VPC实例的网段。本文输入192.168.0.0/16。

    • 客户端网段:以CIDR地址块的形式输入客户端访问VPC实例时使用的网段。本文输入10.0.99.0/24。

      重要
      • 客户端网段的子网掩码位数在1629位之间。

      • 请确保客户端网段与本端网段、VPC网段以及与客户端终端关联的任何路由网段均没有重叠。

      • 在指定客户端网段时,建议您使用10.0.0.0/8、172.16.0.0/12192.168.0.0/16网段及其子网网段。如果您的客户端网段需要指定为公网网段,您需要将公网网段设置为VPC的用户网段,以确保VPC可以访问到该公网网段。关于用户网段的更多信息,请参见什么是用户网段?如何配置用户网段?

      • 创建SSL服务端后,系统后台会自动将客户端网段的路由添加在VPC实例的路由表中,请勿再手动将客户端网段的路由添加到VPC实例的路由表,否则会导致SSL-VPN连接流量传输异常。

      以上仅列举本文强相关的配置,其余配置项保持默认值或为空。更多信息,请参见创建和管理SSL服务端

步骤三:创建SSL客户端并下载证书

根据以下操作,分别为客户端1、客户端2、客户端3创建SSL客户端并下载证书。

  1. 在左侧导航栏,选择网间互联 > VPN > SSL客户端

  2. SSL客户端页面,单击创建SSL客户端

  3. 创建SSL客户端面板,输入SSL客户端的名称,选择已创建的SSL服务端,然后单击确定

  4. SSL客户端页面,找到已创建的SSL客户端,然后在操作列单击下载证书

    将下载的SSL客户端证书保存在您的本地,后续用于配置客户端。SSL客户端

步骤四:配置客户端

根据以下操作,分别为客户端1、客户端2、客户端3安装VPN软件和SSL客户端证书,然后与VPC建立SSL-VPN连接。

本文中客户端1和客户端2使用Windows Server 2025 数据中心版 64位系统,客户端3使用Ubuntu 24.04 64位系统。如果您的客户端使用的是macOS系统或Android系统,请参见配置客户端进行操作。

配置客户端1和客户端2

  1. 登录客户端,在客户端中下载并安装OpenVPN客户端(Windows版本)如果出现网页打不开的情况,请联系客户经理或阿里云工程师。

  2. 将已经下载的SSL客户端证书解压拷贝至OpenVPN\config目录。

    本文将证书解压拷贝到C:\Program Files\OpenVPN\config目录,请您根据安装路径将证书解压拷贝至您真实的目录。证书路径

  3. 启动OpenVPN客户端,单击Connect,与VPC建立SSL-VPN连接。Connect

配置客户端3

  1. 登录客户端,并打开命令行窗口。

  2. 执行以下命令安装OpenVPN客户端,并创建conf目录。

    apt-get update
    apt-get install -y openvpn
    mkdir -p /etc/openvpn/conf
  3. 将已下载的SSL客户端证书解压拷贝至/etc/openvpn/conf/目录。

  4. 进入/etc/openvpn/conf/目录,执行以下命令,与VPC建立SSL-VPN连接。

    openvpn --config /etc/openvpn/conf/config.ovpn --daemon

完成上述配置后,登录VPN网关管理控制台,在SSL服务端详情页面查看系统为客户端分配的虚拟IP地址,客户端将使用虚拟IP地址与VPC通信,以及与其他客户端通信。

虚拟IP地址

步骤五:测试连通性

SSL-VPN连接成功建立后,在安全组规则或者服务器访问控制规则允许的情况下,客户端1、客户端2、客户端3、ECS实例任意两个节点之间均可以实现相互通信。本文以验证客户端1与客户端2、客户端3、ECS实例之间的连通性为例,验证客户端之间的连通性,以及客户端与VPC之间的连通性,其余连通性测试场景文档不再赘述。

说明

测试连通性前,请确保客户端1、客户端2、客户端3的访问控制规则以及ECS实例的安全组规则已经放开ICMP协议,允许客户端网段下的节点访问。

  1. 客户端1访问客户端2、客户端3、ECS实例。

    1. 登录客户端1,打开Command Prompt窗口。

    2. Command Prompt窗口执行ping <客户端虚拟IP地址或ECS IP地址> -S <客户端1虚拟IP地址>命令,指定使用客户端1虚拟IP地址分别访问客户端2、客户端3、ECS实例。

    3. 如果客户端1能收到如下所示的回复报文,则证明客户端1可以正常访问客户端2、客户端3、ECS实例。客户端1访问

  2. 分别登录客户端2、客户端3、ECS实例,执行命令测试是否可以正常访问客户端1。如果可以正常收到回复报文,则证明ECS实例、客户端2、客户端3与客户端1之间可以相互通信。

    客户端2访问客户端1

    • ipconfig:查看客户端的虚拟IP地址

    • ping <客户端1虚拟IP地址> -S <客户端2虚拟IP地址>:使用客户端2虚拟IP地址访问客户端1

    win2

    客户端3访问客户端1

    • ifconfig:查看客户端的虚拟IP地址

    • ping <客户端1虚拟IP地址> -I <客户端3虚拟IP地址>:使用客户端3虚拟IP地址访问客户端1

    客户端3

    ECS实例访问客户端1

    • ifconfig:查看客户端的虚拟IP地址

    • ping <客户端1虚拟IP地址>

    aliyun

常见问题

如果一个VPN网关下同时存在IPsec-VPN连接和SSL-VPN连接,本地数据中心和客户端之间支持通信么?

支持。

需要在本地数据中心添加去往客户端网段的路由,在SSL服务端的本端网段中添加本地数据中心的网段。