AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1115932
Accepted
Uyghur Lives Matter
Uyghur Lives Matter
Asked: 2019-02-06 13:13:01 +0800 CST2019-02-06 13:13:01 +0800 CST 2019-02-06 13:13:01 +0800 CST

优先使用 VPN 的 DNS 服务器

  • 772

只有在通过网络管理器或其配置文件连接到 VPN (OpenVPN) 时,有没有办法优先考虑特定的 DNS 服务器?

我有一个192.168.1.*我经常连接的 VPN (),它配置了 DNS ( ),以解析其网络上192.168.1.53表单的主机名。*.internal.example.com我的本地路由器 ( 192.168.0.1) 上有 DD-WRT 和谷歌的 DNS 设置(这些不是严格需要的)。

我已经用/etc/resolv.conf符号链接替换了 systemd 存根,/run/systemd/resolve/resolv.conf以便主机名实际上可以使用 VPN 的 DNS 服务器进行解析。昨天它运行良好,因为 VPN 的 DNS 服务器位于列表的顶部。

# /etc/resolv.conf -> /run/systemd/resolve/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
# ...

nameserver 192.168.1.53
nameserver 192.168.0.1
nameserver 8.8.8.8
# Too many DNS servers configured, the following entries may be ignored.
nameserver 8.8.4.4
search Home internal.example.com

但是,当我今天连接时,DNS 条目已重新排序。

# /etc/resolv.conf -> /run/systemd/resolve/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
# ...

nameserver 192.168.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
# Too many DNS servers configured, the following entries may be ignored.
nameserver 192.168.1.53
search Home internal.example.com

重新启动后顺序经常更改。有时在重新连接到 VPN 时,我注意到订单发生了变化(在遇到解决问题之后)。

systemd-resolve工作得很好,可以使用正确的 DNS 服务器解析主机。

$ systemd-resolve --status --no-pager
Global
          DNSSEC NTA: ...

Link 10 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.1.53
          DNS Domain: internal.example.com

Link 2 (eno1)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 192.168.0.1
                      8.8.8.8
                      8.8.4.4
                      192.168.1.53
          DNS Domain: Home
$ systemd-resolve srv1.internal.example.com
srv1.internal.example.com: 192.168.1.113

-- Information acquired via protocol DNS in 2.1ms.
-- Data is authenticated: no

ping, nslookup, 并且ssh都失败了。

$ ping srv1.internal.example.com
ping: srv1.internal.example.com: Name or service not known
$ nslookup srv1.internal.example.com
Server:         192.168.0.1
Address:        192.168.0.1#53

** server can't find srv1.internal.example.com: NXDOMAIN
$ ssh srv1.internal.example.com
ssh: Could not resolve hostname srv1.internal.example.com: Name or service not known

一些笔记。

我通过网络管理器连接到 VPN。我在 VPN 上手动指定了 VPN 的 DNS:IPv4 > DNS 服务器。

我尝试使用配置了 VPN 的 DNS 的单独有线以太网连接:IPv4 > 其他 DNS 服务器。

network-manager systemd systemd-resolved 18.04
  • 3 3 个回答
  • 8586 Views

3 个回答

  • Voted
  1. Best Answer
    JucaPirama
    2019-03-01T12:21:39+08:002019-03-01T12:21:39+08:00

    当您接受使用 dnsmasq 时,如何:

    1. 将您的 resolv.conf 指向 127.0.0.1(名称服务器 127.0.0.1)
    2. 在你的 dnsmasq 上试试这个配置:
    server=/internal.example.com/192.168.1.53
    server=8.8.8.8
    

    这将对域“internal.example.com”使用 192.168.1.53,对其他所有内容使用 8.8.8.8。

    查看 dnsmasq 手册页上的“-S、--local、--server=”选项。

    更新:您可能还想禁用 DHCP,以避免与本地路由器发生冲突。也许只听 lo (127.0.0.1) 接口。

    • 4
  2. Kerya
    2020-04-23T05:09:02+08:002020-04-23T05:09:02+08:00

    可以使 dns 优先

    nmcli -p 连接修改 MY_VPN_CONNECTION ipv4.dns-priority -42

    在这里找到这个https://github.com/systemd/systemd/issues/6076

    • 4
  3. Uyghur Lives Matter
    2019-03-07T07:39:50+08:002019-03-07T07:39:50+08:00

    感谢 JucaPirama对我需要的方向的回答,这是我在systemd-resolved前面使用dnsmasq的最终设置。

    禁用systemd 解析的存根 DNS 服务器。/etc/systemd/resolved.conf 变化中

    #DNSStubListener=yes
    

    至

    DNSStubListener=no
    

    重新启动systemd-resolved。

    sudo systemctl restart systemd-resolved
    

    安装dnsmasq。

    sudo apt-get install dnsmasq
    

    设置dnsmasq。在中,通过更改/etc/dnsmasq.conf使用systemd-resolved的resolv.conf文件

    #resolv-file=/etc/resolv.conf
    

    至

    resolv-file=/run/systemd/resolve/resolv.conf
    

    通过添加仅为其域设置 VPN 的 DNS 服务器

    server=/internal.example.com/192.168.1.53
    

    通过更改禁用 DHCP 以防止任何潜在的冲突

    #no-dhcp-interface=
    

    至

    no-dhcp-interface=
    

    重新启动dnsmasq。

    sudo systemctl restart dnsmasq
    

    /etc/resolv.conf从systemd-resolved的配置中取消链接。

    sudo unlink /etc/resolv.conf
    

    编辑/etc/resolv.conf以使用dnsmasq。可能不需要此步骤,因为网络管理器在某些时候会覆盖它以指向127.0.0.53。

    nameserver 127.0.0.53
    
    • 2

相关问题

  • 删除后如何将网络管理器小程序添加到面板?

  • 我可以在没有托盘/坞站/栏的情况下使用 NetworkManager 吗?

  • 网络管理器和“ifconfig”“ifup”等有什么区别?

  • 如何设置默认启用网络?

  • 命令列出启动时启动的服务?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve