使用 dnsmasq 解析本地主机的热点

raf*_*rsr 5 network-manager dnsmasq hot-spot 17.10

我有一个配置为与其他设备共享有线互联网连接的热点,该热点使用nmcli con up Hotspot ifname virtual.

Hostspot 已启动并使用 IP10.42.0.1

此时一切正常,任何设备都可以连接到热点并使用互联网。

现在我尝试设置dnsmasq从手机访问计算机中的某些虚拟主机,但是当尝试启动该服务时出现以下错误:

dnsmasq[1034]: failed to create listening socket for 10.42.0.1: Address already in use

我可以看到“某些”进程已经在监听端口 53

netstat -anlp | grep LISTEN | grep 10.42.0.1:53
tcp        0      0 10.42.0.1:53            0.0.0.0:*               LISTEN      -
Run Code Online (Sandbox Code Playgroud)

热点正在启动一些 dns 服务器?可以禁用它来使用dnsmasq或至少配置为从中读取主机/etc/hosts吗?

raf*_*rsr 4

我找到了一个解决方案:

首先删除 dnsmasq 配置文件中所做的任何更改。

创建以下文件/etc/NetworkManager/dnsmasq-shared.d/hosts.conf

和:

address=/.local/10.42.0.1
Run Code Online (Sandbox Code Playgroud)

.local我所有虚拟域的最后一部分在哪里/etc/hosts

127.0.0.1    somedomain.local
127.0.0.1    another.domain.local
Run Code Online (Sandbox Code Playgroud)

重新启动网络管理器并正常工作。

显然网络管理员运行他自己的 dnsmasq。

以下链接给了我一个想法:

配置 NetworkManager 的 dnsmasq 以使用 /etc/hosts

http://manpages.ubuntu.com/manpages/zesty/en/man8/dnsmasq.8.html