ทำไมเครื่อง Windows สามารถแก้ไขชื่อท้องถิ่นเมื่อ Linux ไม่สามารถทำได้?


18

ฉันมีเครือข่ายขนาดเล็กที่มีเครื่อง Windows และ Linux เชื่อมต่อกับเราเตอร์ D-Link DIR-825

เครื่อง Windows บนเครือข่ายสามารถเข้าถึงเครื่องอื่น ๆ ทั้งหมดตามชื่อในขณะที่เครื่อง Linux สามารถเข้าถึงเครื่องอื่น ๆ ได้โดยใช้ที่อยู่ IP

ฉันสามารถดูเครื่องทั้งหมดที่มีชื่อและ DHCP ที่อยู่ที่กำหนดในรายการสถานะไคลเอนต์ DHCP ในส่วนติดต่อผู้ดูแลระบบเว็บเราเตอร์

เหตุใดเครื่อง Linux จึงไม่สามารถค้นหาเครื่องอื่นตามชื่อในขณะที่ Windows ไม่มีปัญหาในการค้นหาเครื่อง Linux


2
การแก้ไขชื่อของคุณเป็นอย่างไร DNS? คุณมีส่วนต่อท้ายการค้นหาที่กำหนดค่าหรือไม่
Shane Madden

เครื่องทั้งหมดใช้ DHCP เชื่อมต่อกับเราเตอร์ D-Link ซึ่งดูเหมือนว่าพวกเขาจะลงทะเบียนตัวเองและนั่นอาจจะเพียงพอสำหรับ Windows ในการค้นหาเครื่องทั้งหมด แต่เครื่องลีนุกซ์นั้นพวกเขาต้องการเซิร์ฟเวอร์ DNS ในตัวเครื่องนอกเหนือจากเราเตอร์หรือไม่?
ต่อ Salmi

ไม่แน่ใจเกี่ยวกับเราเตอร์นั้น แต่เราเตอร์สำหรับผู้บริโภคส่วนใหญ่ไม่รวมไคลเอ็นต์ DHCP เข้ากับบริการ DNS ภายใน คำตอบของโจน่าจะเป็นผู้กระทำผิดของคุณ
เชนแมดเดน

จากนั้นเครื่องลีนุกซ์จะตอบกลับข้อความ LLMNR แต่ไม่ได้ใช้มันเพื่อค้นหาเครื่องอื่น ๆ ?
ต่อ Salmi

คำตอบ:


32

ฉันไม่ใช่ผู้เชี่ยวชาญด้านเครือข่ายและฉันก็ค้นคว้าหาคำตอบมากมายในหัวข้อนี้ สิ่งที่ค้นพบในปัจจุบันของฉันคือ:

  • Windows ใช้ชื่อ NetBIOS และโพรโทคอลดังกล่าวเป็นชื่อที่ออกอากาศช่วยให้พวกเขาพบกันโดยไม่ต้องใช้เซิร์ฟเวอร์กลาง

  • เครื่อง Linux ใน distros ที่ทันสมัยใช้โปรโตคอลที่เรียกว่า Avahiซึ่งเป็นโปรโตคอลออกอากาศแบบไม่ขึ้นกับเซิร์ฟเวอร์ เครื่องเครือข่ายท้องถิ่นมีคำต่อท้าย.local, เพื่อให้คุณสามารถ ping จาก Linux เพื่อใช้ลินุกซ์ping hostname.localหรือดูพวกเขาด้วยavahi-discoverแพคเกจ แอพบางตัวใน Gnome ใช้ avahi เพื่อแสดงรายการเครื่องในเครือข่าย (เช่น Remote Desktop Viewer)

  • การติดตั้ง SAMBA บนเครื่อง Linux จะกำหนดชื่อ NetBIOS (หรือในทางเทคนิคมากขึ้นจะทำให้เครื่อง Linux โฆษณาตัวเองในคำขอออกอากาศด้วยชื่อ NetBIOS ของพวกเขาซึ่งโดยค่าเริ่มต้นเป็นชื่อโฮสต์ของพวกเขา) และที่ช่วยให้เครื่อง Windows ค้นหา Linux คน

  • Gotcha: แม้ว่าเครื่อง Linux ที่มี Samba จะตอบกลับคำขอโปรโตคอล NetBIOS ด้วยการตั้งค่าเริ่มต้นใน distros เช่น Ubuntu แต่จะไม่ใช้ NetBIOS เป็นวิธีการแก้ปัญหาชื่อและนั่นเป็นสาเหตุที่เครื่อง Linux ไม่สามารถ "เห็น" กันและกัน เครื่อง เพื่อที่คุณจะต้องแก้ไข/etc/nsswitch.confไฟล์และเพิ่มลงwinsในรายการในบรรทัดนี้:

    hosts: files mdns4_minimal [NOTFOUND=return] dns wins mdns4

  • คุณ อาจต้องติดตั้งwinbind(และหากไม่ได้ติดตั้งโดยอัตโนมัติlibnss-winbind) แพ็คเกจเพื่อให้ทำงานได้

  • ดังนั้นสำหรับปัญหาด้านการมองเห็นคุณอาจติดตั้ง Samba บนเครื่อง Linux ทุกเครื่อง (และแก้ไข /etc/nsswitch.conf เพื่อเปิดใช้การจำแนกชื่อ NetBIOS) หรือคุณติดตั้งการสนับสนุน Avahi ในเครื่อง Windows

  • สำหรับการแบ่งปันไฟล์ Samba ให้ความสามารถในการแชร์ไฟล์กับเครื่อง Linux กับ Windows Theres ไม่จำเป็นต้องแก้ไข /etc/nsswitch.conf สำหรับเครื่อง Linux เพื่อดูโฟลเดอร์ที่แชร์ของกันและกันและ Windows (และในทางกลับกัน) ในส่วน "เครือข่าย" ของ Nautilus

