linux – systemd-resolved服务做了什么,是否需要监听所有接口?

前端之家收集整理的这篇文章主要介绍了linux – systemd-resolved服务做了什么,是否需要监听所有接口?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个涉及IOT设备的项目(现已弃用的英特尔Galileo).我正在考虑强化这些设备,我注意到systemd-resolved服务正在监听所有接口(0.0.0.0).
root@hostname:~# netstat -altnp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      240/systemd-resolve

阅读freedesktop.org对服务here的描述后,
它说,

systemd-resolved is a system service that provides network name resolution to local applications.

我运行了一个测试,在那里我运行ping到google.com,其中systemd-resolved正在运行.然后我禁用了该服务并发送了ping
yahoo.com.两个请求都没有数据包丢失.

我的问题如下:

这项服务在做什么?

如果它为本地应用程序提供名称解析,为什么它会监听0.0.0.0接口?

这是安全问题吗?

禁用此服务会产生哪些潜在影响?

提前感谢您提供任何信息/帮助.
如果我没有遵守问题格式,请第一时间发帖道歉.
请根据需要进行编辑.

解决方法

systemd需要systemd-resolved.除非您正在安装备用DNS解析器,否则应该保留它.

重要的是要注意它实际上是在127.0.0.53:53上监听UDP数据包来为你做DNS解析:

# netstat -npa | grep systemd-resolve
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      205/systemd-resolve
tcp6       0      0 :::5355                 :::*                    LISTEN      205/systemd-resolve
udp        0      0 127.0.0.53:53           0.0.0.0:*                           205/systemd-resolve
udp        0      0 0.0.0.0:5355            0.0.0.0:*                           205/systemd-resolve
udp6       0      0 :::5355                 :::*                                205/systemd-resolve

端口5355套接字用于实现链路本地多播名称解析(LLMNR),这是一种仅在LAN中有用的功能.

要禁用它,请编辑/etc/systemd/resolved.conf并更改该行

#LLMNR=yes

LLMNR=no

然后使用service systemd-resolved restart重新启动服务并再次检查:

# netstat -npa | grep systemd-resolve
udp        0      0 127.0.0.53:53           0.0.0.0:*                           404/systemd-resolve

猜你在找的Linux相关文章