V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dangyuluo
V2EX  ›  macOS

MacOS 连接 Wireguard 下如何配置多 DNS?

  •  
  •   dangyuluo · 2021-12-20 08:38:13 +08:00 · 2303 次点击
    这是一个创建于 856 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在家里有跑着几个服务,没有公网域名,因此在家里的网络(10.0.0.1/24)上跑了一个 DNS ,其 IP 为10.0.0.233,用来解析这几台内网机器的 IP ,比如home_service_a=>10.0.0.230。有时候想在外面连回家里的网络,就配置了 Wireguard ,并且将内网 DNS10.0.0.233下发给客户端。这时候可以愉快地在外面访问家里的网络,并且 DNS 解析home_service_a正常。

    但是,我们公司也有自己的内网 DNS 来解析一些 lab 机器,比如lab-machine-01=>10.31.32.xxx。当我在公司连接上 Wireguard 后,发现ping lab-machine-01不通了,错误为找不到 IP 。nslookup也是同样的结果。初步判断为所有 DNS 请求都被发到了 Wireguard 分配的家庭 DNS 服务器(10.0.0.233)上。

    具体表现为:

    # After connecting to Wireguard in compnay
    $ nslookup lab-machine-01 # In office network only!!
    Server:		10.0.0.233 # This is the home DNS server IP
    Address:	10.0.0.233#53
    
    ** server can't find lab-machine-01: NXDOMAIN
    

    我注意到,在连接 Wireguard 后,scutils --dns里的解析顺序标明第一 DNS 确实是家庭 DNS

    $ scutil --dns
    DNS configuration
    
    resolver #1
      search domain[0] : int.companyname.com
      nameserver[0] : 10.0.0.233 # Home DNS IP
      nameserver[1] : 10.0.0.1
      nameserver[2] : 8.8.8.8
      flags    : Supplemental, Request A records
      reach    : 0x00000002 (Reachable)
      order    : 102200
    
    resolver #2
      nameserver[0] : 10.31.xx.xx # Company DNS IP
      if_index : 10 (en0)
      flags    : Request A records
      reach    : 0x00020002 (Reachable,Directly Reachable Address)
      order    : 200000
    

    请问有没有什么办法配置多个 DNS 解析呢?任意一个请求成功获得 IP 即可

    5 条回复    2021-12-21 14:07:52 +08:00
    wd
        1
    wd  
       2021-12-20 08:57:35 +08:00 via iPhone
    你可以自己本机跑一个 dns server 让 wireguard 下发这个 dns ,然后在这个 dns server 里面配置好使用不同的上游 dns 。

    如果想简单一点的,可以在 hosts 文件里面写死那些解析,内网的服务 ip 估计也不怎么变吧
    sacuba
        2
    sacuba  
       2021-12-20 13:22:18 +08:00
    虽然不是直接回答你的 dns 问题。 你的 wireguard 配置中的 AllowedIPs 设置了多少?有设置 10.0.0.1/24 么
    dangyuluo
        3
    dangyuluo  
    OP
       2021-12-21 01:45:47 +08:00
    @wd 有点过于复杂了,而且有时候需要在移动设备上操作。


    @sacuba 已经配置了,现在 Macbook 上的路由表配置正确(家庭内网走 Wireguard ,其余走公司网络)
    1350943277
        4
    1350943277  
       2021-12-21 09:04:05 +08:00
    @dangyuluo 用 adguard home ,就三部的事情,开放端口,下载 adguard home (自动安装的),进网页控制面板设置就行
    TerenceRust
        5
    TerenceRust  
       2021-12-21 14:07:52 +08:00   ❤️ 1
    /etc/resolver 里面建对应内网域名的 DNS 配置文件
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3299 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:06 · PVG 21:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.