systemd-resolved 阻止域名

jmu*_*sch 6 dns systemd dnsmasq systemd-networkd systemd-resolved

使用systemd-resolved如何阻止、路由或解析域名到黑洞或无处地址。子域的奖励积分也是如此。

我在 中尝试了一个域/etc/hosts

127.0.0.1 google.com
::1 google.com
Run Code Online (Sandbox Code Playgroud)

我也试过/etc/systemd/network/100-blocked.network

[Match]
Name=wlp113s0

[Network]
Description="Just block the domain, and sub domains"
DNS=127.0.0.255
DNS=::1

[Resolve]
Domains=google.com
Run Code Online (Sandbox Code Playgroud)

sudo systemd-resolve --status

Link 3 (wlp113s0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 127.0.0.255
                      ::1
                      2001:4888:3a:ff00:304:d::
                      2001:4888:39:ff00:308:d::
Run Code Online (Sandbox Code Playgroud)

例如使用dnsmasq我能够做到:

server=192.168.43.1
address=/google.com/0.0.0.0
# a very long list of "address=/domain/0"
Run Code Online (Sandbox Code Playgroud)

有关的:

met*_*lic 0

我想为此目的你可以修改你的/etc/nsswitch.conf. 参数。此文件中的 host 向您显示 systemd-resolved 用于按名称获取主机的源。所以你可以这样修改它:hosts: files [!NOTFOUND=return] dns.

files - 本地文件,例如 /etc/hosts 和 /etc/passwd

dns - 互联网域名系统

在这种情况下,systemd-resolved 首先将用于/etc/hosts通过名称获取主机。部分!NOTFOUND=return意味着如果在 systemd-resolved 中未找到名称,/etc/hosts将尝试使用dns.