可通过SSL-VPN打通客户端(Windows、Linux、Android、macOS)与云上VPC内网,实现互联网环境下的安全访问。
针对iOS/iPadOS系统客户端,请查看iPhone/iPad通过SSL-VPN连接VPC。
场景示例
目标:创建SSL-VPN网关,使本地客户端能够通过内网IP安全访问VPC内的ECS实例。
资源规划如下:
VPC
名称:
vpc-demo地域:华东1(杭州)
网段:10.0.0.0/16
交换机:创建2个,名称分别为
vsw1和vsw2vsw1位于可用区J,网段:10.0.0.0/24vsw2位于可用区K,网段:10.0.1.0/24
ECS:地址为10.0.0.1,操作系统为
Alibaba Cloud Linux 3.2104 LTS 64位
客户端所在的本地网段:172.16.0.0/16
步骤一:配置云上VPN资源
在将客户端连接到VPC之前,需先在阿里云控制台创建并配置 VPN 网关、SSL 服务端、SSL客户端。
1. 创建VPN网关
VPN 网关是 SSL-VPN 连接在云上的出入口。
前往控制台VPN网关页面,单击创建VPN网关。
在VPN网关(包月)页面进行配置:
配置项
截图
实例名称:
vpn-demo地域和可用区:华东1(杭州)。
网关类型:普通型。
VPC:选择客户端要访问的VPC。
虚拟交换机1/虚拟交换机2: 分别选择
vsw1和vsw2。VPN网关底层采用双机热备架构,在VPC支持多个可用区的地域,为保障跨可用区高可用性,VPC需包含至少2个位于不同可用区的交换机。如果不满足条件,请先创建交换机。
带宽规格:5Mbps。
IPsec-VPN:关闭(开启下方的SSL-VPN后才会有关闭选项)。
SSL-VPN:开启。
SSL连接数:5。
计费周期:按需选择,最小为1个月。
服务关联角色:如果未创建,请单击创建服务关联角色。
关于创建VPN网关的详细参数描述,请参见创建和管理VPN网关实例。

购买支付完毕后,可在VPN网关页面看到已创建的VPN网关。
刚创建的VPN网关状态为准备中,约1~5分钟状态会变为正常,此时即可开始使用。

2. 创建SSL服务端
SSL服务端用于定义客户端可访问的云上网络范围,以及配置客户端IP地址池。
前往SSL服务端页面,在顶部菜单栏切换至华东1(杭州)地域后,单击创建SSL服务端。

在创建SSL服务端面板,根据以下信息配置SSL服务端:
名称:输入
server-demoVPN网关:选择刚刚创建的VPN网关。
本端网段:输入VPC的网段
10.0.0.0/16。此网段是您希望客户端访问的云上网络范围,通常是您的VPC网段。
客户端网段:指 VPN 网关用于向客户端虚拟网卡分配 IP 的地址池,不能与本端网段或客户端已经使用的网段(例如客户端所在的本地网段)重叠,否则会导致路由冲突。建议使用不易冲突的 RFC 1918 私有网段(例如
10.200.200.0/24)。
其他选项保持默认。关于创建SSL服务端的详细参数描述,请参见创建和管理SSL服务端。

3. 创建SSL客户端并下载证书
SSL客户端负责客户端证书管理。每个需要连接的客户端都需要导入证书,用于身份验证和加密。
在左侧导航栏,选择。顶部菜单栏,确认地域为华东1(杭州);在SSL客户端页面,单击创建SSL客户端。

在创建SSL客户端面板,名称输入
client-demo,SSL服务端选择server-demo,然后单击确定。
在SSL客户端页面,找到已创建的SSL客户端,在其操作列单击下载证书。

步骤二:配置客户端
请根据客户端的操作系统,查看对应的配置方法。
Windows客户端
请下载适配您 Windows 系统版本的 OpenVPN 客户端,并根据界面提示完成安装:
Windows 64位系统(Intel/AMD):OpenVPN客户端(Windows 64位)。
Windows ARM64系统:OpenVPN客户端(Windows ARM64)。
如果下载链接无法打开,请联系客户经理或阿里云工程师。
将下载的 SSL 客户端证书解压,并将解压后的所有文件复制到 OpenVPN 的配置目录中。
默认路径:
C:\Program Files\OpenVPN\config注意:如果您修改过安装路径,请复制到您实际安装目录下的 config 文件夹内。

