如何在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-networkd
, systemd-resolve --status
的输出将包括:
Link 2 (ens3) Current Scopes: DNS LLMNR setting: no
因此,简而言之, LLMNR setting: yes
只是意味着它没有在该接口上显式禁用 。 如果它由systemd-networkd
管理,它只能在该接口上禁用。 如果你通过解析本身禁用它,它将基本上具有相同的效果,但它只会显示在当前范围的列表中,而不是真正在LLMNR setting
。
注意 :某些指向代表LLMNR = yes的代码是此处和此处的默认设置。