本文介绍Linux、Mac、Windows和Android客户端如何通过SSL-VPN远程加密访问专有网络VPC(Virtual Private Cloud)下的资源。
背景信息
本文以下图场景为例,介绍Linux、Mac、Windows和Android客户端如何使用SSL-VPN远程加密访问VPC下的资源。
前提条件
配置流程
步骤一:创建VPN网关
- 登录VPN网关管理控制台。
在VPN网关页面,单击创建VPN网关。
在VPN网关(包月)页面,根据以下信息配置VPN网关,然后单击立即购买并完成支付。
名称
说明
实例名称
输入VPN网关的实例名称。
资源组
选择VPN网关实例所属的资源组。
如果不选择,VPN网关实例创建完成后归属于默认资源组。
地域和可用区
选择VPN网关的地域。
说明确保VPC的地域和VPN网关的地域相同。
网关类型
选择待创建的VPN网关类型。本文选择普通型。
网络类型
选择VPN网关实例的网络类型。本文选择公网。
隧道
系统直接展示当前地域支持的IPsec-VPN连接的隧道模式。
VPC
选择待连接的VPC。
虚拟交换机
从VPC实例中选择一个交换机实例。
IPsec-VPN连接的隧道模式为单隧道时,您仅需要指定一个交换机实例。
IPsec-VPN连接的隧道模式为双隧道时,您需要指定两个交换机实例。
IPsec-VPN功能开启后,系统会在两个交换机实例下各创建一个弹性网卡ENI(Elastic Network Interfaces),作为使用IPsec-VPN连接与VPC流量互通的接口。每个ENI会占用交换机下的一个IP地址。
说明系统默认帮您选择第一个交换机实例,您可以手动修改或者直接使用默认的交换机实例。
创建VPN网关实例后,不支持修改VPN网关实例关联的交换机实例,您可以在VPN网关实例的详情页面查看VPN网关实例关联的交换机、交换机所属可用区以及交换机下ENI的信息。
虚拟交换机2
从VPC实例中选择第二个交换机实例。
IPsec-VPN连接的隧道模式为单隧道时,无需配置该项。
带宽规格
选择VPN网关的带宽规格,单位:Mbps。
IPsec-VPN
是否开启IPsec-VPN功能。本文选择关闭。
SSL-VPN
是否开启SSL-VPN功能。本文选择开启。
SSL连接数
选择需要连接的客户端的数量。
说明开启SSL-VPN功能后才可配置SSL连接数。
计费周期
选择购买时长。关于计费的更多信息, 请参见计费说明。
服务关联角色
单击创建关联角色,系统自动创建服务关联角色AliyunServiceRoleForVpn。
VPN网关使用此角色来访问其他云产品中的资源,更多信息,请参见AliyunServiceRoleForVpn。
若本配置项显示为已创建,则表示您的账号下已创建了该角色,无需重复创建。
返回VPN网关页面,查看创建的VPN网关。
刚创建好的VPN网关的状态是准备中,约1~5分钟会变成正常状态。正常状态就表明VPN网关已完成初始化,可以正常使用。
步骤二:创建SSL服务端
在左侧导航栏,选择 。
在顶部菜单栏,选择SSL服务端的地域。
说明请确保SSL服务端的地域和已创建的VPN网关的地域相同。
在SSL服务端页面,单击创建SSL服务端。
在创建SSL服务端面板,根据以下信息配置SSL服务端,然后单击确定。
名称:输入SSL服务端的名称。
资源组:选择VPN网关所属的资源组。SSL服务端所属的资源组与VPN网关所属的资源组默认保持一致。
VPN网关:选择已创建的VPN网关。
本端网段:以CIDR地址块的形式输入要连接的VPC网络的网段。
单击添加本端网段可添加多个本端网段,本端网段可以是任何VPC或交换机的网段,也可以是本地网络的网段。
客户端网段:以CIDR地址块的形式输入客户端连接服务端时使用的网段。
重要客户端网段的子网掩码位数在16至29位之间。
请确保客户端网段与本端网段、VPC网段以及与客户端终端关联的任何路由网段均没有重叠。
在指定客户端网段时,建议您使用10.0.0.0/8、172.16.0.0/12和192.168.0.0/16网段及其子网网段。如果您的客户端网段需要指定为公网网段,您需要将公网网段设置为VPC的用户网段,以确保VPC可以访问到该公网网段。关于用户网段的更多信息,请参见什么是用户网段?和如何配置用户网段?。
创建SSL服务端后,系统后台会自动将客户端网段的路由添加在VPC实例的路由表中,请勿再手动将客户端网段的路由添加到VPC实例的路由表,否则会导致SSL-VPN连接流量传输异常。
高级配置:使用默认高级配置。
更多信息,请参见创建和管理SSL服务端。
步骤三:创建并下载SSL客户端证书
在左侧导航栏,选择 。
在SSL客户端页面,单击创建SSL客户端。
在创建SSL客户端证书面板,输入客户端证书名称,然后选择SSL服务端所属的资源组并选择对应的SSL服务端,然后单击确定。
在SSL客户端页面,找到已创建的客户端证书,然后在操作列单击下载。
步骤四:配置客户端
以下内容为您介绍如何配置Linux、Windows、Mac和Android客户端。
如果客户端软件下载页面无法正常访问,请联系客户经理或阿里云工程师。
Linux客户端
打开命令行窗口。
执行以下命令安装OpenVPN客户端。
#CentOS系统执行以下命令 yum install -y openvpn #执行以下命令查看系统是否已创建/etc/openvpn/conf/目录,如果系统未创建,需手动创建/etc/openvpn/conf/目录。 cd /etc/openvpn #进入openvpn目录下 ls #查看openvpn目录下是否已创建conf目录 mkdir -p /etc/openvpn/conf #如果openvpn目录下不存在conf目录,手动创建conf目录。 #Ubuntu系统执行以下命令 apt-get update apt-get install -y openvpn #执行以下命令查看系统是否已创建/etc/openvpn/conf/目录,如果系统未创建,需手动创建/etc/openvpn/conf/目录。 cd /etc/openvpn #进入openvpn目录下 ls #查看openvpn目录下是否已创建conf目录 mkdir -p /etc/openvpn/conf #如果openvpn目录下不存在conf目录,手动创建conf目录。
将已下载的SSL客户端证书解压拷贝至/etc/openvpn/conf/目录。
进入/etc/openvpn/conf/目录,执行以下命令建立VPN连接。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon
Windows客户端
下载并安装OpenVPN客户端(Windows版本)。
将已经下载的SSL客户端证书解压拷贝至OpenVPN\config目录。
本文将证书解压拷贝到C:\Program Files\OpenVPN\config目录,请您根据安装路径将证书解压拷贝至您真实的目录。
启动OpenVPN客户端,单击Connect建立VPN连接。
Mac客户端(Tunnelblick)
以下内容为您介绍如何使用Tunnelblick软件在Mac客户端与VPN网关之间建立VPN连接。
下载Tunnelblick软件。
本文使用4.0.1版本的Tunnelblick软件作为示例,您可以根据实际需要下载适用的版本,推荐使用最新的正式版本。推荐下载dmg格式的文件,可以直接安装使用。
安装Tunnelblick软件。
序号
说明
①
双击已下载的Tunnelblick软件安装包。
②
双击Tunnelblick图标。
③
选择我有配置文件。
④
单击确定。
将在步骤三中下载的SSL客户端证书解压。
将已解压的
config.ovpn
文件上传至Tunnelblick软件,建立VPN连接。序号
说明
①
在启动台中单击Tunnelblick图标,打开Tunnelblick软件。
②
将已解压的文件
config.ovpn
拖动至配置面板下。③
选择只是我。
④
单击连接。
Mac客户端(OpenVPN)
以下内容为您介绍如何使用OpenVPN软件在Mac客户端与VPN网关之间建立VPN连接。
打开命令行窗口。
如果您的客户端尚未安装homebrew,执行以下命令安装homebrew。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
执行以下命令安装OpenVPN客户端。
brew install openvpn
将在步骤三中下载的SSL客户端证书解压拷贝至配置目录。
备份/usr/local/etc/openvpn文件夹下的所有配置文件。
执行以下命令删除OpenVPN的配置文件。
rm /usr/local/etc/openvpn/*
执行以下命令将已经下载的SSL客户端证书拷贝到配置目录。
cp cert_location /usr/local/etc/openvpn/
cert_location
是步骤三中下载的SSL客户端证书的路径,例如:/Users/example/Downloads/certs6.zip。
执行以下命令解压证书。
cd /usr/local/etc/openvpn/ unzip /usr/local/etc/openvpn/certs6.zip
执行以下命令建立VPN连接。
sudo /usr/local/opt/openvpn/sbin/openvpn --config /usr/local/etc/openvpn/config.ovpn
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连接。
步骤五:测试连通性
在客户端尝试访问VPC内的ECS实例,测试网络连通性。
常见问题
使用OpenVPN在Mac客户端建立VPN连接后,如何断开VPN连接?
打开Mac客户端的命令行窗口。
执行以下命令搜索OpenVPN进程,并记录进程号。
ps aux | grep openvpn
执行以下命令关闭OpenVPN进程。
kill -9 <进程号>
M1版本的Mac客户端如何使用OpenVPN建立VPN连接?
如果您使用的是M1版本的Mac客户端,建议您使用Tunnelblick软件建立VPN连接。具体操作,请参见Mac客户端(Tunnelblick)。
使用Linux客户端建立VPN连接后,如何使OpenVPN进程开机自动启动?
使用Linux客户端建立VPN连接后,配置以下命令,OpenVPN进程将在Linux客户端开机后自动启动。
编辑/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