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

macOS(M1芯片)下通过Azure AD认证的点到站点VPN连接Azure私有访问PostgreSQL弹性服务器时DNS解析失败

macOS(M1芯片)下通过Azure AD认证的点到站点VPN连接Azure私有访问PostgreSQL弹性服务器时DNS解析失败

问题描述

我正尝试通过配置在Azure虚拟网络网关、采用Azure AD而非证书认证的点到站点(P2S)VPN,连接Azure私有访问的PostgreSQL弹性服务器,但从我的M1芯片macOS Sonoma 14.6.1本地机器无法访问数据库。VPN能成功连接,但数据库的私有DNS无法解析。

我已经做了以下操作:

  • 确认VPN已成功连接,并且从地址池(172.16.0.0/24)获取到了IP地址
  • 尝试ping和nslookup数据库主机名,但DNS解析失败,提示NXDOMAIN
  • 在macOS网络设置中手动配置DNS服务器为Azure VNet内部DNS(比如10.0.0.4),并刷新了DNS缓存

执行nslookup命令的结果如下:

nslookup timepiepstg.postgres.database.azure.com
Server: 194.168.4.100
Address: 194.168.4.100#53
** server can't find timepiepstg.postgres.database.azure.com: NXDOMAIN

排查与解决方案

针对M1 macOS下P2S VPN的DNS解析问题,我给你几个实用的排查方向和解决办法:

1. 确认VPN客户端的DNS配置优先级

Azure P2S VPN(尤其是AD认证类型)有时候不会自动把Azure VNet的DNS服务器推送给macOS客户端,就算你手动加了,也得确保它是优先被使用的:

  • 打开「系统设置」→「网络」,选中已连接的VPN
  • 点击「详细信息」→「DNS」标签,看看Azure VNet的内部DNS(比如10.0.0.4)是不是在列表最顶部
  • 如果不是,拖拽它到第一位,让系统优先用这个DNS解析

2. 给数据库域名单独指定DNS服务器

有时候macOS会“固执”地用本地DNS解析所有域名,哪怕VPN连好了。你可以给PostgreSQL的私有域名单独设置DNS规则,让它走VPN的DNS:

  1. 打开终端,创建并编辑一个专属的DNS解析配置文件:
    sudo nano /etc/resolver/postgres.database.azure.com
    
  2. 在文件里输入以下内容(替换成你的Azure VNet内部DNS地址):
    nameserver 10.0.0.4
    domain postgres.database.azure.com
    search_order 1
    
  3. 保存退出(按Ctrl+O回车,再Ctrl+X),然后刷新DNS缓存:
    sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
    

3. 检查Azure VPN网关的DNS设置

别忽略了云端的配置,确保你的虚拟网络网关已经指定了正确的DNS服务器:

  • 登录Azure门户,找到你的虚拟网络网关
  • 进入「配置」页面,确认「DNS服务器」已经设为Azure VNet的内部DNS(比如10.0.0.4),不是默认的Azure DNS
  • 如果没设置,修改后重启网关,再重新连VPN试试

4. 用私有IP直接测试连通性

如果DNS还是不行,先跳过DNS,用PostgreSQL服务器的私有IP直接连接,看看是不是网络本身的问题:

  • 去Azure门户找到你的PostgreSQL弹性服务器,查看它的私有IP
  • 用psql命令直接连这个IP:
    psql -h <你的私有IP> -U <用户名>@<服务器名> -d <数据库名>
    

要是能连上,那肯定是DNS的问题,继续盯着DNS解决就行;要是连不上,就得检查NSG规则或者路由表了。

5. 针对M1芯片的VPN客户端优化

M1 macOS对Azure P2S VPN的AD认证客户端偶尔会有兼容性问题,试试这两个办法:

  • 把Azure VPN客户端更到最新版本(从App Store或者Azure门户下载都行)
  • 换用系统内置的IKEv2 VPN连接:
    1. 在Azure门户导出P2S VPN的IKEv2配置文件
    2. 打开macOS「系统设置」→「网络」,添加新VPN,选「IKEv2」类型,导入配置文件
    3. 连接后再测试DNS解析

备注:内容来源于stack exchange,提问作者MertTheGreat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 14:28:03