ฉันกำลังทำงานเพื่อตั้งค่าอินทราเน็ตที่บ้านสำหรับฉันและเพื่อนร่วมห้องของฉัน ความคิดของฉันคือเราจะสามารถจัดเก็บสิ่งต่าง ๆ เช่นค่าสาธารณูปโภคที่ผ่านมาในสถานที่ที่สามารถเข้าถึงได้มากกว่าลิ้นชักในครัว ฯลฯ อย่างไรก็ตามฉันมี 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
เหมือนที่ฉันมีอยู่แล้ว มีใครช่วยฉันที่นี่บ้าง ฉันจะพยายามให้ข้อมูลเพิ่มเติมที่ต้องการ