若要通过点到站点 (P2S) 连接到虚拟网络,需要配置将从中进行连接的客户端设备。 本文帮助你配置一个基于 证书认证的点到站点连接的VPN客户端。 选择你想配置的客户端操作系统。
在您开始之前
在开始客户端配置步骤之前,请验证是否正在阅读正确的 VPN 客户端配置文章。 下表列出了适用于 VPN 网关点到站点 VPN 客户端的配置文章。 步骤因身份验证类型、隧道类型和客户端 OS 而有所不同。
| 身份验证方法 | 隧道类型 | 客户机操作系统 | VPN 客户 |
|---|---|---|---|
| Certificate | |||
| IKEv2,SSTP,OpenVPN | Windows、macOS、Linux | VPN客户端配置 - 证书认证 | |
| Microsoft Entra ID | |||
| OpenVPN (虚拟专用网络软件) | Windows | Azure VPN 客户端 |
先决条件
本文假设你已经完成了以下先决条件:
- 你创建并配置了VPN网关以实现点到站点证书认证,以及你想配置的客户端所需的隧道类型。 请参阅为 P2S VPN 网关连接配置服务器设置 - 证书身份验证以获取步骤。
- 你已生成并下载了 VPN 客户端配置文件。 有关步骤,请参阅“生成 VPN 客户端配置文件”。
- 您可以生成客户端证书,或获取认证所需的相应客户端证书。 有关使用证书的信息,请参见 “点对站点:生成证书”。
Windows
Windows 客户端可以使用原生 VPN 客户端连接(IKEv2/SSTP 隧道类型),也可以使用 Azure VPN Client、OpenVPN Client 2.x 或 OpenVPN Connect 3.x 连接(OpenVPN 隧道类型)。
原生 VPN 客户端
如果你的点对站(P2S)VPN网关配置为使用IKEv2/SSTP和证书认证,你可以通过Windows操作系统中的原生VPN客户端连接到虚拟网络。
Workflow
- 生成并安装客户端证书(如果尚未这样做)。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置已在 Windows 计算机上安装的本机 VPN 客户端。
- 连接到 Azure。
生成并安装客户端证书
证书认证时,您必须在每台客户端计算机上安装客户端证书。 你必须导出你想用私钥使用的客户端证书,并将所有证书包含在认证路径中。 对于某些配置,你还需要安装根证书信息。
在许多情况下,您可以通过双击直接在客户端电脑上安装客户端证书。 不过,对于某些OpenVPN客户端配置,你可能需要从客户端证书中提取信息来完成配置。
- 有关使用证书的信息,请参见 “点对站点:生成证书”。
- 要查看已安装的客户端证书,请打开“管理用户证书”。 客户端证书安装在“Current User\Personal\Certificates”中。
安装客户端证书
每台电脑都需要一个客户端证书来认证。 如果客户端证书还没有安装在本地电脑上,你可以通过以下步骤安装:
- 找到客户端证书。 有关客户端证书的详细信息,请参阅安装客户端证书。
- 安装客户端证书。 通常,可以通过双击证书文件并提供密码(如果需要)来执行此操作。
查看配置文件
VPN 客户端配置文件配置包包含特定文件夹。 文件夹中的文件包含在客户端计算机上配置 VPN 客户端配置文件所需的设置。 这些文件及其包含的设置是特定于 VPN 网关的,并且取决于你的 VPN 网关所配置使用的身份验证和隧道类型。
找到并解压缩生成的 VPN 客户端配置文件配置包。 关于证书认证和IKEv2/SSTP,你会看到以下文件:
- WindowsAmd64 和 WindowsX86:分别包含 Windows 64 位和 32 位安装程序包。 WindowsAmd64 安装程序包适用于所有受支持的 64 位 Windows 客户端,而不仅仅是 AMD。
- Generic 包含用于创建你自己的 VPN 客户端配置的常规信息。 如果网关上配置了 IKEv2 或 SSTP+IKEv2,会提供 Generic 文件夹。 如果仅配置了 SSTP,则不会提供 Generic 文件夹。
配置 VPN 客户端配置文件
要连接,首先需要配置VPN客户端并设置所需设置。 通过VPN客户端配置包中的设置来配置VPN客户端配置文件。 包里的设置是针对你连接的VPN网关的。
只要版本与 Windows 客户端的体系结构匹配,就可以在每台客户端计算机上使用相同的 VPN 客户端配置包。 有关支持的客户端操作系统列表,请参见 VPN 网关 常见问题解答中的点对点部分。
注释
你必须在你想连接的 Windows 客户端电脑上拥有管理员权限。
安装VPN客户端配置包
- 根据 Windows 计算机的体系结构选择 VPN 客户端配置文件。 对于 64 位处理器体系结构,请选择
VpnClientSetupAmd64安装程序包。 对于 32 位处理器体系结构,请选择VpnClientSetupX86安装程序包。 - 双击该包进行安装。 如果你看到 SmartScreen 弹出窗口,请选择 更多信息,然后选择 仍要运行。
Connect
通过点对点VPN连接你的虚拟网络。
- 进入 VPN 设置,找到你创建的VPN连接。 它和你的虚拟网络同名。 选择 连接。 可能会出现弹出消息。 选择“继续”,以便使用提升的权限。
- 在“连接”状态页上,选择“连接”以启动连接。 如果看到“选择证书”屏幕,请确保所显示的客户端证书是要用于连接的证书。 如果不是,请使用下拉箭头选择正确的证书,并选择“确定”。
Azure VPN Client
如果将点到站点 (P2S) VPN 网关配置为使用 OpenVPN 和证书身份验证,则可以使用 Azure OpenVPN 客户端连接到虚拟网络。
虽然适用于Windows的 Azure VPN 客户端可能适用于其他操作系统版本,但以下版本仅支持适用于 Windows 的 Azure VPN 客户端:
- 支持的 Windows 版本:Windows 11 on x64、x86 和 ARM64 架构。
连接要求
要连接到 Azure,每个连接的客户端计算机需要以下项:
- 安装在每台客户端计算机上的 Azure VPN 客户端软件。
- Azure VPN 客户端配置文件是通过下载的 azurevpnconfig.xml 或 azurevpnconfig_cert.xml 配置文件中的设置进行配置的。
- 客户端证书在客户端计算机上本地安装。
生成并安装客户端证书
为了验证证书,在每台客户端计算机上安装客户端证书。 导出你想用私钥使用的客户端证书,并将所有证书包含在认证路径中。 对于某些配置,你还需要安装根证书信息。
- 有关使用证书的信息,请参阅点到站点:生成证书。
- 要查看已安装的客户端证书,请打开“管理用户证书”。 客户端证书安装在“Current User\Personal\Certificates”中。
安装客户端证书
每台电脑都需要一个客户端证书来认证。 如果客户端证书还没有安装在本地电脑上,你可以通过以下步骤安装:
- 找到客户端证书。 有关客户端证书的详细信息,请参阅安装客户端证书。
- 安装客户端证书。 通常,可以通过双击证书文件并提供密码(如果需要)来执行此操作。
查看配置文件
VPN 客户端配置文件配置包包含特定文件夹。 文件夹中的文件包含在客户端计算机上配置 VPN 客户端配置文件所需的设置。 这些文件及其包含的设置是特定于 VPN 网关的,并且取决于你的 VPN 网关所配置使用的身份验证和隧道类型。
找到并解压缩生成的 VPN 客户端配置文件配置包。 对于证书认证和OpenVPN,你会看到 AzureVPN 文件夹。 在这个文件夹里,你会看到 azurevpnconfig_cert.xml 文件或 azurevpnconfig.xml 文件,具体取决于你的P2S配置是否包含多种认证类型。 .xml 文件包含用于配置 VPN 客户端配置文件的设置。
如果未看到任何一个文件,或者没有 AzureVPN 文件夹,请验证是否已将 VPN 网关配置为使用 OpenVPN 隧道类型,以及是否选择了证书身份验证。
下载 Azure VPN 客户端
Azure VPN客户端可用的功能和设置取决于你所使用的客户端版本。 有关 Azure VPN 客户端版本的信息,请参阅 Azure VPN 客户端版本 一文。
使用以下链接之一下载最新版本的 Azure VPN 客户端安装文件:
- 使用客户端安装程序文件进行安装:https://aka.ms/azvpnclientdownload。
- 在客户端计算机上登录时直接安装:Microsoft Store。
- 使用 Windows 程序包管理器 (WinGet) 进行安装。 可以运行以下命令来安装和了解有关 本文档中 WinGet 方法的详细信息。
winget install Microsoft.AzureVPNClient --source winget
将 Azure VPN 客户端安装到每台计算机。
验证 Azure VPN 客户端是否有权在后台运行。 有关步骤,请参阅 Windows 后台应用。
若要验证已安装的客户端版本,请打开 Azure VPN 客户端。 转到客户端底部并选择 ... -> ?帮助。 在右窗格中,可以看到客户端版本号。
配置 Azure VPN 客户端并连接
打开Azure VPN 客户端。
选择页面左下方的 +,然后选择“导入”。
在窗口中导航到 azurevpnconfig.xml 或 azurevpnconfig_cert.xml 文件,具体取决于配置。 选择该文件,然后选择“打开”。
在客户端资料页中,请注意,许多设置已被指定。 预配置的设置包含在已导入的 VPN 客户端配置文件包中。 即使已指定大部分设置,也需要配置特定于客户端计算机的设置。
从“证书信息”下拉列表中,选择子证书(客户端证书)的名称。 例如,P2SChildCert。 在本练习中,对于secondary profile,请选择“无”。
如果在“证书信息”下拉列表中没有看到客户端证书,则需要取消配置文件配置导入并解决问题,然后再继续。 有可能发生以下情况之一:
- 客户端证书未本地安装在客户端计算机上。
- 在本地计算机上安装了多个名称完全相同的证书(在测试环境中很常见)。
- 子证书已损坏。
导入验证后(导入时没有错误),选择“保存”。
在左窗格中,找到 VPN 连接,然后选择“连接”。
-
Azure VPN 客户端系统托盘在版本 4.0.0.0 及更高版本中提供,可让你关闭 Azure VPN 客户端应用程序,同时使连接保持活动状态。 关闭应用程序时,可以在 Windows 系统托盘中看到该应用程序。 可以通过单击托盘图标以压缩模式重新打开 Azure VPN 客户端应用。
如果你遇到连接问题,并且运行的是 Azure VPN 客户端 4.0.0.0 或更高版本,请在 Azure VPN 客户端页面底部选择“...”,然后选择“先决条件”。 在 “测试应用程序先决条件 ”页上,选择“ 运行先决条件测试”。 修复任何问题,然后重试连接。 有关详细信息,请参阅 Azure VPN 客户端先决条件检查。
导出和分发客户资料
创建有效的配置文件后,如果需要将其分发给其他用户,可使用以下步骤将其导出:
删除客户资料
选择要导出的 VPN 客户端配置文件,选择 ...,然后选择 移除。
在确认弹出窗口中,选择“删除”以删除。
配置次要配置文件
Azure VPN 客户端为客户端配置文件提供高可用性。 添加辅助客户端配置文件可让客户端以更具弹性的方式访问 VPN。 如果发生区域中断或无法连接到主 VPN 客户端配置文件,Azure VPN 客户端会自动连接到辅助客户端配置文件,而不会造成任何中断。 此功能需要 Azure VPN 客户端版本 2.2124.51.0 或更高版本。
对于本示例,我们将向已存在的配置文件添加一个次要配置文件。 如果客户端无法连接到 VNet1,它将自动连接到 Contoso,而不会造成中断。
将另一个 VPN 客户端配置文件添加到 Azure VPN 客户端中。 在本示例中,我们导入了 VPN 客户端配置文件,并添加了到 Contoso 的连接。
接下来,转到 VNet1 配置文件并单击“...”,然后单击“配置”。
从“次要配置文件”下拉列表中,选择 Contoso 的配置文件。 然后,保存你的设置。
处理连接
自动连接
以下步骤帮助您配置连接,使其在启用“始终在线”功能时自动连接。
在 VPN 客户端的主页上,选择“VPN 设置”。 如果你看到“切换应用”对话框,选择 “是”。
如果要配置的配置文件已连接,请先断开连接,然后突出显示该配置文件,然后勾选“自动连接”选项。
选择“连接”启动 VPN 连接。
诊断连接问题
先决条件检查
如果你的 Azure VPN 客户端是 4.0.0.0 或更高版本,你可以运行前置条件检查,确认你的电脑已配置并安装了成功连接所需的功能。 若要查看已安装的 Azure VPN 客户端的版本号,请启动客户端,并选择“帮助”。
- 在 Azure VPN 客户端页面底部选择......并选择“Prerequisites”。
- 在 “测试应用程序先决条件 ”页上,选择“ 运行先决条件测试”。
- 修复任何问题,然后重试连接。 有关详细信息,请参阅 Azure VPN 客户端先决条件检查。
诊断工具
自定义设置:DNS 和路由
可以使用可选的配置设置来配置 Azure VPN 客户端,例如其他 DNS 服务器、自定义 DNS、强制隧道、自定义路由和其他设置。 有关可用设置和配置步骤的说明,请参阅 Azure VPN 客户端可选设置。
OpenVPN 客户端 2.x
如果你的点对点(P2S)VPN网关配置为使用OpenVPN和证书认证,你可以使用OpenVPN 客户端2.4及更高版本连接到虚拟网络。 对于 OpenVPN Connect 3.x 客户端,请改为参见 OpenVPN Client 3.x 部分。
注释
OpenVPN客户端是独立管理的,不受Microsoft控制。 这意味着 Microsoft 不会监督其代码、内部版本、路线图或法律方面。 如果您在使用OpenVPN客户端时遇到任何漏洞或问题,请直接联系OpenVPN公司客服。 本文中的指南均按“原样”提供,且尚未经过 OpenVPN Inc. 验证。这些指南可帮助已经熟悉该客户端并希望在点到站点 VPN 设置中使用它连接到 Azure VPN 网关的客户。
连接要求
要通过 OpenVPN 客户端和证书认证连接到 Azure,每台连接客户端计算机需要以下条件:
- OpenVPN 客户端软件安装并配置在每台客户端计算机上。
- 客户端证书在客户端计算机上本地安装。
Workflow
本节的工作流程如下:
- 如果还没生成并安装客户端证书,请先完成。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置 OpenVPN 客户端。
- 连接到 Azure。
生成并安装客户端证书
为了验证证书,在每台客户端计算机上安装客户端证书。 导出你想用私钥使用的客户端证书,并将所有证书包含在认证路径中。 对于某些配置,你还需要安装根证书信息。
在许多情况下,您可以通过双击直接在客户端电脑上安装客户端证书。 不过,对于某些OpenVPN客户端配置,你可能需要从客户端证书中提取信息来完成配置。
- 有关使用证书的信息,请参阅点到站点:生成证书。
- 要查看已安装的客户端证书,请打开“管理用户证书”。 客户端证书安装在“Current User\Personal\Certificates”中。
安装客户端证书
每台电脑都需要一个客户端证书来认证。 如果你还没有在本地电脑上安装客户端证书,请按照以下步骤安装:
- 找到客户端证书。 有关客户端证书的详细信息,请参阅安装客户端证书。
- 安装客户端证书。 通常,可以通过双击证书文件并提供密码(如果需要)来安装证书。
- 在本练习后面使用客户端证书来配置OpenVPN Connect客户端配置文件设置。
查看客户端配置文件
VPN 客户端配置文件配置包包含特定文件夹。 文件夹中的文件包含在客户端计算机上配置 VPN 客户端配置文件所需的设置。 这些文件及其包含的设置是特定于 VPN 网关的,并且取决于你的 VPN 网关所配置使用的身份验证和隧道类型。
找到并解压缩生成的 VPN 客户端配置文件配置包。 关于证书认证和OpenVPN,你应该能看到 OpenVPN 文件夹。 如果未看到该文件夹,请验证以下项:
- 验证 VPN 网关是否已配置为使用 OpenVPN 隧道类型。
- 如果你使用的是 Microsoft Entra 认证,可能没有 OpenVPN 文件夹。 请参阅 Microsoft Entra ID 配置文章。
配置客户端
从官方 OpenVPN网站下载并安装OpenVPN客户端(版本2.4或更高)。
找到你生成并下载到计算机上的 VPN 客户端配置文件包。 解压缩该包。 转到 OpenVPN 文件夹,使用记事本打开 vpnconfig.ovpn 配置文件。
接下来,找到创建的子证书。 如果没有该证书,请使用以下链接之一来执行导出证书的步骤。 您将在下一步中使用此证书信息。
从子证书中,提取 .pfx 中的私钥和 Base64 缩略指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。 profileinfo.txt 文件包含 CA 和客户端证书的私钥与指纹。 请务必使用客户端证书的指纹。
openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"切换到你在记事本中打开的 vpnconfig.ovpn 文件。 填写
<cert>和$INTERMEDIATE_CERTIFICATE之间的部分,并按照下例所示填入$ROOT_CERTIFICATE、$CLIENT_CERTIFICATE和</cert>的值。# P2S client certificate # please fill this field with a PEM formatted cert <cert> $CLIENT_CERTIFICATE $INTERMEDIATE_CERTIFICATE (optional) $ROOT_CERTIFICATE </cert>- 在记事本中打开上一步中的 profileinfo.txt。 可通过查看
subject=行来识别每个证书。 例如,如果子证书称为 P2SChildCert,则客户端证书将位于subject=CN = P2SChildCert属性之后。 - 对于链中的每个证书,复制文本“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。
- 只有当你的 profileinfo.txt 档案中有中间证书时,才需要包含
$INTERMEDIATE_CERTIFICATE一个数值。
- 在记事本中打开上一步中的 profileinfo.txt。 可通过查看
在记事本中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。
返回到记事本中的 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换
<key>与</key>之间的所有内容。# P2S client root certificate private key # please fill this field with a PEM formatted key <key> $PRIVATEKEY </key>如果你用的是 OpenVPN 客户端 2.6 版本,可以在配置文件中添加“disable-dco”选项。 这个选项似乎不向下兼容之前的版本,所以它应该只添加到OpenVPN客户端2.6版本中。
请勿更改任何其他字段。 使用客户端输入中已填写的配置连接到 VPN。
把vpnconfig.ovpn文件复制到C:\Program Files\OpenVPN\config文件夹。
右键单击系统托盘中的 OpenVPN 图标,然后单击“连接”。
OpenVPN 客户端 3.x
如果你的点对点(P2S)VPN网关配置为使用OpenVPN和证书认证,你可以使用OpenVPN Connect 3.x客户端连接到虚拟网络。 OpenVPN 2.x客户端和OpenVPN Connect 3.x客户端之间存在一些配置差异。 本节重点介绍OpenVPN Connect 3.x客户端。
注释
OpenVPN 客户端是独立管理的,不受 Microsoft 的控制。 这意味着 Microsoft 不会监督其代码、内部版本、路线图或法律方面。 如果客户遇到 OpenVPN 客户端的任何 bug 或问题,应直接与 OpenVPN Inc. 支持部门联系。 本文中的指南是“按现状”提供的,尚未经过OpenVPN公司的验证。它们旨在帮助已经熟悉该客户端并希望通过点对点VPN连接Azure VPN 网关的客户。
连接要求
若要使用证书身份验证通过 OpenVPN Connect 3.x 客户端连接到 Azure,每个连接客户端计算机都需要以下项:
- 必须在每台客户端计算机上安装和配置 OpenVPN Connect 客户端软件。
- 客户端计算机必须有本地安装的客户端证书。
- 如果证书链包含中间证书,请首先参阅中间证书部分,以验证是否已设置 P2S VPN 网关配置来支持此证书链。 3.x 客户端的证书身份验证行为不同于以前的版本,你可以在客户端配置文件中指定中间证书。
Workflow
本节的工作流程如下:
- 生成并安装客户端证书(如果尚未这样做)。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置 OpenVPN Connect 客户端。
- 连接到 Azure。
生成并安装客户端证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
在许多情况下,可以通过双击直接在客户端计算机上安装客户端证书。 不过,对于某些OpenVPN客户端配置,你可能需要从客户端证书中提取信息来完成配置。
- 有关使用证书的信息,请参阅点到站点:生成证书。
- 要查看已安装的客户端证书,请打开“管理用户证书”。 客户端证书安装在“Current User\Personal\Certificates”中。
安装客户端证书
每台电脑都需要一个客户端证书来认证。 如果本地计算机上尚未安装客户端证书,可以使用以下步骤安装该证书:
- 找到客户端证书。 有关客户端证书的详细信息,请参阅安装客户端证书。
- 安装客户端证书。 通常,可以通过双击证书文件并提供密码(如果需要)来安装证书。
- 在本练习的后续部分中,你还将使用客户端证书来配置 OpenVPN Connect 客户端配置文件设置。
查看配置文件
VPN 客户端配置文件配置包包含特定文件夹。 文件夹中的文件包含在客户端计算机上配置 VPN 客户端配置文件所需的设置。 这些文件及其包含的设置是特定于 VPN 网关的,并且取决于你的 VPN 网关所配置使用的身份验证和隧道类型。
找到并解压缩生成的 VPN 客户端配置文件配置包。 对于证书身份验证和 OpenVPN,应会看到 OpenVPN 文件夹。 如果未看到该文件夹,请验证以下项:
- 验证 VPN 网关是否已配置为使用 OpenVPN 隧道类型。
- 如果使用 Microsoft Entra ID 身份验证,则可能没有 OpenVPN 文件夹。 请参阅 Microsoft Entra ID 配置文章。
配置客户端
从官方 OpenVPN 网站下载并安装 OpenVPN 客户端(版本 3.x)。
找到你生成并下载到计算机上的 VPN 客户端配置文件包。 解压缩该包。 转到 OpenVPN 文件夹,使用记事本打开 vpnconfig.ovpn 配置文件。
接下来,找到创建的子证书。 如果没有该证书,请使用以下链接之一来执行导出证书的步骤。 您将在下一步中使用此证书信息。
从子证书中,提取 .pfx 中的私钥和 Base64 缩略指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。 profileinfo.txt 文件包含 CA 和客户端证书的私钥与指纹。 请务必使用客户端证书的指纹。
openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"切换到你在记事本中打开的 vpnconfig.ovpn 文件。 填充
<cert>与</cert>之间的部分,并获取$CLIENT_CERTIFICATE和$ROOT_CERTIFICATE的值,如以下示例所示。# P2S client certificate # please fill this field with a PEM formatted cert <cert> $CLIENT_CERTIFICATE $ROOT_CERTIFICATE </cert>- 在记事本中打开上一步中的 profileinfo.txt。 可通过查看
subject=行来识别每个证书。 例如,如果子证书称为 P2SChildCert,则客户端证书将位于subject=CN = P2SChildCert属性之后。 - 对于链中的每个证书,复制文本“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。
- 在记事本中打开上一步中的 profileinfo.txt。 可通过查看
在记事本中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。
返回到记事本中的 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换
<key>与</key>之间的所有内容。# P2S client root certificate private key # please fill this field with a PEM formatted key <key> $PRIVATEKEY </key>注释掉“log openvpn.log”这一行。 如果未将其注释掉,OpenVPN 客户端会提示 log 选项已不再受支持。 有关如何注释掉日志行的示例,请参阅用户配置文件示例。 注释掉日志行后,仍可以通过 OpenVPN 客户端接口访问日志。 若要访问,请单击客户端 UI 右上角的日志图标。 Azure建议客户检查 OpenVPN 连接文档以获取日志文件位置,因为日志记录由 OpenVPN 客户端控制。
请勿更改任何其他字段。 使用客户端输入中已填写的配置连接到 VPN。
在 OpenVPN 客户端中导入 vpnconfig.ovpn 文件。
右键单击系统托盘中的 OpenVPN 图标,然后单击“连接”。
用户资料示例
以下示例演示 3.x OpenVPN Connect 客户端的用户配置文件。 此示例显示已将日志文件配置注释掉,并添加了“ping-restart 0”选项,以防止因未向客户端发送任何数据流量而发生周期性重新连接。
client
remote <vpnGatewayname>.ln.vpn.chinacloudapi.cn 443
verify-x509-name <IdGateway>.ln.vpn.chinacloudapi.cn name
remote-cert-tls server
dev tun
proto tcp
resolv-retry infinite
nobind
auth SHA256
cipher AES-256-GCM
persist-key
persist-tun
tls-timeout 30
tls-version-min 1.2
key-direction 1
#log openvpn.log
#inactive 0
ping-restart 0
verb 3
# P2S CA root certificate
<ca>
-----BEGIN CERTIFICATE-----
……
……..
……..
……..
-----END CERTIFICATE-----
</ca>
# Pre Shared Key
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
……..
……..
……..
-----END OpenVPN Static key V1-----
</tls-auth>
# P2S client certificate
# Please fill this field with a PEM formatted client certificate
# Alternatively, configure 'cert PATH_TO_CLIENT_CERT' to use input from a PEM certificate file.
<cert>
-----BEGIN CERTIFICATE-----
……..
……..
……..
-----END CERTIFICATE-----
</cert>
# P2S client certificate private key
# Please fill this field with a PEM formatted private key of the client certificate.
# Alternatively, configure 'key PATH_TO_CLIENT_KEY' to use input from a PEM key file.
<key>
-----BEGIN PRIVATE KEY-----
……..
……..
……..
-----END PRIVATE KEY-----
</key>
中间证书
如果证书链包含中间证书,则必须将中间证书上传到 Azure VPN 网关。 无论选择从哪个 VPN 客户端进行连接,这都是使用的首选方法。 在以前的版本中,可以在用户配置文件中指定中间证书。 OpenVPN Connect 客户端版本 3.x 中不再支持此功能。
使用中间证书时,必须在上传根证书之后上传中间证书。
重新连接
如果由于未向客户端发送任何流量而出现周期性重连,您可以在配置文件中添加“ping-restart 0”选项,以防止因连接断开而触发重连。 OpenVPN Connect 文档中对此有如下描述: --ping-restart n Similar to --ping-exit, but trigger a SIGUSR1 restart after n seconds pass without reception of a ping or other packet from remote.
有关如何添加此选项的示例,请参阅用户配置文件示例。
macOS
macOS客户端可以使用本地VPN客户端(IKEv2隧道类型)或OpenVPN客户端(OpenVPN隧道类型)连接。
原生 VPN 客户端
如果你的点对点(P2S)VPN网关配置为使用IKEv2和证书认证,你可以使用macOS操作系统中的原生VPN客户端连接到虚拟网络。
注释
你的VPN网关必须使用除 基础SKU以外的SKU。
Workflow
- 如果还没生成客户证书,请及时生成。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 安装证书。
- 配置你操作系统上已经安装的原生VPN客户端。
- 连接到 Azure。
生成证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
有关使用证书的信息,请参阅生成和导出证书。
查看 VPN 客户端配置文件
VPN客户端所有必要的配置都包含在VPN客户端配置文件的压缩包中。 可使用 PowerShell 或 Azure 门户生成客户端配置文件。 两种方法之一都会返回相同的 zip 文件。
每个虚拟网络的 P2S VPN 网关配置都有自己的 VPN 客户端配置文件。 如果生成文件后 P2S VPN 配置有任何更改,例如 VPN 协议类型或身份验证类型出现更改,则需要生成新的 VPN 客户端配置文件,并将新配置应用到所有要连接的 VPN 客户端。
解压缩该文件,查看文件夹。 配置macOS原生客户端时,你会使用 Generic 文件夹里的文件。 如果网关上配置了IKEv2,则通用文件夹存在。 如果未看到 Generic 文件夹,请检查以下各项,然后再次生成 zip 文件。
- 检查配置的隧道类型。 很可能未将 IKEv2 选为隧道类型。
通用文件夹包含以下文件。
- VpnSettings.xml:包含服务器地址和隧道类型等重要设置。
- VpnServerRoot.cer:包含在 P2S 连接设置过程中验证 Azure VPN 网关所需的根证书。
安装证书
你需要在Mac上安装根证书和子证书。 子证书必须与私钥一起导出,并且必须包含认证路径中的所有证书。
根证书
- 把根证书文件(.cer文件)复制到你的Mac上。 双击该证书。 根据你的操作系统,证书会自动安装,或者你会看到 “添加证书 ”页面。
- 如果你看到 添加证书 页面,请在 钥匙串:旁点击箭头,然后从下拉菜单中选择 登录。
- 点击 添加 以导入文件。
客户端证书
客户端证书(.pfx 文件)用于认证,这是必需的。 通常,你只需点击客户端证书即可安装。
验证证书已安装
确认客户端和根证书都已安装。
- 打开 钥匙串访问。
- 进入 证书 标签页。
- 确认客户端和根证书都已安装。
配置 VPN 客户端配置文件
请按照 Mac用户指南 中适合你操作系统版本的步骤,添加带有以下设置的VPN客户端配置文件配置。
选择 IKEv2 作为VPN类型。
在 显示名称中,选择一个友好的个人资料名称。
对于服务器地址和远程ID,使用 VpnSettings.xml 文件中的VpnServer标签值。
在 身份验证 设置中,选择 证书。
对于 证书,选择你想用来认证的子证书。 如果您有多个证书,可以选择 “显示证书 ”以查看每个证书的更多信息。
在 本地ID中,输入你选择的儿童证书名称。
配置完成VPN客户端配置文件后,保存配置文件。
Connect
连接步骤是针对macOS操作系统版本的。 请参阅 Mac用户指南。 选择你正在使用的操作系统版本,然后按照步骤连接。
一旦连接建立,状态显示为 已连接。 IP地址是从VPN客户端地址池中分配的。
OpenVPN 客户端
本节帮助你通过 VPN 网关 点对点(P2S)连接 Azure 虚拟网络(VNet),并通过 OpenVPN 客户端在 macOS 上进行证书认证。
连接要求
若要使用 OpenVPN 客户端通过证书身份验证连接到 Azure,每个连接客户端都需要以下项:
- 必须在每台客户端上安装和配置 OpenVPN 客户端软件。
- 客户端必须具有本地安装的客户端证书。
Workflow
- 安装 OpenVPN 客户端。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置 OpenVPN 客户端。
- 连接到 Azure。
生成客户端证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。
有关使用证书的信息,请参阅点到站点:生成证书 - Linux。
配置 OpenVPN 客户端
以下示例使用 TunnelBlick。
Important
只有 macOS 10.13 及更高版本支持 OpenVPN 协议。
注释
尚不支持 OpenVPN 客户端版本 2.6。
下载并安装 OpenVPN 客户端,如 TunnelBlick。
从 Azure 门户下载 VPN 客户端配置文件包。
解压缩该配置文件。 在某个文本编辑器中打开 OpenVPN 文件夹中的 vpnconfig.ovpn 配置文件。
使用 base64 中的 P2S 客户端证书公钥填写 P2S 客户端证书部分。 在 PEM 格式的证书中,可以打开 .cer 文件并在证书标头之间复制 base64 密钥。
使用 base64 中的 P2S 客户端证书私钥填写私钥部分。 有关如何提取私钥的信息,请参阅 OpenVPN 网站上的导出私钥。
请勿更改任何其他字段。 使用客户端输入中已填写的配置连接到 VPN。
双击配置文件以在 Tunnelblick 中创建配置文件。
启动应用程序文件夹中的 Tunnelblick。
单击系统托盘中的 Tunnelblick 图标,然后单击“连接”。
Linux
Linux 客户端可以通过 strongSwan(IKEv2 隧道类型)或 OpenVPN(OpenVPN 隧道类型)连接 Azure VPN 客户端或 OpenVPN 客户端。
strongSwan
本节介绍如何通过使用 strongSwan 的 Ubuntu Linux 客户端,借助 VPN 网关的点到站点 (P2S) VPN 和 证书身份验证 连接到 Azure 虚拟网络 (VNet)。
连接要求
若要通过 IKEv2 隧道类型使用 strongSwan 客户端和证书身份验证连接到 Azure,每个连接客户端都需要以下项:
- 必须将每个客户端配置为使用 strongSwan。
- 客户端必须在本地安装正确的证书。
Workflow
本文的工作流如下:
- 安装 strongSwan。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 找到必要的客户端证书。
- 配置 strongSwan。
- 连接到 Azure。
关于证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
有关适用于 Linux 的证书的详细信息,请参阅以下文章:
安装 strongSwan
指定命令时使用了以下配置:
- 计算机:Ubuntu Server 18.04
- 依赖项:strongSwan
使用以下命令安装所需的 strongSwan 配置:
sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0
查看 strongSwan VPN 客户端配置文件
生成 VPN 客户端配置文件配置包时,VPN 客户端的所有必需配置设置都包含在 VPN 客户端 zip 配置文件中。 每个虚拟网络的 P2S VPN 网关配置都有自己的 VPN 客户端配置文件。 如果生成文件后 P2S VPN 配置有任何更改,例如 VPN 协议类型或身份验证类型出现更改,则需要生成新的 VPN 客户端配置文件,并将新配置应用到所有要连接的 VPN 客户端。
找到并解压缩你生成并下载的 VPN 客户端配置包。 可以在 Generic 文件夹中找到配置所需的所有信息。 Azure不提供此配置的 mobileconfig 文件。
如果未看到 Generic 文件夹,请检查以下各项,然后再次生成 zip 文件。
- 检查配置的隧道类型。 IKEv2 可能未被选作隧道类型。
- 在 VPN 网关上,确认 SKU 不是 Basic。 VPN 网关 的 Basic SKU 不支持 IKEv2。 然后,选择 IKEv2 并再次生成 zip 文件以检索 Generic 文件夹。
Generic 文件夹包含以下文件:
- VpnSettings.xml:包含服务器地址和隧道类型等重要设置。
- VpnServerRoot.cer:包含在 P2S 连接设置过程中验证 Azure VPN 网关所需的根证书。
配置 VPN 客户端
查看 VPN 客户端配置文件后,请继续执行要使用的步骤:
GUI 操作步骤
本部分介绍如何使用 strongSwan GUI 完成配置。 以下说明是在 Ubuntu 18.0.4 上创建的。 Ubuntu 16.0.10 不支持 strongSwan GUI。 如果要使用 Ubuntu 16.0.10,则必须使用 命令行。 以下示例可能与你看到的画面不同,具体取决于所用的 Linux 和 strongSwan 版本。
打开终端并运行示例中的命令,安装 strongSwan 及其网络管理器。
sudo apt install network-manager-strongswan选择“设置”,然后选择“网络”。 选择 + 按钮创建新连接。
从“添加 VPN”页上的菜单中选择“IPsec/IKEv2 (strongSwan)”,然后双击。
在“添加 VPN”页上,添加 VPN 连接的名称。
打开下载的 VPN 客户端个人资料配置包文件包含的 Generic 文件夹中的 VpnSettings.xml 文件。 找到名为 VpnServer 的标记并复制名称,以“azuregateway”开头,以“.chinacloudapi.cn”结尾。
在“网关”部分中,将此名称粘贴到新 VPN 连接的“地址”字段中 。 接下来,选择“证书”字段末尾的文件夹图标,浏览到 Generic 文件夹,并选择 VpnServerRoot 文件。
在连接的“客户端”部分,为“身份验证”选择“证书/私钥”。 对于“证书”和“私钥”,请选择前面创建的证书和私钥。 在“选项”中,选择“请求内部 IP 地址”。 然后选择 添加。
打开连接。
CLI 步骤
本部分介绍如何使用 strongSwan CLI 完成配置。
从 VPN 客户端配置文件的 Generic 文件夹中,将 VpnServerRoot.cer 复制或移动到 /etc/ipsec.d/cacerts。
将生成的文件分别复制或移动到 /etc/ipsec.d/certs 和 /etc/ipsec.d/private/。 这些文件是客户端证书和私钥,它们需要位于相应的目录中。 使用以下命令:
sudo cp ${USERNAME}Cert.pem /etc/ipsec.d/certs/ sudo cp ${USERNAME}Key.pem /etc/ipsec.d/private/ sudo chmod -R go-rwx /etc/ipsec.d/private /etc/ipsec.d/certs运行以下命令,记下主机名。 在下一步中,你将使用此值。
hostnamectl --static打开 VpnSettings.xml 文件并复制 值。 在下一步中,你将使用此值。
调整以下示例中的值,然后将该示例添加到 /etc/ipsec.conf 配置。
conn azure keyexchange=ikev2 type=tunnel leftfirewall=yes left=%any # Replace ${USERNAME}Cert.pem with the key filename inside /etc/ipsec.d/certs directory. leftcert=${USERNAME}Cert.pem leftauth=pubkey leftid=%client # use the hostname of your machine with % character prepended. Example: %client right= #Azure VPN gateway address. Example: azuregateway-xxx-xxx.vpn.chinacloudapi.cn rightid=% #Azure VPN gateway FQDN with % character prepended. Example: %azuregateway-xxx-xxx.vpn.chinacloudapi.cn rightsubnet=0.0.0.0/0 leftsourceip=%config auto=add esp=aes256gcm16将机密值添加到 /etc/ipsec.secrets。
PEM 文件的名称必须与前面用作客户端密钥文件的内容匹配。
: RSA ${USERNAME}Key.pem # Replace ${USERNAME}Key.pem with the key filename inside /etc/ipsec.d/private directory.运行以下命令:
sudo ipsec restart sudo ipsec up azure
Azure VPN Client
Important
Azure VPN 客户端 for Linux(预览版)于2026年8月31日退役。 过了这个日期,客户端就不再被支持。 有关详细信息,请参阅适用于 Linux 的 Azure VPN 客户端停用概述和VPN 网关迁移指南。
本节帮助你通过Azure VPN for Linux客户端通过VPN 网关点对点(P2S)证书认证连接你的Azure虚拟网络(VNet)。 适用于 Linux 的 Azure VPN 客户端需要 OpenVPN 隧道类型。
在退役前,Azure VPN 客户端 for Linux(预览版)仅支持以下版本:
- Ubuntu 20.04
- Ubuntu 22.04
虽然客户端可能参与了其他发行版和版本的开发,但支持仅限于之前列出的版本。
连接要求
若要使用 Azure VPN 客户端和证书身份验证连接到 Azure,每个连接客户端都需要以下项:
- 必须在每台客户端上安装和配置 Azure VPN 客户端软件。
- 客户端必须在本地安装正确的证书。
Workflow
本文的工作流如下:
- 生成并安装客户端证书。
- 找到并查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 下载并配置适用于 Linux 的 Azure VPN 客户端。
- 连接到 Azure。
生成证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
使用以下命令以 .pem 格式生成客户端公共证书数据和私钥。 若要运行这些命令,需要具有公共根证书 caCert.pem 以及根证书 caKey.pem 的私钥。 有关详细信息,请参阅生成和导出证书 - Linux - OpenSSL。
注释
Azure 建议使用最安全的可用身份验证流。 此过程中所述的身份验证流要求对应用程序具有很高的信任度,并且具有其他流中不存在的风险。 仅当其他更安全的流(如托管标识)不可行时,才应使用此流。
export PASSWORD="password"
export USERNAME=$(hostnamectl --static)
# Generate a private key
openssl genrsa -out "${USERNAME}Key.pem" 2048
# Generate a CSR
openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}"
# Sign the CSR using the CA certificate and key
openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
查看 Azure VPN 客户端配置文件
生成并下载 VPN 客户端配置文件配置包时,VPN 客户端的所有必需配置设置都包含在 VPN 客户端 zip 配置文件中。 每个虚拟网络的 P2S VPN 网关配置都有自己的 VPN 客户端配置文件。 如果生成文件后 P2S VPN 配置有任何更改,例如 VPN 协议类型或身份验证类型出现更改,则需要生成新的 VPN 客户端配置文件,并将新配置应用到所有要连接的 VPN 客户端。
找到并解压缩您生成并下载的 VPN 客户端配置文件包(列在 先决条件 中)。 打开 AzureVPN 文件夹。 在此文件夹中,你将看到 azurevpnconfig_cert.xml 文件或 azurevpnconfig.xml 文件,具体取决于 P2S 配置是否包含多种身份验证类型。 .xml 文件包含用于配置 VPN 客户端配置文件的设置。
如果未看到任何一个文件,或者没有 AzureVPN 文件夹,请验证是否已将 VPN 网关配置为使用 OpenVPN 隧道类型,以及是否选择了证书身份验证。
下载 Azure VPN 客户端
添加 Microsoft 存储库列表,并使用以下命令安装适用于 Linux 的 Azure VPN 客户端:
# install curl utility
sudo apt-get install curl
# Install Microsoft's public key
curl -sSl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# Install the production repo list for focal
# For Ubuntu 20.04
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft-ubuntu-focal-prod.list
# Install the production repo list for jammy
# For Ubuntu 22.04
curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/microsoft-ubuntu-jammy-prod.list
sudo apt-get update
sudo apt-get install microsoft-azurevpnclient
有关存储库的详细信息,请参阅适用于 Microsoft 产品的 Linux 软件存储库。
配置 Azure VPN 客户端配置文件
打开Azure VPN 客户端。
在 Linux VPN 客户端页面左下角,选择“导入”。
在窗口中,导航到 azurevpnconfig.xml 或 azurevpnconfig_cert.xml 文件,选择它,然后选择“打开”。
若要添加“客户端证书公共数据”,请使用文件选取器并找到相关的 .pem 文件。
若要添加“客户端证书私钥”,请使用选取器,并在私钥的文本框中选择证书文件路径,私钥文件的扩展名为 .pem。
导入验证后(导入时没有错误),选择“保存”。
在左窗格中,找到创建的 VPN 连接配置文件。 选择 连接。
成功连接客户端后,状态显示为“已连接”并带绿色图标。
可以在 VPN 客户端主屏幕的状态日志中查看连接日志摘要。
卸载 Azure VPN 客户端
如果要卸载 Azure VPN 客户端,请使用终端中的以下命令:
sudo apt remove microsoft-azurevpnclient
OpenVPN 客户端
本节介绍如何在 Linux 上使用 OpenVPN 客户端,通过 VPN 网关点到站点(P2S)和 证书身份验证 连接到 Azure 虚拟网络(VNet)。
连接要求
若要使用 OpenVPN 客户端通过证书身份验证连接到 Azure,每个连接客户端都需要以下项:
- 必须在每台客户端上安装和配置 OpenVPN 客户端软件。
- 客户端必须在本地安装正确的证书。
Workflow
- 安装 OpenVPN 客户端。
- 查看生成的 VPN 客户端配置文件包中包含的 VPN 客户端配置文件。
- 配置 OpenVPN 客户端。
- 连接到 Azure。
关于证书
对于证书身份验证,必须在每台客户端计算机上安装客户端证书。 要使用的客户端证书必须使用私钥导出,并且必须包含证书路径中的所有证书。 此外,对于某些配置,还需要安装根证书信息。
本节的OpenVPN客户端使用导出为 .pfx 格式的证书。 可以使用 Windows 指令轻松地将客户端证书导出为这种格式。 请参阅导出客户端证书 - pfx。 如果没有 Windows 计算机,作为解决方法,可以使用小型 Windows VM 将证书导出为所需的 .pfx 格式。 目前,我们提供的 OpenSSL Linux 指令只能生成 .pem 格式。
配置步骤
本部分将帮助你为使用 OpenVPN 隧道类型的证书身份验证配置 Linux 客户端。 若要连接到 Azure,请下载 OpenVPN 客户端并配置连接配置文件。
注释
尚不支持 OpenVPN 客户端版本 2.6。
打开新的终端会话。 可以同时按“Ctrl + Alt + T”打开新会话。
输入以下命令以安装所需的组件:
sudo apt-get install openvpn sudo apt-get -y install network-manager-openvpn sudo service network-manager restart接下来,转到 VPN 客户端配置文件文件夹并解压缩以查看这些文件。
导出创建的 P2S 客户端证书,并将其上传到网关上的 P2S 配置。 有关步骤,请参阅 VPN 网关点到站点。
从 .pfx 中提取私钥和 base64 指纹。 有多种方法可实现此操作。 其中一种方法是在计算机上使用 OpenSSL。
openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"profileinfo.txt 文件包含 CA 的私钥与指纹以及客户端证书。 请务必使用客户端证书的指纹。
在文本编辑器中打开 profileinfo.txt。 若要获取客户端(子)证书的指纹,请选择并复制子证书的“-----BEGIN CERTIFICATE-----”与“-----END CERTIFICATE-----”之间的文本(包括这两行)。 通过查看 subject=/ 行可以识别子证书。
打开 vpnconfig.ovpn 文件并找到以下示例中的部分。 替换“cert”与“/cert”之间的所有内容。
# P2S client certificate # please fill this field with a PEM formatted cert <cert> $CLIENTCERTIFICATE </cert>在文本编辑器中打开 profileinfo.txt。 若要获取私钥,请选择并复制“-----BEGIN PRIVATE KEY-----”与“-----END PRIVATE KEY-----”之间的文本(包括这两行)。
在文本编辑器中打开 vpnconfig.ovpn 文件,并找到此节。 粘贴私钥,替换“key”与“/key”之间的所有内容。
# P2S client root certificate private key # please fill this field with a PEM formatted key <key> $PRIVATEKEY </key>请勿更改任何其他字段。 使用客户端输入中已填写的配置连接到 VPN。
若要使用命令行进行连接,请键入以下命令:
sudo openvpn --config <name and path of your VPN profile file>&若要使用命令行断开连接,请键入以下命令:
sudo pkill openvpn要使用 GUI 进行连接,请转到系统设置。
选择 + 添加新的 VPN 连接。
在“添加 VPN”下,选择“从文件导入…”。
浏览到配置文件,然后双击或选择“打开”。
在“添加 VPN”窗口中,单击添加。
可以通过在“网络设置”页面上或在系统托盘中的网络图标下打开 VPN 进行连接。
后续步骤
继续完成任何其他服务器设置或连接设置。 请参阅点到站点配置步骤。