前言:

因为某些原因,需要同时用到systemd-resolved和dnsmasq。二者都提供了dns服务,端口会冲突,会有一方无法启动。现禁用dnsmasq的dns功能以达成目的,只使用dnsmasq的dhcp功能。依然由systemd-resolved提供53端口的DNS服务。

冷知识:

    DNS服务:UDP/TCP 53
    DHCP服务:UDP 67(客户端)和 UDP 68(服务器)

所以在这里,禁用dnsmasq的dns功能,继续由systemd-resolved提供53端口的DNS服务。

1:安装dnsmasq

sudo apt install dnsmasq -y

2:sudo vi /etc/dnsmasq.conf 找到下面的行注释掉:

# listen-address=127.0.0.1  # 关闭本地 DNS 监听
# resolv-file=/etc/resolv.dnsmasq.conf  # 关闭上游 DNS 配置
# address=/example.com/192.168.1.100  # 关闭自定义域名解析
# server=/google.com/8.8.8.8  # 关闭条件转发

3:若是以上行都没有,则只需将port=0加到文件中,同时注释或删除所有 listen-address 配置

port=0          # 禁用 DNS 端口(53)
# listen-address=  # 注释或删除所有 listen-address 配置

4:重启服务:

sudo systemctl restart dnsmasq

5:成功将dnsmasq启动,不在报错:53端口被占用。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