You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Azure Linux App Service访问Windows VM中的共享目录

Linux Azure App Service 访问同租户Windows VM文件的可行解决方案

Linux App Service沙箱默认封禁了SMB协议445端口的出站连接,因此直接挂载Azure File Share、通过SMB协议访问Windows VM共享文件夹的方案都会被限制,可采用以下3种可行方案落地:

方案1:通过SSHFS挂载VM共享目录

  • 前置配置:Windows Server 2019及以上版本可直接安装系统内置的OpenSSH Server,更低版本可手动部署Win32-OpenSSH服务。配置VM所属网络安全组(NSG)的入站规则,仅放行App Service出站IP段的22端口访问权限,避免SSH端口公网暴露。
  • App Service侧操作:
    1. 进入App Service控制台的「配置」-「常规设置」页面,开启「持久存储」开关,避免容器重启后自定义配置丢失。
    2. 通过SSH登录App Service运行容器,执行命令apt update && apt install sshfs -y安装SSHFS工具。
    3. 容器内生成SSH密钥对,将公钥添加到Windows VM的authorized_keys配置文件中,配置免密登录。
    4. 执行挂载命令:sshfs <VM管理员账号>@<VM内网IP>:/C/共享文件夹本地路径 /home/site/wwwroot/oldfiles -o allow_other,IdentityFile=/home/.ssh/id_rsa
    5. 将挂载命令写入App Service自定义启动脚本,避免容器重启后挂载失效。
  • 适配提示:如果App Service和Windows VM加入同一个VNet,可直接通过内网IP访问,不需要走公网传输,安全性和延迟表现更佳。

方案2:部署内部文件代理服务

  • 在Windows VM上部署轻量HTTP文件服务:可以用最小ASP.NET Core API封装文件读写、目录列表能力,也可以直接用IIS搭建受权限控制的静态文件站点,服务仅绑定内网地址,仅允许VNet内IP访问。
  • App Service侧接入同一个VNet,业务代码中将原本地文件操作逻辑替换为调用VM上的文件代理接口即可,不需要改动上层业务逻辑。
  • 优势:不需要修改App Service容器的底层配置,兼容性最高,后续文件存储位置迁移时仅需要调整代理服务配置即可,对业务无感知。

方案3:使用SMB over QUIC(仅限Windows Server 2022 Azure Edition)

  • 若Windows VM使用的镜像为Windows Server 2022 Azure Edition,可开启SMB over QUIC功能,该功能使用443端口传输SMB流量,不会被App Service沙箱封禁。
  • 功能配置完成后可直接在Linux App Service中挂载VM的SMB共享目录,不需要修改业务代码。

所有方案都建议优先将App Service和Windows VM接入同一个Azure VNet,关闭公网访问路径,避免文件泄露风险。涉及文件写入操作时需要做好权限控制,避免多实例读写冲突。

内容的提问来源于stack exchange,提问作者Thomas Newman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:04