ฉันจะตั้งค่าโดเมน 'ท้องถิ่น' เพื่อให้ทุกคนในเครือข่ายท้องถิ่นของฉันสามารถดูเว็บไซต์ที่โฮสต์ในพื้นที่ได้อย่างไร


16

ฉันต้องการตั้งค่า MediaWiki บนหนึ่งในเครื่องที่บ้านของฉันจากนั้นให้ทำการร้องขอทั้งหมดในเครือข่ายท้องถิ่นสำหรับ 'wiki.home' หรือ 'wiki.local' ชี้ไปที่กล่องนั้น ฉันรู้ว่าสิ่งนี้สามารถทำได้โดยการแก้ไขไฟล์ / etc / hosts แต่ละไฟล์ แต่ฉันต้องการบางสิ่งที่เป็นอัตโนมัติมากขึ้นตัวอย่างเช่นถ้าเพื่อนหรือสมาชิกในครอบครัวมาที่บ้านของฉันพวกเขาไม่จำเป็นต้องยุ่งกับ ไฟล์โฮสต์เพื่อดูเว็บไซต์

มีวิธีง่าย ๆ ในการทำเช่นนี้? ฉันมีวิกิและทำงานแล้วและฉันค้นหา dnsmasq แต่ฉันไม่สามารถหาวิธีตั้งค่า DNS ได้อย่างถูกต้อง เนื่องจากฉันต้องการโซลูชันอัตโนมัติฉันรู้สึกว่าฉันต้องเปลี่ยนการตั้งค่า DNS ในเราเตอร์ของฉัน แต่ถ้าฉันเปลี่ยนการตั้งค่า DNS ที่นั่นฉันจะยังสามารถแก้ไขโฮสต์ภายนอกได้อย่างไร

รายละเอียดการกำหนดค่า

  • เราเตอร์: Netgear WNR2000v2 เราเตอร์มีตัวเลือกให้ฉันระบุเซิร์ฟเวอร์ DNS ด้วยตนเองซึ่งฉันคิดว่าฉันจะต้องชี้ไปที่กล่อง Ubuntu ของฉันหากฉันต้องการเริ่มต้นใช้งาน

  • MediaWiki และโฮสต์ dnsmasq: รัน Ubuntu 12.04 ฉันมีปัญหากับการกำหนดค่า dnsmasq (ส่วนใหญ่เกิดจากความไม่มีประสบการณ์ของฉัน) ตัวอย่างเช่นฉันไม่แน่ใจ แต่ฉันคิดว่าระหว่างการติดตั้ง Ubuntu ได้แก้ไขการตั้งค่า DNS ของฉันดังนั้น/etc/resolv.confตอนนี้จึง127.0.0.1เป็นเซิร์ฟเวอร์ DNS เดียว ณ จุดนี้ฉันสามารถแก้ไขโฮสต์ท้องถิ่น แต่ไม่มีอะไรอื่น ฉันได้แก้ไขสิ่งนี้ชั่วคราวด้วยการแก้ไข/etc/resolv.confและเพิ่ม192.168.1.1เป็นเนมเซิร์ฟเวอร์รอง แต่ข้อกังวลที่นี่คือการ192.168.1.1ใช้กล่อง Ubuntu สำหรับ DNS ฉันขาดอะไรบางอย่างชัดเจนที่นี่?

  • การตั้งค่า dnsmasq: ยกเลิกหมายเหตุบรรทัดต่อไปนี้:

    domain-needed
    bogus-priv
    local=/local/
    domain=local
    

พิจารณาโพสต์รายละเอียดการกำหนดค่าของคุณ นอกจากนี้คุณลองทำอะไรบ้าง คุณเปลี่ยนการตั้งค่าใดในเราเตอร์ของคุณ คุณมีเราเตอร์แบบใด ฉันถือว่าคุณใช้ linux แต่ distro อะไร มีหลายสิ่งหลายอย่างที่อาจผิดพลาดได้ซึ่งเราสามารถเขียนหนังสือเกี่ยวกับเรื่องนี้ได้)
jmort253

dnsmasq จะทำงาน แต่ทางเลือกอื่น ๆ ได้แก่mDNSและNIS
Lèsemajesté

คุณสามารถเปลี่ยนชื่อเครื่องของคุณบน wifi ได้หรือไม่?
ytpillai

คำตอบ:


8

ด้วย DNS มาตรฐานคุณจะเรียกใช้เซิร์ฟเวอร์ DNS ที่มีสิทธิ์สำหรับโดเมนท้องถิ่น ( home.หรือlocal.แม้ว่าจะเป็นการดีกว่าที่จะหลีกเลี่ยงสิ่งหลัง - ดูหมายเหตุด้านล่าง) แต่ยังทำหน้าที่เป็นเครื่องมือแก้ปัญหาสำหรับโดเมนอื่นทั้งหมด

สามารถใช้dnsmasqเพื่อจุดประสงค์นี้ - มีโหมดเรียกใช้ซ้ำโดยค่าเริ่มต้นและการกำหนดค่าของคุณดูดี สิ่งที่จำเป็นต้องมีก็คือการบอกว่าเนมเซิร์ฟเวอร์ใดที่จะใช้สำหรับโดเมนที่ไม่ใช่ในท้องถิ่น โดยปกติจะอ่านจาก/etc/resolv.confไฟล์ของระบบ แต่เนื่องจากคุณต้องการโดเมนท้องถิ่นเพื่อการทำงานบนเครื่องคอมพิวเตอร์เซิร์ฟเวอร์ DNS เกินไปคุณจะต้องสร้างสำเนาที่ทุ่มเทของresolv.confซึ่งจะถูกนำมาใช้โดยเฉพาะdnsmasqขณะที่เดิมresolv.confnameserver 127.0.0.1จะชี้ไป