ฉันหวังว่านี่จะช่วยได้! : D


2
สำหรับnsswitch.congสิ่งที่: หากping HOSTNAMEให้ข้อผิดพลาดของระบบนั่นเป็นสัญญาณว่าจำเป็นต้องใช้แพ็คเกจ libnss-winbind
Michael Stum

18

ตามค่าเริ่มต้นโดยไม่มีเซิร์ฟเวอร์ DNS windows สามารถใช้ NetBIOS (โพรโทคอลการแก้ปัญหาชื่อ Microsoft) เพื่อค้นหาชื่อของระบบ windows อื่น ๆ ภายในเครือข่ายของพวกเขา ตามที่กล่าวไว้ในคำตอบนี้ดูเหมือนว่าคุณจำเป็นต้องติดตั้ง SAMBA (หรืออย่างน้อย winbind) บนฝั่ง Linux นี่คือชุดคำสั่งพื้นฐาน :

หากต้องการเปิดใช้งานการจำแนกชื่อ Windows netbios จากคอมพิวเตอร์ Linux ตรวจสอบให้แน่ใจว่าติดตั้ง Samba แล้ว (แม้ว่าจะไม่จำเป็นต้องเรียกใช้บริการ smb) ชุด Samba รวมถึง winbind ซึ่งทำให้สามารถแก้ไขชื่อโฮสต์ Windows ได้ จากนั้นแก้ไข /etc/nsswitch.conf และเปลี่ยนบรรทัดนี้:

hosts: files dns

สำหรับสิ่งนี้:

hosts: files dns wins

จากนั้นทดสอบโดยส่งชื่อคอมพิวเตอร์ของเครื่อง Windows บน LAN:

$ ping windowsbox

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

ทางเลือกอื่นของ SAMBA คือการตั้งค่าเซิร์ฟเวอร์ DNS และตรวจสอบให้แน่ใจว่ามีการกำหนดค่าการอัปเดต DNS แบบไดนามิกหรือ DHCP สามารถลงทะเบียนระเบียน DNS ได้


3

ส่วนใหญ่อาจLLMNR


1
ดังนั้นจะทำให้เครื่อง Windows ค้นหากล่อง Linux โดยใช้ข้อมูลที่ลงทะเบียน DHCP เราเตอร์หรือไม่ แต่ลีนุกซ์ไม่รองรับการใช้ชื่อที่ลงทะเบียนเราเตอร์เพื่อค้นหาอะไร?
ต่อ Salmi

3
ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Mark Henderson

ไม่รู้สึกว่า LLMNR อธิบายว่าทำไม Windows สามารถค้นหากล่อง Linux ได้ แต่ไม่ใช่วิธีอื่น ๆ หาก Linux ไม่ได้ใช้ LLMNR มันจะส่งผลให้ Windows ค้นหา Windows แต่ไม่ใช่ Linux?
ต่อ Salmi

2

คุณอาจต้องตั้งค่าความละเอียด Avahi / mDNS มันเหมือนกับ LLMNR บน Windows


0

Linux สามารถแก้ไขชื่อโลคัลได้แม้ว่าจะไม่ได้ติดตั้งซอฟต์แวร์ที่จำเป็นโดยค่าเริ่มต้น ...

Linux distros ส่วนใหญ่มีข้อสันนิษฐานเกี่ยวกับข้อกำหนดซอฟต์แวร์ของคุณที่นอกเหนือจากเคอร์เนล ... Debian Reference DNSMasq

ค้นหา apt-cache dnsmasq ...

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