您可以在管理客户端与MongoDB实例的专有网络之间建立SSL-VPN隧道,实现安全便捷地连接MongoDB实例。
适用场景
管理MongoDB数据库的客户端所处的网络环境没有固定的公网地址,导致您要在MongoDB控制台上频繁调整白名单IP地址,且如果没有及时清理过期的白名单地址,将存在一定的安全风险。
对网络安全要求较高,通过公网连接MongoDB实例时,需要更加安全的方式连接MongoDB实例。
数据库运维人员在公网环境中通过ECS来登录MongoDB数据库,在权限管理上存在一定的风险,需要实现ECS的管理权限和MongoDB数据库权限的分离。
费用说明
操作步骤中创建VPN网关时将产生费用,详情请参见计费说明。
前提条件
MongoDB实例的网络类型为专有网络,如果是经典网络请切换至专有网络,详情请参见经典网络切换为专有网络。
本地客户端的IP地址段和MongoDB实例所在的VPC网络的IP地址段不能相同,否则无法通信。
本地客户端必须能访问外网。
案例环境介绍

步骤一:创建VPN网关
操作步骤,请参见VPN网关。
创建VPN网关时,请注意以下配置项。
配置项 | 配置说明 |
地域 | VPN网关所属的地域,选择与MongoDB实例相同的地域。 |
VPC | VPN网关所属的VPC,选择与MongoDB实例相同的VPC。 |
IPsec-VPN | 选择是否开启IPsec-VPN功能,您可以根据业务需求选择。 本案例使用客户端直接接入,选择关闭IPsec-VPN。 IPsec-VPN功能提供站点到站点的连接。您可以通过创建IPsec隧道将本地数据中心网络和专有网络或两个专有网络安全地连接起来。 |
SSL-VPN | 选择是否开启SSL-VPN功能,您可以根据业务需求选择。 本案例使用客户端直接接入,选择开启SSL-VPN。 提供站点到站点的VPN连接,不需要配置客户端网关,客户端直接接入。 |
步骤二:创建SSL服务端
操作步骤,请参见创建和管理SSL服务端。
创建SSL服务端时,请注意以下配置项。
配置项 | 配置说明 |
VPN网关 | 关联的VPN网关,选择步骤一中创建的VPN网关。 |
本端网段 | 本端网段是客户端通过SSL-VPN连接要访问的地址段。本端网段可以是VPC的网段、交换机的网段、通过专线和VPC互连的IDC的网段、云服务如RDS或OSS等网段。 本案例填写MongoDB实例所属专有网络中交换机的网段地址:172.16.1.0/24。 说明 本端网段的子网掩码的范围为16到29位。 |
客户端网段 | 客户端网段是给客户端虚拟网卡分配访问地址的地址段,不是指客户端已有的内网网段。当客户端通过SSL-VPN连接访问MongoDB实例时,VPN网关会从指定的客户端网段中分配一个IP地址给客户端使用。 此案例中填写192.168.100.0/24。 说明 确保客户端网段和本端网段不冲突。 |
步骤三:创建SSL客户端
操作步骤,请参见创建和管理SSL客户端证书。
SSL客户端证书创建完成后,您需要下载证书并将证书安装在客户端中。
步骤四:建立SSL-VPN连接
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
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,则证明已成功建立连接。

步骤五:登录MongoDB数据库
将SSL服务端配置中的客户端网段添加到MongoDB实例的IP白名单中。本案例将172.16.1.0/24加入至MongoDB实例的IP白名单中。
登录MongoDB管理控制台。
获取MongoDB实例的专有网络地址,请参见实例连接说明。
使用Mongo Shell或其他管理工具登录MongoDB数据库。
说明请使用MongoDB实例的专有网络地址登录。