# cp /etc/resolv.conf /etc/dnsmasq-resolv.conf
# echo "nameserver 127.0.0.1" > /etc/resolv.conf
# dnsmasq -r /etc/dnsmasq-resolv.conf

หมายเหตุ: คำแนะนำเหล่านี้เป็นพื้นฐานมากและควรปรับให้เข้ากับการใช้งาน Linux distro โดยเฉพาะให้ตรวจสอบคำแนะนำDebianและUbuntuบน dnsmasq

หลังจากนี้เราเตอร์ต้องได้รับการกำหนดค่าให้ใช้คอมพิวเตอร์เครื่องนี้เป็นเซิร์ฟเวอร์ DNS ทั้งหมดสอบถาม DNS โดยคอมพิวเตอร์ในเครือข่ายของคุณก็จะถูกจัดการโดยdnsmasq

(เซิร์ฟเวอร์ DNS ที่มีคุณสมบัติครบถ้วนเช่นbind9สามารถทำการสอบถามซ้ำได้ด้วยตนเอง - การกำหนดค่าเซิร์ฟเวอร์ต้นน้ำจะกลายเป็นทางเลือกทั้งหมดนี่คือการทำงานของเซิร์ฟเวอร์ชื่อ ISP ของคุณอย่างไรก็ตามการโฮสต์โดเมนของคุณเองด้วยbind9นั้นค่อนข้างซับซ้อนในตอนแรก เปรียบเทียบกับdnsmasqง่าย ๆ)


หมายเหตุ: หากคุณมีการกำหนดค่า Avahi (aka Bonjour) บนคอมพิวเตอร์ทุกเครื่องในเครือข่าย (ซึ่ง Ubuntu มีตามค่าเริ่มต้น) จะเป็นการดีที่สุดถ้าคุณหลีกเลี่ยงlocal.ใน DNSและเลือกสิ่งที่ต้องการhome.แทนเนื่องจากชื่อในรูปแบบname.localจะจัดการโดย Avahi แล้ว .

(แม้ว่าโดยปกติแล้ว Avahi จะตอบกลับเท่านั้น แต่current-hostname.localเป็นไปได้จริง ๆ ที่จะเผยแพร่รายการเพิ่มเติมเช่นwiki.localอย่างไรก็ตามพวกเขาจะต้องเพิ่มที่อยู่ IP เพิ่มเติมเนื่องจากวิธีการทำงานของ mDNS ด้วยเหตุนี้การใช้ Avahi แทนที่จะใช้ DNS ส่วนกลางไม่ นำเสนอข้อได้เปรียบเพิ่มเติมอีกดังนั้นฉันจึงไม่แนะนำเลย)


2

ฉันพบ Avahi daemon เป็นวิธีที่ง่ายที่สุดในการทำเช่นนี้ หมายเหตุ: หากคุณใช้เครื่อง Windows เพื่อเชื่อมต่อกับโดเมน. local คุณต้องตรวจสอบให้แน่ใจว่าเครื่องเหล่านั้นมี iTunes หรือไคลเอ็นต์ Bonjour อื่นติดตั้งอยู่

ลองดูลิงค์นี้สำหรับข้อมูลเพิ่มเติม: http://www.howtogeek.com/167190/how-and-why-to-assign-the-.local-domain-to-your-raspberry-pi/

แม้ว่าลิงก์นั้นจะเฉพาะกับ Raspberry Pi แต่ก็ควรทำงานบนเครื่อง Ubuntu ได้ในลักษณะเดียวกัน สำหรับ Linux distros อื่น ๆ ที่ไม่ได้ใช้งานapt-getให้ปรับเป็นตัวapt-getจัดการแพ็คเกจที่เหมาะสมเช่นyumFedora และ CentOS

นี่คือคำสั่งที่แน่นอนที่ฉันใช้เพื่อให้เกิดสิ่งนี้เกิดขึ้นบนเซิร์ฟเวอร์สื่อ Raspberry Pi ของฉัน:

sudo apt-get update && sudo apt-get upgrade sudo apt-get install avahi-daemon

จากตรงนั้นมันจะเริ่มต้นโดยอัตโนมัติโดยใช้ชื่อโฮสต์ของคอมพิวเตอร์ของคุณพร้อมกับ.localส่วนขยายตามชื่อโดเมน ดังนั้นหากชื่อโฮสต์ของเครื่องของคุณคือmediaserverคุณสามารถเข้าถึงได้บนเครือข่ายโดยพิมพ์mediaserver.localลงในแถบ URL ของเครื่องที่มี Bonjour / Avahi อยู่ (เช่น Macs ทั้งหมดรวมถึงเครื่อง Windows ที่ติดตั้ง iTunes)


0

การจำแนกชื่อท้องถิ่นเป็นคุณสมบัติที่ง่ายและเป็นส่วนหนึ่งของเราเตอร์ส่วนใหญ่ที่ฉันใช้ มันยังนำมาใช้ในเฟิร์มแวร์ DD-WRT Netgear ไม่สนใจสำหรับคุณลักษณะนี้ที่มีการร้องขออย่างต่อเนื่อง

ดังนั้นคำตอบที่ง่ายกว่าที่อื่น ๆ โพสต์ที่นี่ - หลีกเลี่ยงปัญหาและเปลี่ยน Netgerat เราเตอร์ของคุณเป็นสิ่งที่สนับสนุนการแก้ไขชื่อท้องถิ่น หรือถ้านั่นไม่ใช่ตัวเลือกและคุณรู้สึกถึงความแข็งแกร่งและมีเวลาจงใช้แฟลช DD-WRT

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.