我正在将生产服务器从 Ubuntu 14.04 升级到 18.04,并注意到systemd-resolved
18.04 中有一个名为运行某种本地 DNS 缓存的东西。[1]
为什么需要这样做?nameserver 1.1.1.1
简单地放入或nameserver 8.8.8.8
放入/etc/resolv.conf
然后就到此为止有什么问题吗?systemd-resolved
禁用并恢复到更简单的配置是否安全?
[1] 我注意到只是因为它随机崩溃并导致所有主机名查找失败,从而有效地削弱了我的应用程序 - https://askubuntu.com/questions/1117842/systemd-resolved-crashing-with-failed-to-set-上挂载命名空间无效参数
其逻辑是 Ubuntu 有一个内置的 DNS 缓存,它在尝试解析任何内容时首先检查该缓存。\n在此版本中,默认情况下,NetworkManager 不会更新 /etc/resolv.conf,而是\xe2\x80\x99s 调用名为 resolvconf 的应用程序。
\n\n这种方法:
\n\nservice resolvconf disable-updates\nupdate-rc.d resolvconf disable\nservice resolvconf stop\n
Run Code Online (Sandbox Code Playgroud)\n\n可能无法通过重新启动。
\n\n为了解决这个问题,我们可以更加努力:
\n\nsystemctl disable systemd-resolved.service\nsystemctl stop systemd-resolved\n
Run Code Online (Sandbox Code Playgroud)\n\n将以下行添加到NetworkManager.conf的[main]部分:
\n\ndns=default\n
Run Code Online (Sandbox Code Playgroud)\n\n然后重新启动网络管理器:
\n\nservice network-manager restart\n
Run Code Online (Sandbox Code Playgroud)\n\n这应该使系统使用经典的 resolv.conf 。
\n\n另一种肮脏的伎俩是使服务无法启动,直到您“揭开”它:
\n\nsystemctl mask systemd-resolved\n
Run Code Online (Sandbox Code Playgroud)\n\n这样做的不安全部分可能是禁用它可能会破坏某些 VPN 场景中的名称解析。因此,如果您想使用 VPN,请确保在摆脱 systemd-resolved 后对其功能进行适当的测试。
\n 归档时间: |
|
查看次数: |
6475 次 |
最近记录: |