我有一个 OpenWRT 路由器,用作本地网络的 Wifi 接入点。目前不涉及实际路由。
wlan0
路由器上接口的 IP 地址静态设置为192.168.120.1
。Dnsmasq 作为服务在那里运行,提供 DHCP 和 DNS。
我的目标是让路由器的 Web 界面可供网络中的所有计算机访问,而http://router.net
不必键入192.168.120.1
。
LuCI
,openWRT 的 Web 界面似乎允许多种选项来实现这一点。
1 网络 -> DHCP 和 DNS -> 静态租约
我最初的想法是,这是用于 DHCP 的静态租约,但描述表明它也可能允许设置主机名。
静态租约用于为 DHCP 客户端分配固定 IP 地址和符号主机名。
我已经输入了路由器的 MAC 地址和 IP 地址wlan0
以及所需的主机名,但这并不能从ping router_static_lease
子网中的笔记本电脑进行访问。
2 网络 -> DHCP 和 DNS -> Resolv 和 Hosts 文件 -> 附加 Hosts 文件
/etc/hosts
第二个假设是在路由器上添加一条线路,并且由于 dnsmasq,它会将此映射分发到子网中的所有计算机。
这也没有给出预期的结果。
2 网络 -> 主机名
第三种方法是向上面的表单添加一个条目。同样,没有成功
设置完所有这些后,我重新启动了路由器并尝试从子网中的计算机对它们进行 ping 操作。
~$ ping router_static_lease
ping: router_static_lease: Name or service not known
~$ ping router_hostnames
ping: router_hostnames: Name or service not known
~$ ping router_etc_hosts
ping: router_etc_hosts: Name or service not known
运行dig
这些命令几乎没有帮助,因为它指向 systemd 解析器。
~$ dig router_etc_hosts
; <<>> DiG 9.10.3-P4-Ubuntu <<>> router_etc_hosts
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 22668
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;router_etc_hosts. IN A
;; Query time: 841 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue Jun 20 15:27:14 CEST 2017
;; MSG SIZE rcvd: 45
但是运行~$ systemd-resolve --status
表明它正在尝试使用正确的服务器进行解析192.168.120.1
。
~$ systemd-resolve --status
Link 3 (wlp4s0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.120.1
DNS Domain: lan
我的问题是我做错了什么以及实现这一目标的正确方法是什么?
如果您知道如何在命令行中执行此操作,而忽略 Web 界面,这也会很有帮助。
答案1
我的实验室有完全相同的配置,并且运行良好。在这种情况下,您使用的是 DNS 掩码而不是绑定服务器,因此您只有别名而没有记录。为了挖掘主机名,您的路由器必须位于您的客户 DNS 解析上作为 DNS 服务器。