Azure AppSite 与运行 MongoDB 的 Azure Ubuntu VM 的连接问题

Azure AppSite 与运行 MongoDB 的 Azure Ubuntu VM 的连接问题

我最近通过 Visual Studio 使用 ARM 配置了一个资源组。它有一个运行 MongoDB 的 Ubuntu VM,我可以通过 SSH 成功进入并与 Mongo shell 交互。

我还有一个运行 WebAPI 的应用站点,我希望能够使用私有 IP 访问 MongoDB(不应直接在公共 IP 上访问 MongoDB)。我已修改 mongo.conf 文件中的 bindIp 设置,以便将其绑定到127.0.0.1,10.0.0.4。我已将 WebAPI 中的连接字符串设置为使用10.0.0.4凭据指向(我已在 VM 上直接通过 SSH 使用 Mongo shell 测试了凭据)。此外,还有 NIC、虚拟网络和其他资源(链接 NIC、存储等)。所有资源都位于同一资源组中。

我在 Application Insights 中看到的错误是:

System.Net.Sockets.SocketException:尝试以访问权限禁止的方式访问套接字

有人可以解释一下为什么我的 Azure 应用站点(WebAPI)无法访问在我的 Ubuntu VM 上运行的 MongoDB - 我已经没有什么可尝试的了。

另外,我还添加了一个 GateWay 子网,并转到 AppSite 的网络节点并尝试设置 VNET 集成,但是它显示我的网络变灰,有一个小灰色斑点,将鼠标悬停在上面时会报告“虚拟网络没有网关” - 我不完全确定这是否是必需的,但无论如何我都创建了一个 GateWay 子网资源,但似乎没有帮助。

答案1

[...] 尝试设置 VNET 集成,但它显示我的网络呈灰色,有一个小灰色斑点,将鼠标悬停在上面时会报告“虚拟网络没有网关”

你走在正确的轨道上。

首先在 ARM 虚拟网络中创建一个网关:
Azure 门户 → 新建 → 虚拟网络网关

网关类型:VPN

VPN 类型:基于路线(这实际上意味着 IKEv2)

然后添加点到站点地址空间将其用于将 Web 应用连接到 VPN。在 Azure PowerShell 中:

# Add Point-to-site address space

$GatewayName = "YourGatewayName"
$RG = "YourResourceGroupName"
# The Point-to-site address space MUST NOT OVERLAP with the Virtual Network address space
$P2SAddressSpace = "172.16.1.0/24"

Set-AzureRmVirtualNetworkGatewayVpnClientConfig -VirtualNetworkGateway `
                 (Get-AzureRmVirtualNetworkGateway -Name $GatewayName `
                                                   -ResourceGroupName $RG) `
                 -VpnClientAddressPool $P2SAddressSpace -Verbose

等待几分钟让网关更新,然后返回到Web 应用程序 -> 网络 -> VNET 集成并选择网关。

就这样。

相关内容