Mounten von cifs-Freigaben in Ubuntu unter Verwendung des NetBios-Namens, nicht der IP-Adresse

607
Bo Thompson

Ich habe ein Paar Ubuntu-Maschinen und einen Windows-PC. Wenn ich eine Freigabe auf dem Windows-PC erstelle, kann sie von jedem Ubuntu-Computer gemountet werden mount -t cifs -o username=me //computername/sharename /mnt/mountpoint. Wenn ich eine Freigabe auf einem der Ubuntu-Computer erstelle, kann der Windows-Computer diese unter // Computername / Freigabename im Netzwerk sehen und auf sie zugreifen.

Wenn ich jedoch eine Freigabe auf einem Ubuntu-Computer (entweder) erstelle und versuche, sie auf dem anderen bereitzustellen, bekomme ich es mount error: could not resolve address for computername: Unknown error. Wenn Sie die IP-Adresse anstelle des Netbios-Namens verwenden, wird sie nur peachy angehängt.

Noch seltsamerweise nmblookup computernameergibt sich die IP-Adresse.

Was muss ich auf den Ubuntu Sharing- und Mounting-Computern tun, um die Freigabe nach Netbios-Namen anstelle der IP-Adresse einzuhängen? (Außer dem Erstellen eines Bash-Skripts, um die IP-Adresse jedes Mal vom Netbios-Namen abzurufen oder statische IPs festzulegen).

0

1 Antwort auf die Frage

0
grawity

Systemweite NBNS-Unterstützung ist kein Standardbestandteil von Ubuntu (oder den meisten anderen Linux-Systemen). Der Grund dafür nmblookupist, dass er selbst NBNS-Pakete generiert und empfängt und alle anderen Tools (einschließlich mount.cifs) auf die globale Funktion "Auflösen Hostname" zurückgreifen, um das richtige Protokoll auszuwählen.

Das Hostname-Lookup-Modul für NBNS wird aufgerufen libnss_wins.so.2, normalerweise als libnss-winbind oder nur als Teil von smbclient . Einmal installiert, wird es von Debian und Ubuntu automatisch aktiviert, andernfalls muss es der "hosts" -Zeile hinzugefügt werden /etc/nsswitch.conf:

- hosts: files dns + hosts: files dns wins 

Um zu funktionieren, muss das Modul winbindd ausführen . (Ich glaube, früher hat es eigenständig funktioniert, oder einfach mit nmbd, aber anscheinend nicht mehr.)

Testen mit:

  • getent ahosts ComputerNamefür alle aktiven Module (die in nsswitch.conf aufgelistet sind ),
  • getent -s wins ahosts ComputerNamefür das wins- Modul spezifisch (ob aktiv oder nicht).
Könntest du mir das ein bisschen mehr erklären? Ich bin nicht sicher, was ich mit den Informationen tun soll, die Sie mir bisher gegeben haben. Das Hinzufügen dieser beiden Zeilen zu den Dateien nsswitch.conf hat dem Problem nichts angetan. Gibt es eine Möglichkeit für mich, winbindd zu überprüfen oder zu aktivieren? Oder könnte ich überprüfen, ob libnss_wins.so.2 nicht richtig funktioniert? Bo Thompson vor 5 Jahren 0
... Warum funktioniert meine globale "Auflösungshostname" -Funktion nicht mit Linux-Freigaben, wenn dies mit Windows-Freigaben geschieht? Bo Thompson vor 5 Jahren 0