ฉันกำลังทำงานเพื่อตั้งค่าอินทราเน็ตที่บ้านสำหรับฉันและเพื่อนร่วมห้องของฉัน ความคิดของฉันคือเราจะสามารถจัดเก็บสิ่งต่าง ๆ เช่นค่าสาธารณูปโภคที่ผ่านมาในสถานที่ที่สามารถเข้าถึงได้มากกว่าลิ้นชักในครัว ฯลฯ อย่างไรก็ตามฉันมี Apache 2 ทำงานบน Raspberry Pi บน LAN ของฉันและถ้าฉันใช้ ที่อยู่ IP ของมันฉันสามารถเข้าถึงหน้าที่กำลังแสดงบน Pi เนื่องจากฉันทำโครงการนี้มากขึ้นเพื่อเรียนรู้เกี่ยวกับระบบเครือข่ายเพื่อให้บริการกับอพาร์ตเมนต์ของฉันฉันคิดว่ามันจะเจ๋งถ้าเครือข่ายของฉันสามารถให้การแก้ปัญหาชื่อโฮสต์สำหรับ LAN ของฉัน ดังนั้นแทนที่จะชี้เบราว์เซอร์ของฉันไปยัง192.168.1.151ที่อยู่ IP ของ Pi ฉันสามารถชี้ไปที่oberon(ชื่อโฮสต์) และดูหน้าเว็บที่ให้บริการโดย Pi
ตอนนี้ฉันรู้ว่าฉันไม่ใช่คนแรกที่ต้องการทำสิ่งนี้ดังนั้นฉันจึงเริ่มโดย Googling คำถามนี้ยังบน Unix และ Linux, ได้ช่วยให้ฉันอย่างมาก: วิธีที่จะทำให้เครื่องสามารถเข้าถึงได้จาก LAN โดยใช้ชื่อโฮสต์ ณ จุดนี้ฉันได้ลองทุกอย่างในคำตอบที่ยืนยันแล้ว ฉันคิดถึงการใช้hostsไฟล์นี้ แต่นั่นหมายความว่าฉันต้องบอกเพื่อนร่วมห้องเพื่อกำหนดค่าเครื่องของพวกเขาซึ่งฉันไม่ต้องการให้พวกเขาทำ ฉันพยายามจอง DHCP เช่าสำหรับ Pi บนเราเตอร์ของฉัน (NETGEAR WNR1000v2 (aka N150)) และในขณะที่การจองทำงานได้การแก้ปัญหาชื่อโฮสต์ไม่ได้ ประเภทนี้ทำให้ฉันหงุดหงิดเพราะฉันบอกเราเตอร์ถึง IP ของ Pi และชื่อโฮสต์ แต่ก็ยังไม่ได้ให้ข้อมูลนี้แก่ลูกค้าใน LAN ของฉัน
ด้วยวิธีการทั้งสองไม่ทำงานฉันจึงตัดสินใจติดตั้งdnsmasqบน Pi ดูเหมือนง่ายต่อการกำหนดค่าและฉันยินดีที่จะเรียนรู้เครื่องมือใหม่ ฉันติดตั้งและให้มันทำงานได้ดี (ดูเหมือน) ที่ฉันสามารถทำได้digหรือnslookupชื่อเล่น Pi (ซึ่งผมตั้งใน/etc/hostsการoberonและhomenet) และได้รับผลลัพธ์ที่ถูกต้อง ผมสามารถทำเช่นเดียวกันสำหรับชื่ออินเทอร์เน็ตเช่น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คือ127.0.0.1: oberonกำลังค้นหาที่อยู่ IP ของตัวเอง นี่คือสิ่งที่ฉันคาดว่าจะเห็น dig oberon @localhostเอาท์พุทเป็นเหมือนกันถ้าผมทำ เนื่องจากผลลัพธ์นี้ฉันจึงคิดว่าdnsmasqทำงานได้ดี ดังนั้นเพื่อนำไปสู่ระดับถัดไปฉันต้องการให้ไคลเอนต์ทั้งหมดใน LAN ของฉันสามารถพิมพ์oberonเบราว์เซอร์และนำไปoberonที่หน้าดัชนีของ สำหรับเรื่องนี้ฉันรู้ว่าฉันต้องกำหนดค่าเราเตอร์ของฉัน (ขอโทษถ้า veers นี้ออกไปจากดินแดน Unix & Linux อย่างเคร่งครัด)
ฉันมี Netgear WNR1000v2 ที่ฉันค่อนข้างคุ้นเคย ฉันได้กำหนดค่าการส่งต่อพอร์ตเพื่อให้ฉันสามารถ SSH เป็น Pi และฉันแหย่ไปรอบ ๆ ในการตั้งค่าอื่น ๆ เช่นกัน ฉันรู้ว่าก่อนที่ฉันจะเริ่มโครงการนี้ฉันได้รับเซิร์ฟเวอร์ DNS ของฉันจาก ISP ของฉัน แต่ตอนนี้ฉันต้องการใช้เซิร์ฟเวอร์ 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เหมือนที่ฉันมีอยู่แล้ว มีใครช่วยฉันที่นี่บ้าง ฉันจะพยายามให้ข้อมูลเพิ่มเติมที่ต้องการ