用记事本打开
config.ovpn文件,末尾添加1行:disable-dco。OpenVPN 2.6版本引入的OpenVPN 的数据通道卸载 (DCO) 功能在某些Windows系统(如Windows 10/11特定版本)上存在兼容性问题,此配置是为了关闭DCO,以解决部分设备无法连接的问题。

右键单击桌面右下角托盘处的OpenVPN图标,然后单击Connect建立VPN连接。

如果显示State为Connected,且分配了IP,则证明已成功建立连接。

Linux客户端
执行以下命令安装OpenVPN客户端,并创建
conf目录。CentOS
yum install -y openvpn mkdir -p /etc/openvpn/confUbuntu
apt-get update apt-get install -y openvpn mkdir -p /etc/openvpn/conf将已下载的SSL客户端证书解压拷贝至/etc/openvpn/conf/目录。

进入/etc/openvpn/conf/目录,执行以下命令建立VPN连接。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon(可选)使OpenVPN进程开机自动启动
编辑/etc/rc.local文件,并在文件中添加命令。
#以编辑模式打开/etc/rc.local文件 vi /etc/rc.local #按下i键,进入文件编辑模式,然后在/etc/rc.local文件中补充以下命令 cd /etc/openvpn/conf/ openvpn --config /etc/openvpn/conf/config.ovpn --daemon #按下Esc键,退出文件编辑模式,然后输入以下命令保存退出文件 :wq为/etc/rc.local文件添加执行权限。
chmod +x /etc/rc.local
Android客户端
下载并安装OpenVPN客户端(Android版本)。如果下载链接无法打开,请联系客户经理或阿里云工程师。
本文使用Android 9.0版本的客户端,并安装了3.0.5版本的OpenVPN客户端。
将已下载的SSL客户端证书传输至Android设备,并解压证书。
说明如果您的Android设备无解压软件,您可以在电脑端解压证书然后将解压后的文件传输至Android客户端。
请确保解压后的文件在同一个文件夹下,如下图所示。

打开OpenVPN客户端,导入
config.ovpn文件,添加VPN连接。
序号
说明
①
选择OVPN Profile连接方式。
②
在存储目录中找到
config.ovpn文件。③
单击IMPORT,导入
config.ovpn文件。④
系统自动读取
config.ovpn文件中的信息,显示待连接的VPN网关的公网IP地址。单击ADD,添加VPN连接。单击滑动按钮,开启VPN连接。

Mac客户端(图形界面,M系列芯片推荐)
打开Tunnelblick Releases页面,找到
Tunnelblick 4.0.1 (build 5971)版本,在Assets面板中下载.dmg格式的文件。如果下载链接无法打开,请联系客户经理或阿里云工程师。
安装Tunnelblick软件。

序号
说明
①
双击已下载的Tunnelblick软件安装包。
②
双击Tunnelblick图标。
③
选择我有配置文件。
④
单击确定。
先将已下载的SSL客户端证书解压,再将已解压的
config.ovpn文件拖动至配置面板下,建立VPN连接。

