我正在为我和我的室友建立家庭内部网。我的想法是,我们将能够将过去的水电费之类的东西存储在一个比厨房的抽屉更方便的地方。无论如何,我在Raspberry Pi,LAN上运行Apache 2,并且如果我使用它的IP地址,我可以访问Pi上提供的页面。由于我正在做这个项目,目的是更多地了解网络,以便为我的公寓提供服务,所以我认为如果我的网络可以为我的LAN提供主机名解析,那将是很酷的。因此,与其将浏览器指向192.168.1.151
Pi的IP地址,不如将其指向oberon
(其主机名)并查看Pi所服务的网页。
现在我知道我不是第一个想要这样做的人,所以我从谷歌搜索开始。这个问题(在Unix和Linux上也是如此)极大地帮助了我:如何使用主机名从LAN访问计算机。至此,我已经尝试了经过验证的答案中的所有内容。我考虑过要使用该hosts
文件,但这意味着我必须告诉我的室友来配置他们的机器,而我不想让他们这样做。我试图在我的路由器(NETGEAR WNR1000v2(又名N150))上为Pi保留DHCP租约,并且在保留有效的同时,主机名解析无效。这种挫败的我,因为我告诉我的路由器Pi的IP 和主机名,但它仍然不提供此信息到我的LAN上的客户端。
由于这两种方法不起作用,我决定dnsmasq
在Pi 上安装。配置似乎很简单,我很乐于学习新工具。我安装并使其运行正常(似乎)。我可以dig
和nslookup
郫县的昵称(这是我在设置/etc/hosts
于oberon
和homenet
),并得到正确的结果。我可以对Internet之类的名称执行相同的操作,yahoo.com
并获得正确的答案,因为我在中设置了Google的8.8.8.8
和8.8.4.4
作为备份服务器/etc/dnsmasq.conf
。看到这个:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
请注意,SERVER
is 127.0.0.1
:oberon
正在查找自己的IP地址。这是我期望看到的。如果我这样做,输出是相同的dig oberon @localhost
。由于此输出,我认为这dnsmasq
很好。因此,将其提升到一个新的水平,我希望LAN上的所有客户端都能够输入oberon
他们的浏览器并进入oberon
的索引页面。为此,我知道我需要配置我的路由器(如果严格偏离Unix和Linux领域,我深表歉意)。
我有一个相当熟悉的Netgear WNR1000v2。我已经配置了端口转发,以便可以通过SSH进入Pi,并且在其他设置中也有介绍。我知道在开始这个项目之前,我是从ISP获取DNS服务器的,但是现在我想主要使用这些DNS服务器,但也要192.168.1.151
用作最后检查。因此,我将路由器的DNS配置更改为以下内容:
因此,使用此配置,我希望能够nslookup oberon
在(Windows)桌面上进行操作并得到的结果192.168.1.151
。但这不会发生。这是发生了什么:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
重置或dnsflushing
Windows计算机上的网络适配器均未更改。
现在,这就是为什么我有点在这里扯头发:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
显然,dnsmasq
工作正常。如果我告诉Windows框用来192.168.1.151
解析名称oberon
,那么一切都很好(该.lan
域是的配置的一部分dnsmasq
,因此我希望在那里可以看到它)。如果我可以让路由器告诉我的Windows计算机192.168.1.151
在进行DNS查询时要使用它,那应该很好!
因此,在我看来,问题出在我的路由器上,但是我只是想出了解决办法,除了将DNS服务器更改为192.168.1.151
像我已经拥有的那样。有人能帮我一下吗?我将尝试提供所需的更多信息。