如果您的业务部署在云上,需要通过互联网加密访问云上内网资源时,可以使用SSL-VPN。例如远程办公场景中,客户端可以使用SSL-VPN加密访问内部OA系统、文件服务器等。本文以客户端访问云上的1台ECS为例,帮助您快速熟悉SSL-VPN的操作使用方法。
本文会分别介绍Windows、Linux、Android、macOS系统的客户端配置方法,如果您的客户端设备是iPhone手机,请查看使用手机(iOS系统)自带的VPN软件建立远程连接。
场景示例
如图,假设您已经在云上部署了1台ECS,计划将本地客户端设备与ECS内网互通。那么您可以在ECS所属的VPC中部署配置SSL-VPN网关,实现本地客户端与VPC内网互通。
配置前您需要先规划好网段和IP地址,本文规划示例如下:
VPC:
地域:华东1(杭州)
网段:10.0.0.0/16
交换机1,位于可用区J,网段:10.0.0.0/24
交换机2,位于可用区K,网段:10.0.1.0/24
ECS:地址为10.0.0.1,操作系统为Alibaba Cloud Linux 3.2104 LTS 64位
计划分配的客户端网段:192.168.0.0/16。
建立连接后,VPN网关将从这个网段中给客户端虚拟网卡分配IP地址,注意不是指客户端已有的内网网段。
如果您自行规划资源,注意要满足如下条件:
在VPC支持多个可用区的地域,为保证跨可用区高可用性,VPC需至少在2个不同的可用区中存在交换机。如果不满足条件,请先创建交换机。
计划分配的客户端网段,不能和交换机网段、本地客户端设备关联的路由冲突。
第1步:配置SSL-VPN网关
在将客户端连接到VPC之前,您需要先将SSL-VPN网关部署到VPC中。
创建VPN网关
登录VPN网关管理控制台。在VPN网关页面,单击创建VPN网关。
在VPN网关(包月)页面,按照如下信息进行配置,其他配置项保持默认,然后单击立即购买并完成支付。
配置项
截图
实例名称:VPN网关1。
地域和可用区:华东1(杭州)。
网关类型:普通型。
VPC:选择客户端要连接的VPC。
虚拟交换机1: 交换机1。
虚拟交换机2: 交换机2。
带宽规格:5Mbps。
IPsec-VPN:关闭。
SSL-VPN:开启。
SSL连接数:5。
计费周期:1个月。(最小选择1个月)
服务关联角色:单击创建服务关联角色。(若本配置项显示为已创建,则表示您的账号下已创建了该角色)
回到VPN网关管理控制台页面,您可以看到已创建的VPN网关。
刚创建好的VPN网关的状态是准备中,约1~5分钟会变成正常状态。正常状态就表明VPN网关已完成初始化,可以正常使用。
创建SSL服务端
SSL服务端用于控制客户端可以访问哪些网络和资源。
在左侧导航栏,选择
;在顶部菜单栏,选择华东1(杭州)地域;在SSL服务端页面,单击创建SSL服务端。在创建SSL服务端面板,根据以下信息配置SSL服务端,其他选项保持默认,然后单击确定。
名称:SSL服务端1
VPN网关:选择上一步创建的“VPN网关1”
本端网段:直接输入VPC的网段10.0.0.0/16。
客户端网段:输入192.168.0.0/16。
说明本端网段:客户端通过SSL-VPN连接要访问的地址段。
客户端网段:给客户端虚拟网卡分配访问地址的网段,不是指客户端已有的内网网段,不可和本端网段重叠。
创建SSL客户端并下载证书
SSL客户端负责客户端证书管理,1个客户端对应1个证书。证书用于对客户端进行身份验证以及数据加密,您需要先下载证书,再将证书导入到客户端中。
在左侧导航栏,选择
。顶部菜单栏,确认地域为华东1(杭州);在SSL客户端页面,单击创建SSL客户端。在创建SSL客户端证书面板,名称输入
SSL客户端1
,SSL服务端选择SSL服务端1
,然后单击确定。在SSL客户端页面,找到已创建的SSL客户端,然后在操作列单击下载证书。
第2步:配置客户端
请您根据客户端的实际操作系统,选择查看对应的配置方法。
Windows客户端
下载并安装OpenVPN客户端(Windows版本)。如果出现网页打不开的情况,请联系客户经理或阿里云工程师。
将已经下载的SSL客户端证书解压拷贝至
OpenVPN\config
目录。本文将证书解压拷贝到
C:\Program Files\OpenVPN\config
目录,请您根据安装路径将证书解压拷贝至您真实的目录。在桌面上双击OpenVPN GUI图标启动,启动后会在桌面右下角托盘处新增VPN图标。在托盘图标上右键,然后单击Connect建立VPN连接。
如果显示State为Connected,且分配了IP,则证明已建立连接。
Linux客户端
执行以下命令安装OpenVPN客户端,并创建
conf
目录。CentOS
yum install -y openvpn mkdir -p /etc/openvpn/conf
Ubuntu
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
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客户端(图形界面)
打开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
第3步:测试连通性
您可以在客户端使用ping命令访问ECS的IP:
ping 10.0.0.1
如果能够ping通,则表示客户端已和ECS内网连通。
常见问题
下方列出高频常见问题。更多问题,请查看SSL-VPN连接常见问题。
客户端无法成功建立VPN连接怎么办?
确认客户端能够正常访问互联网。
确认证书文件导入正常。
客户端能成功建立VPN连接,但无法ping通ECS怎么办?
确认ECS的安全组已放通ICMP协议,详情请参见查询安全组规则和添加安全组规则。
客户端能ping通ECS,但无法访问ECS的端口怎么办?
客户端能ping通ECS,但ECS无法ping通客户端怎么办?
一般为客户端操作系统自身的防火墙拦截了ping请求,请在客户端防火墙上进行放通。
Linux或Mac客户端,如何断开VPN连接?
打开命令行,执行如下命令搜索OpenVPN进程,并记录进程号。
ps aux | grep openvpn
执行以下命令关闭OpenVPN进程。
kill -9 <进程号>
M1版本的Mac客户端如何使用OpenVPN建立VPN连接?
建议您选择使用Mac客户端(图形界面)建立VPN连接。
使用Linux客户端建立VPN连接后,如何使OpenVPN进程开机自动启动?
编辑/etc/rc.local文件,并在文件中添加命令。
#以编辑模式打开/etc/rc.local文件 vim /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