如何在systemd-resolved中禁用LLMNR?

如何在systemd-resolved禁用LLMNR?

我尝试在/etc/systemd/resolved.conf添加: LLMNR=no

但是当我键入systemd-resolve --status它仍会显示

LLMNR设置:是的

我尝试重新启动计算机并重新启动systemd-resolved.service

systemd-resolved有LLMNR设置, systemd-networkd还有每链路LLMNR设置。

您在systemd-resolve --status输出中查看的设置实际上是来自systemd-networkd 。 除此之外,如果你没有运行systemd-networkd ,它仍会显示yes

默认设置将显示如下内容:

 Link 2 (ens3) Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 LLMNR setting: yes 

它还意味着systemd-resolved将在这些接口上接收UDP端口5355(LLMNR端口)上的请求。

如果通过在resolved.conf设置LLMNR=no并重新启动systemd-resolved禁用它,则会得到:

 Link 2 (ens3) Current Scopes: DNS LLMNR setting: yes 

您看到范围已更改为DNS,因此它将仅使用DNS,将不再接收UDP端口5355上的请求。

如果您还使用systemd-networkd ,则可以通过在该接口的.network文件的[Network]部分设置LLMNR = no来进一步禁用该接口上的LLMNR。

例如:

 # /etc/systemd/network/90-ens3-nollmnr.network [Match] Name=ens3 [Network] LLMNR=no 

设置并重新启动systemd-networkdsystemd-resolve --status的输出将包括:

 Link 2 (ens3) Current Scopes: DNS LLMNR setting: no 

因此,简而言之, LLMNR setting: yes只是意味着它没有在该接口上显式禁用 。 如果它由systemd-networkd管理,它只能在该接口上禁用。 如果你通过解析本身禁用它,它将基本上具有相同的效果,但它只会显示在当前范围的列表中,而不是真正在LLMNR setting

注意 :某些指向代表LLMNR = yes的代码是此处和此处的默认设置。