序号 | 说明 |
① | 在启动台中单击Tunnelblick图标,打开Tunnelblick软件。 |
② | 将已解压的文件 |
③ | 选择只是我。 |
④ | 单击连接。 |
Mac客户端(命令行)
打开Terminal命令行窗口,如果您的客户端尚未安装homebrew,执行以下命令安装Homebrew。
说明因Homebrew的安装脚本中包含sudo命令,中途会提示您输入管理员密码。当出现“Press RETURN/ENTER to continue...”时,按下Enter键继续。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
执行以下命令安装OpenVPN客户端。
brew install openvpn
将已下载的SSL客户端证书解压拷贝至配置目录。
备份/opt/homebrew/etc/openvpn目录。
cp -r /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak执行以下命令删除OpenVPN当前的配置文件。
rm /opt/homebrew/etc/openvpn/*执行以下命令将已经下载的SSL客户端证书拷贝到配置目录。
cp /path/to/certs.zip /opt/homebrew/etc/openvpn/说明/path/to/certs.zip是创建SSL客户端步骤中已下载的SSL客户端证书的路径,通常在当前用户的Downloads目录下,例如/Users/example/Downloads/certs.zip。
执行以下命令解压证书。
cd /opt/homebrew/etc/openvpn/ unzip /opt/homebrew/etc/openvpn/certs.zip选择运行方式。
前台运行
您可以执行如下命令启动客户端进程,建立VPN连接:
sudo /opt/homebrew/opt/openvpn/sbin/openvpn --config /opt/homebrew/etc/openvpn/config.ovpn执行该命令后,该命令会保持在前台运行,当您需要断开连接时,请输入Ctrl+C终止如上命令。
后台运行
执行如下命令,使VPN客户端进程以服务的方式在后台运行,并开机自动启动:
cp config.ovpn openvpn.conf sudo brew services start openvpn当需要停止运行时,请执行如下命令:
sudo brew services stop openvpn
步骤三:测试连通性
配置安全组规则
为确保客户端能访问 VPC 内的资源,请在ECS实例关联的安全组中添加入方向规则,放行来自客户端网段(
10.200.200.0/24)的流量。用于连通性测试:允许 ICMP 协议,以便
ping命令可以正常工作。用于业务访问:允许业务所需的特定端口,例如 TCP 22 (SSH), TCP 3389 (RDP), TCP 80/443 (Web服务) 等。
Ping测试
在客户端设备上,使用ping命令访问ECS,如果能够ping通,则表示客户端已和ECS内网连通:
ping 10.0.0.1
服务端口测试
为进一步验证业务访问,可尝试访问 ECS 上运行的某个服务。例如,在 ECS 上安装并启动一个 Web 服务(如 Nginx):
# 在ECS上执行(以Alibaba Cloud Linux 3 为例:) yum install -y nginx systemctl start nginx.service确认ECS关联的安全组已放行来自客户端网段的 TCP 80 端口的流量后,在客户端浏览器中访问
http://10.0.0.1。如果能看到 Nginx 的欢迎页面,则证明业务访问正常。

常见问题
如何使用用户名密码认证方式?
可开启双因子认证,即客户端只有通过证书认证和用户名密码双重认证后,才能建立SSL-VPN连接。
Linux或Mac客户端,如何断开VPN连接?
打开命令行,执行如下命令搜索OpenVPN进程,并记录进程号。
ps aux | grep openvpn执行以下命令关闭OpenVPN进程。
kill -9 <进程号>
无法成功连通?
问题现象 | 可能原因与排查步骤 |
无法连接,例如客户端日志提示 | 1. 网络问题:确认您的客户端设备可以正常访问互联网,并且本地网络防火墙或安全软件没有阻止 OpenVPN 客户端访问 VPN 网关的公网 IP 和端口(默认为TCP/1194)。 2. 证书问题:确认您导入的 |
连接成功,但 | 1. 安全组规则:这是最常见的原因。请登录 ECS 控制台,检查对应实例的安全组规则,确保已添加入方向规则,源地址为您的客户端网段(例如 2. ECS 内部防火墙:检查 ECS 操作系统内部的防火墙(如 firewalld, iptables)是否拦截了 ICMP 请求。 |
连接成功, | 1. 安全组规则:检查 ECS 安全组,确保已为您的客户端网段放行了相应的服务端口(如 TCP 80, TCP 22)。 2. 服务监听状态:登录 ECS,确认端口正常监听(例如Linux系统使用 3. ECS自身防火墙放通:登录 ECS,确认ECS操作系统自身的防火墙放通了端口 |
连接 VPN 后,无法访问本地网络(如打印机)或无法上网 | 路由冲突:可能是您在 SSL 服务端配置的客户端网段与您当前所在的本地网络网段冲突。请返回步骤一,修改 SSL 服务端的客户端网段为一个更冷门的网段(如 |
ECS 无法主动 | 正常现象。出于安全考虑,客户端的操作系统防火墙默认会阻止来自外部(包括 VPN 对端)的主动连接请求。这是预期行为,不影响客户端访问云上资源。如有云上资源访问客户端的请求,请在客户端防火墙放通ICMP协议。 |
更多问题请查看SSL-VPN连接常见问题。
















