SMB 通过虚拟网络从 Azure Web App 访问本地资源
SMB access to on-premise resource from Azure Web App via Virtual Network
我们有一个设置,其中 Azure 中的 VM 和 Web 应用程序通过点到站点虚拟网络连接到我们的本地资源。
我们有一个本地文件夹,可以访问 Everyone 打开(在共享和 NTFS 上),并且该虚拟网络上的 Azure VM 可以毫无困难地浏览到共享。
但是网络应用程序无法访问它们。
我假设 this article 中的以下行解释了原因,但我想确认这是不可能的:
The work required to secure your networks to only the web apps that need access prevents being able to create SMB connections. While you can access remote resources this does not include being able to mount a remote drive.
从网站尝试访问它的日志中得出:
从图片中取出 C# 代码,尝试从 Web 应用程序上的 powershell 控制台获取目录列表:
我也用混合连接尝试过这个,并且越来越接近 - 一旦它设置并附加到 Web 应用程序,我就能够从 powershell 控制台 tcping SMB 端口(这比我能做的更远)使用 VNET 时获取),但它仍然无法列出目录:
有什么想法吗?有人在做类似的事情吗?
tcping 结果实际上具有误导性 - 您实际上是在 ping 托管在您的网络应用程序上的本地端口(因此 tcping 的结果约为 1 毫秒)。 Tcping 实际上并没有测试混合连接的完整隧道,因为隧道只是一个 TCP 级别的数据中继(也就是说,它不通过隧道发送 TCP headers 等,只有有效负载)并且 tcping 确实不发送任何数据,只是简单地验证 TCP 握手是否成功。
不幸的是,这篇文章是正确的 - SMB 在您的 Web 应用程序中根本不起作用。有安全层可以阻止这种尝试。
我们有一个设置,其中 Azure 中的 VM 和 Web 应用程序通过点到站点虚拟网络连接到我们的本地资源。
我们有一个本地文件夹,可以访问 Everyone 打开(在共享和 NTFS 上),并且该虚拟网络上的 Azure VM 可以毫无困难地浏览到共享。
但是网络应用程序无法访问它们。
我假设 this article 中的以下行解释了原因,但我想确认这是不可能的:
The work required to secure your networks to only the web apps that need access prevents being able to create SMB connections. While you can access remote resources this does not include being able to mount a remote drive.
从网站尝试访问它的日志中得出:
从图片中取出 C# 代码,尝试从 Web 应用程序上的 powershell 控制台获取目录列表:
我也用混合连接尝试过这个,并且越来越接近 - 一旦它设置并附加到 Web 应用程序,我就能够从 powershell 控制台 tcping SMB 端口(这比我能做的更远)使用 VNET 时获取),但它仍然无法列出目录:
有什么想法吗?有人在做类似的事情吗?
tcping 结果实际上具有误导性 - 您实际上是在 ping 托管在您的网络应用程序上的本地端口(因此 tcping 的结果约为 1 毫秒)。 Tcping 实际上并没有测试混合连接的完整隧道,因为隧道只是一个 TCP 级别的数据中继(也就是说,它不通过隧道发送 TCP headers 等,只有有效负载)并且 tcping 确实不发送任何数据,只是简单地验证 TCP 握手是否成功。
不幸的是,这篇文章是正确的 - SMB 在您的 Web 应用程序中根本不起作用。有安全层可以阻止这种尝试。