นอกเหนือจากคำตอบของ Yamakajaนี่คือวิธีที่คุณตั้งค่าเซิร์ฟเวอร์ DNS ในเครื่อง
ก่อนอื่นคุณต้องมีคอมพิวเตอร์ที่คุณต้องการเปิดใช้งานเซิร์ฟเวอร์ DNS นี้สามารถเป็นหนึ่งของเครื่องคอมพิวเตอร์ปกติของคุณ (ถ้าพวกเขาใช้ Linux และในส่วนของเวลา) หรือตัวอย่างเช่นราสเบอร์รี่ Pi ข้อดีของอุปกรณ์ดังกล่าวคือมีราคาถูกไม่ต้องใช้พลังงานมากและมีขนาดเล็ก
การตั้งค่าเซิร์ฟเวอร์ DNS
ฉันตัดสินใจตั้งค่าเซิร์ฟเวอร์ DNS บน Raspberry Pi โดยใช้dnsmasq
ซึ่งเป็นเครื่องมือเซิร์ฟเวอร์ DNS ขนาดเล็กเหมาะสำหรับใช้ในเครือข่ายขนาดเล็ก นอกจากนี้คุณยังสามารถใช้bind
เครื่องมือ DNS มาตรฐานโดยพฤตินัย แต่นี่อาจเป็นสิ่งที่มีพลังมากสำหรับเครือข่ายในบ้านขนาดเล็ก
ติดตั้งdnsmasq
โดยใช้ตัวจัดการแพ็คเกจบนระบบที่ใช้เดเบียน (เช่น Raspbian) คำสั่งจะเป็น
sudo apt-get install dnsmasq
ตอนนี้ฉันคิดว่าคุณได้ตั้งค่าการจัดสรรที่อยู่ IP แบบคงที่ (เช่นที่อยู่ IP ที่คุณพูดถึงในคำถามของคุณจะไม่เปลี่ยนแปลง) หากคุณยังไม่dnsmasq
สามารถใช้เป็นเซิร์ฟเวอร์ DHCP ได้ แต่ฉันยังไม่ได้ทำ
dnsmasq
/etc/hosts
เรียกชื่อโฮสต์จาก แก้ไขไฟล์นี้ดังนี้:
# IP address Host name
192.168.1.1 router
192.168.1.22 printer
ชื่อโฮสต์router
ที่ได้รับมอบหมายในขณะนี้เพื่อ192.168.1.1
, เพื่อprinter
192.168.1.22
ตอนนี้คุณได้ตั้งค่าเซิร์ฟเวอร์ DNS ของคุณเอง แต่คอมพิวเตอร์ในเครือข่ายของคุณยังไม่ได้ใช้ ในการทำให้พวกเขาใช้เซิร์ฟเวอร์นี้คุณต้องทำการเตรียมหนึ่งขั้นตอน:
ค้นหาที่อยู่ IP ของอุปกรณ์ dnsmasq ของคุณโดยใช้ip address
(ลองสมมติว่าเป็น192.168.1.42
) เปิด/etc/dnsmasq.conf
และผนวกบรรทัดต่อไปนี้:
listen-address=127.0.0.1
listen-address=192.168.1.42
สิ่งนี้บอกdnsmasq
ว่าควรรับฟังคำขอเมื่อมีการส่งถึง127.0.0.1
(เช่นเมื่อตัวเองต้องการใช้เซิร์ฟเวอร์ DNS) หรือ192.168.1.42
(เช่นเมื่อคอมพิวเตอร์เครื่องอื่นต้องการใช้เซิร์ฟเวอร์ DNS)
การใช้เซิร์ฟเวอร์ DNS
คุณต้องบอกคอมพิวเตอร์แต่ละเครื่องในเครือข่ายของคุณว่าควรใช้ (เช่น) 192.168.1.42
เป็นเซิร์ฟเวอร์ DNS วิธีที่คุณทำขึ้นอยู่กับระบบปฏิบัติการของคุณ คุณสามารถค้นหาระบบปฏิบัติการที่คุณระบุบนอินเทอร์เน็ตได้อย่างง่ายดาย (เพียงค้นหา "เปลี่ยนเซิร์ฟเวอร์ DNS บน <OS>" หรืออะไรทำนองนั้น)
สำหรับ Windows 7 คุณสามารถปฏิบัติตามการกวดวิชานี้: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/
ในระบบของฉัน (Arch Linux) ฉันต้องผนวกบรรทัดต่อไปนี้ /etc/resolvconf.conf
name_servers=192.168.1.42
หมายเหตุไฟล์ที่คุณต้องใช้ขึ้นอยู่กับการกำหนดค่าตัวจัดการเครือข่ายของคุณ เพิ่ม IP เซิร์ฟเวอร์ DNS ในคอมพิวเตอร์แต่ละเครื่องที่คุณต้องการใช้ DNS ของคุณ
คุณอาจต้องรีสตาร์ทอุปกรณ์หากไม่สามารถใช้งานได้ทันที
เสร็จแล้ว ตอนนี้คุณสามารถเข้าถึงอุปกรณ์ทั้งหมดที่คุณป้อนใน/etc/hosts
เซิร์ฟเวอร์ dnsmasq เพียงแค่ใช้ชื่อโฮสต์ที่คุณให้ไว้
(ไม่บังคับ) การตรวจสอบฟังก์ชันการทำงาน
หากคุณต้องการตรวจสอบว่าการแก้ไข DNS ทำงานอย่างถูกต้องหรือไม่ให้ติดตั้งdnsutils
(Linux) บนระบบที่ควรใช้เซิร์ฟเวอร์ของคุณ จากนั้นดำเนินการ
$ dig router
สิ่งนี้ควรส่งคืนแบบนี้
; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router. IN A
;; ANSWER SECTION:
router. 0 IN A 192.168.1.1
;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE rcvd: 50
มันแสดงชื่อโฮสต์ที่คุณต้องการแก้ไขที่อยู่ IP ที่ได้รับการแก้ไขและเซิร์ฟเวอร์ DNS ที่ใช้ อย่างที่คุณเห็นทุกอย่างดี
(ไม่บังคับ) ระบุ TLD
หากคุณต้องการเข้าถึงอุปกรณ์ที่ไม่เพียง แต่มีrouter
หรือprinter
มีrouter.home
และprinter.home
ให้เพิ่มบรรทัดต่อไปนี้ใน/etc/dnsmasq.conf
:
expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD
คุณอาจต้องรีสตาร์ทอีกครั้ง
แหล่งที่มา / อ่านเพิ่มเติม
เกี่ยวกับdnsmasq
:
เกี่ยวกับbind
(หากคุณสนใจ):