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

连接Azure OpenVPN虚拟机后无法访问子网内存储账户求助

解决Azure VPN连接后无法访问子网B存储账户的问题

核心问题是DNS解析错误:你的本地机器连VPN后,还是把存储账户的域名解析成了公网IP,而不是子网B里的专用端点IP,所以访问失败。下面是一步步的简单解决方法:

第一步:确认问题根源

打开命令提示符(Windows)或终端(Mac/Linux),输入:

nslookup 你的存储账户名.blob.core.windows.net

(如果是文件存储,把blob换成file;表存储换成table,以此类推)

  • 如果返回的IP不是Azure存储账户专用终结点的内网IP,而是一串公网IP,那确实是DNS的问题,直接看后面的解决步骤。

第二步:临时测试(快速验证)

先通过本地hosts文件强制解析,验证是不是DNS导致的:

  1. 去Azure门户找到你的存储账户,进入「专用终结点」页面,复制它的专用IP地址
  2. 编辑本地hosts文件:
    • Windows:打开记事本(右键选「以管理员身份运行」),打开C:\Windows\System32\drivers\etc\hosts
    • Mac/Linux:用终端输入sudo nano /etc/hosts
  3. 在文件末尾加一行:
    存储账户专用IP 你的存储账户名.blob.core.windows.net
    
    (比如10.0.1.5 mystorage.blob.core.windows.net)
  4. 保存文件后,再用nslookup测试,确认解析到了专用IP,然后试试访问存储账户(比如用Azure存储 Explorer 或你的代码)。如果能访问,就坐实了是DNS的问题。

第三步:永久解决(让VPN自动获取正确DNS)

方法1:配置VPN推送VNet的DNS地址

  1. 去Azure门户找到你的OpenVPN VM,进入「网络」>「网络接口」>「DNS服务器」
  2. 选择「自定义」,输入Azure VNet的DNS服务器地址(默认是Azure提供的专用DNS,你可以在VNet的「DNS服务器」页面查到)
  3. 调整OpenVPN的配置,让它在连接时把这个DNS地址推送给本地机器(具体操作可以在OpenVPN的配置文件里添加push "dhcp-option DNS VNet的DNS服务器IP")

方法2:确保VNet已链接专用DNS区域

Azure的专用端点需要配合专用DNS区域才能正确解析:

  1. 去Azure门户搜索「专用DNS区域」,看看有没有对应存储服务的区域(比如privatelink.blob.core.windows.net)
  2. 如果没有,新建一个对应类型的专用DNS区域,然后在区域的「虚拟网络链接」里,把你的VNet加进去
  3. 这样VNet内的所有机器(包括VPN连接进来的设备)都能自动把存储账户域名解析到专用IP

第四步:排除其他小概率问题

如果上面的方法都不行,再检查:

  • 从你的OpenVPN VM ping存储账户的专用IP,如果ping不通,去子网B的网络安全组(NSG)确认入站规则允许来自子网A的流量(默认是允许的,除非你手动改了)
  • 确认存储账户的专用终结点状态是「已批准」,没有处于未审批状态

内容的提问来源于stack exchange,提问作者Andrew Duffy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 19:38:19