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 / 问题 / 1272199
Accepted
UbuntuUser
UbuntuUser
Asked: 2020-09-03 13:05:41 +0800 CST2020-09-03 13:05:41 +0800 CST 2020-09-03 13:05:41 +0800 CST

如果在非桌面 Ubuntu 20.04 安装中使用 DHCP,使用特定 DNS 服务器的正确方法是什么,并且您可以使用 DNS over TLS 吗?

  • 772

我正在使用 Ubuntu 20.04 运行本地服务器,并且需要做一件应该很简单的事情 - 告诉它使用 ISP 的 DNS 服务器以外的其他东西来解析 DNS。但是由于我不会深入讨论的原因,它确实需要使用 DHCP 获取其 IP 地址,因此没有静态 IP 地址。这在以前的 Ubuntu 版本中很容易实现,如果您正在运行桌面,显然仍然不是太难,但我还没有看到关于如何在 Ubuntu Server 中执行此操作的明确说明。

我尝试过的以及现在似乎可行的方法是:

sudo apt update
sudo apt install resolvconf
sudo nano /etc/resolv.conf

(例如,在注释掉的行下方,我添加了两个指向首选 DNS 的名称服务器行

nameserver 8.8.8.8
nameserver 8.8.4.4

然后保存并退出纳米)

sudo systemctl start resolvconf.service

现在这似乎奏效了,但让我烦恼的是出现在 resolv.conf 中的这段文本:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

尽管如此,我看到很多人告诉你继续编辑这个文件,但我想知道的是,这个文件是否会在某个时候被覆盖,如果是这样,那么现在被认为是“正确的" 在 Ubuntu 20.04 中指定名称服务器的方法,请记住我不能使用静态 IP 地址并且系统上没有桌面?您会认为现在有人会在网页或视频中介绍此内容,但如果是这样,我找不到它。

编辑:我确实意识到“正确”的方式应该涉及修改 /etc/netplan/00-installer-config.yaml 文件以使用特定的名称服务器,但问题在于,如果您不将 dhcp4: 设置为false或不,它会将您指定的 DNS 服务器添加到已经包含从 DHCP 获得的服务器的列表中。因此,如果 DHCP 请求指定使用 ISP 的名称服务器,它将始终首先检查,并且仅在 DNS 无法响应时才转到您首选的名称服务器。显然这不是我们想要的行为,而这正是促使我首先安装 resolvconf 的原因。

但是继续这个主题,如果不是太难的话,我真正想要实现的是 DNS 加密,我猜它被称为 DNS over TLS。我想知道的是这个功能是否内置在 Ubuntu Server 中,如果是,你如何启用它。我已经看到几个页面建议安装一个名为 stubby 的软件包,但我发现几乎所有的说明都是为早期 Ubuntu 版本的用户或 Ubuntu 桌面用户编写的。

这一切似乎在 Ubuntu 18.04 中会容易得多,但是在我访问过的所有页面中,试图获得关于这个主题的可靠信息,如果在所有说明中提到 20.04,几乎普遍告诉你使用网络配置工具在桌面版本中。好像没有人知道在不使用基于 GUI 的实用程序的情况下,在 Ubuntu 20.04 中做一些应该非常简单的事情的正确方法。所以我想知道为什么他们让用户更难- 这似乎是在错误的方向!

networking server dns tls 20.04
  • 2 2 个回答
  • 3608 Views

2 个回答

  • Voted
  1. dzidek23
    2020-10-02T04:26:23+08:002020-10-02T04:26:23+08:00

    我同意@chili555,netplan 是您的最佳选择。不要安装不必要的新软件包并使用替代配置修补您的系统。Netplan 很好,但我必须承认间距很烦人 :)

    在 Ubuntu 20.04 中,您应该已经拥有 0.99 版的 Netplan 包,它可以与 dhcp4-overrides 一起使用:

    所以,从前面提到的帖子:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp2s1:
          dhcp4: yes
          dhcp4-overrides:
            use-dns: false
          dhcp6: yes
          dhcp6-overrides:
            use-dns: false
          nameservers:
            addresses: ["fd35:2ff0:b0b9:d0c0::1:1", 192.168.255.17]
    

    然后不要把自己扔在

    netplan apply
    

    但使用

    netplan try
    

    反而。这样,您有 120 秒的时间恢复配置,您可以再次连接。

    注意:另一种设置是禁用路由器广告 ( accept-ra: false)。这些也可以设置不需要的 IPv6 DNS 服务器。

    参考

    • 网络计划配置示例
    • 网络计划参考
    • 3
  2. Best Answer
    Brian Turek
    2020-09-04T22:36:35+08:002020-09-04T22:36:35+08:00

    好的,您有几个问题合二为一:

    DNS-over-TLS (DoT)

    Ubuntu 提供的stubby包是事实上的标准 DoT 守护程序之一。只是跑步apt install stubby,你应该很高兴。

    DHCP DNS 覆盖

    正如 chili555 在评论中指出的那样,您想使用dhcp4-overrides -> use-dns选项来禁用使用 DHCP 提供的 DNS 服务器。

    使用 Stubby

    正如您已经遇到的,systemd-networkd 默认会启动自己的 DNS 解析器(systemd-resolved)。如果你想运行 Stubby,他们都想绑定到端口 53,这会导致错误。你有两个选择:

    • 禁用 systemd-resolved并将 netplan.io 配置为使用 127.0.0.1 作为您的 DNS 覆盖服务器。这有禁用 DNS 缓存的缺点(我认为)。
    • 告诉 Stubby 使用listen_addresses变量 in绑定到不同的 localhost IP 和/或端口/etc/stubby/stubby.yml,然后告诉“netplan.io”使用 dns 覆盖将其指向该新 ​​IP/端口。
    • 1

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

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