我已经在由 Linux/macOS 计算机组成的本地网络上进行了设置dnsmasq
。我在文件中添加了如下一行/etc/dnsmasq.d/home.lan
:
dhcp-host=dc:cd:2f:bf:44:12,printer,192.168.0.3
我希望/期望这意味着我可以使用如下命令:
ping printer
它可以接收网络上所有机器的 IP 地址,但无法解决。我知道这dnsmasq
在某种程度上是可行的,因为打印机在启动时会请求 IP 地址,并将自身配置为上述正确的 IP 地址。
我希望/etc/dnsmasq.d/home.lan
尽可能保留所有 DNS/DHCP 配置,而不是/etc/hosts
在 DNS 服务器或任何客户端上进行编辑或进行其他任何操作。
我研究并发现了这一点,因此我也尝试添加:
host-record=printer,192.168.0.3
但这也无济于事。
这是我的配置文件,在最新的 Raspberry Pi OS 上运行最新版本dnsmasq
:
# General configuration
domain-needed
bogus-priv
no-resolv
no-hosts
server=8.8.8.8
server=1.1.1.1
dhcp-range=192.168.0.3,192.168.0.200,4h
dhcp-authoritative
# Set default gateway and DNS server for DHCP clients
dhcp-option=option:router,192.168.0.1
dhcp-option=option:dns-server,192.168.0.2
# Logging
log-facility=/var/log/dnsmasq.log
log-queries
# Reserved IPs
dhcp-host=c8:7f:5f:df:0f:08,router,192.168.0.1
dhcp-host=dc:ab:3f:bf:bb:ab,dnsserver,192.168.0.2
dhcp-host=dc:cd:2f:bf:44:12,printer,192.168.0.3
根据评论中的要求,如果我尝试这样做:
dig printer @192.168.0.2
我得到:
; <<>> DiG 9.18.28-1~deb12u2-Debian <<>> printer @192.168.0.2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 18880
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;printer. IN A
;; Query time: 0 msec
;; SERVER: 192.168.0.2#53(192.168.0.2) (UDP)
;; WHEN: Tue Aug 20 13:25:32 BST 2024
;; MSG SIZE rcvd: 36
在日志中/var/log/dnsmasq.log
,我看到:
query [A] printer from 192.168.0.2
config printer is NXDOMAIN
注意我的路由器是192.168.0.1,运行的机器dnsmasq
是192.168.0.2
我想我已经解决了这个问题——这可能是由于没有设置“搜索域”造成的。
我在配置文件中添加了以下两行
dnsmasq
,效果明显好多了: