Stellen Sie sicher, dass Nautilus SMB-Freigabe mit Protokoll 2.0 bereitstellt

8

Wenn ich meine SMB-Freigabe über Nautilus bereitstelle, sind die Übertragungsgeschwindigkeiten langsam. Also habe ich ein bisschen gegraben und festgestellt, dass es viel schneller ist, wenn ich die Freigabe über die CLI einbinde und speziell die Protokollversion auf 2.0 setze.

Hier ist der Befehl, den ich auf der CLI verwende:

sudo mount -t cifs -o vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000 //nas/video /media/lukas/nas

Wie kann ich Nautilus dazu bringen, Version 2.0 beim Mounten meiner Freigabe zu verwenden?

  • Die Nautilus-Version lautet "GNOME nautilus 3.26.3".
  • Die Gnome Shell Version ist "GNOME Shell 3.28.3"
  • Ubuntu Version ist "18.04.1 LTS"
Lukas Knuth
quelle

Antworten:

4

Ich habe einen alternativen Vorschlag, wenn Sie interessiert sind. Anstatt darüber nachzudenken, wie der Samba-Client auf den NAS zugreift - was, wie gesagt, unnötig sein sollte, da SMB2 / 3 bei Bedarf selbst verwendet wird -, warum nicht einfach CIFS automatisch verwenden?

Fügen Sie am Ende von / etc / fstab die folgende Zeile hinzu:

//nas/video /media/lukas/nas cifs vers=2.0,username=Lukas,password=xxxx,uid=1000,gid=1000,noauto,user 0 0

Hinweis: Der Server kann auch als mDNS-qualifizierter Hostname ausgedrückt werden, wenn der Server dies unterstützt: //nas.local/video oder als IP-Adresse: //192.168.0.100/video

Wie das funktionieren wird:

noauto = macht es so, dass es beim Booten nicht gemountet wird. Wir werden dies so einrichten, dass CIFS bei Bedarf verwendet wird - nützlich, wenn Sie einen Laptop haben.

user = macht es so, dass ein gewöhnlicher Benutzer (nicht sudo) die Freigabe bereitstellen kann.

mount point = Da es sich unter / media befindet, wird eine udisks-Antwort ausgelöst:

(1) Auf der Seite von Nautilus wird ein Symbol angezeigt.

(2) Es ist "umsetzbar" - klicken Sie darauf und das System wechselt zu fstab, um herauszufinden, wie es bereitgestellt und dann bereitgestellt wird. Klicken Sie erneut darauf, um die Freigabe der Freigabe aufzuheben.

Dieser Ansatz hat einen Nebeneffekt . Das Symbol, das Nautilus hinzugefügt wird, wird auch in den meisten Ihrer Anwendungen angezeigt - wie z. B. gedit> Öffnen. Anschließend können Sie die Freigabe direkt aus Ihrer Anwendung bereitstellen.

Hinweis für alle, die dies lesen : Der Einhängepunkt ist hier wichtig. Damit die udisks magic funktioniert, muss sich der Mount-Punkt unter / media oder Ihrem Home-Verzeichnis befinden.

Morbius1
quelle
1
Nett, danke. Dies ist eigentlich das, wonach ich gesucht habe, wusste nicht, dass Nautilus Einträge von aufgenommen hat fstab. Ich werde es später versuchen!
Lukas Knuth
Das funktioniert! Aber das //nas/videolässt es so aussehen, als würde es mit Hostnamen funktionieren, was es nicht tut! Wenn Sie dies mit Hostnamen versuchen, wird ein dummer Fehler ausgegeben und nicht gemountet. Hier scheinen nur IP-Adressen unterstützt zu werden. Siehe unix.stackexchange.com/a/152153/12737 Ich habe gerade die DHCP-Lease für den NAS in meinem Router behoben.
Lukas Knuth
Wenn Sie die Informationen von oben hinzufügen, werde ich dies akzeptieren.
Lukas Knuth
Ich werde einen Hinweis zur Verwendung einer IP-Adresse hinzufügen, aber ich werde auch eine andere Option anbieten. Es gibt keinen Grund, warum sich eine manuelle Bereitstellung mit // Hostname / Video von einer fstab-Bereitstellung unterscheiden sollte.
Morbius1
Dies ist mein fstab-Mount für einen Windows 10-Server: //vwin10.local/documents / media / Win10-Docs cifs Benutzername = smbuser, Kennwort = smbuserpw, uid = 1000, iocharset = utf8, noauto, Benutzer 0 0 Es wird auch funktionieren mit nur // vwin10 / documents. Eine IP-Adresse ist nicht erforderlich.
Morbius1
3

Die kurze Antwort lautet: Nautilus macht das bereits. Was Sie möglicherweise feststellen, ist der Unterschied zwischen CIFS (vom Linux-Kernel gesteuert) und einem gvfs / smbclient-Mount (den Nautilus verwendet) der Freigabe. Die CIFS-Methode scheint möglicherweise aufgrund des Overheads von gvfs schneller zu sein.

Der von Nautilus verwendete Samba-Client verhandelt mit dem Server, um den besten SMB-Dialekt zu finden, der zwischen einem "min" vor SMB1 bis zu einem "max" von SMB3_11 verwendet werden kann.

Der Linux-Kernel, der mit 4.13.5 beginnt, verhandelt auch mit dem Server über CIFS zwischen SMB2.1 und SMB3.

Ich nehme an, Sie könnten überschreiben, was der Samba-Client in Nautilus auf natürliche Weise tut, indem Sie den min-Wert zu /etc/samba/smb.conf hinzufügen, aber es sollte keinen Unterschied machen: Platzieren Sie diese Zeile im Abschnitt [global] wie direkt unter Arbeitsgruppe = WORKGROUP- Zeile:

client min protocol = SMB2

Es gibt verschiedene Varianten von SMB2: SMB2_02, SMB2_10, SMB2_22, SMB2_24. Standardmäßig wählt "SMB2" "SMB2_10" aus. Stellen Sie nur sicher, dass Sie nichts für den Maximalwert hinzufügen.

BEARBEITEN: Es scheint einige Verwirrung darüber zu geben, wo Sie die Zeile "Client-Min-Protokoll" platzieren - auf dem Server oder im Client. Es wurde vorgeschlagen, dass es sich auf dem Server befindet.

Wenn ich einen 18.04-Server eingerichtet und "client min protocol = SMB2" auf dem Server angegeben habe, habe ich mit einem Ubuntu 16.04-Client darauf zugegriffen, der standardmäßig (ohne Änderung) nur mit SMB1 (auch bekannt als NT1) auf den Server zugreifen kann Ergebnis dieses Zugriffs auf den Server:

xxx@srvub1804:~$ sudo smbstatus

Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**               
-------------------------------------------------------------------------------------
4681    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45648)        **NT1**

Es gibt keine Änderung, da der Client weiterhin über SMB1 (NT1) auf den Server zugreift.

Wenn ich jedoch die Client-Min / Man-Einstellung auf dem Client auf "Client-Min-Protokoll = SMB2" und "Client-Max-Protokoll = SMB3" ändere und das "Client-Min-Protokoll" vom Server entferne, lande ich dort, wo ich es erwartet habe:

xxx@srvub1804:~$ sudo smbstatus


Samba version 4.7.6-Ubuntu
PID     Username     Group        Machine                                   **Protocol**             
-------------------------------------------------------------------------------------
4915    nobody       nogroup      vub1604 (ipv4:192.168.1.140:45664)        **SMB3_11**

Ich denke, die Verwirrung rührt von einem anderen Parameter namens "min protocol" (auch bekannt als "server min protocol") her, der tatsächlich vorschreibt, welcher minimale Dialekt von jdm für den Zugriff zulässig ist. Das wird auf dem Server gemacht. "Client Min / Max-Protokoll" wird auf dem Client ausgeführt.

Wenn Sie eine smb.conf auf dem Client haben, ist das großartig. Wenn nicht, können Sie es folgendermaßen installieren:

sudo apt install smbclient
Morbius1
quelle
Interessant, wenn Sie nur festlegen, dass min protocol = SMB2dies tatsächlich andere Systeme betrifft, insbesondere die Art und Weise, wie Windows das Netzwerk durchsucht. Wenn Sie dies jedoch client min protocol = SMB2festlegen, durchsucht Windows das Netzwerk einwandfrei, und Windows 10 stellt unter 3.1.1 eine Verbindung her. Dies stellte das auf meinem Ubuntu 18.04 Samba ein. =) +1
Terrance
Die von Ihnen vorgeschlagene Konfigurationsänderung wird auf dem SMB-Server durchgeführt, richtig? Weil ich auf dem Client-Computer diese Konfigurationsdatei nicht habe.
Lukas Knuth
Es wird auf dem Client gemacht. /etc/samba/smb.conf ist in Ubuntu standardmäßig vorhanden. Wenn es aus irgendeinem Grund nicht in Ihrem ist, installieren Sie das folgende Paket: "sudo apt install smbclient"
Morbius1
@LukasKnuth Ja, diese Datei befindet sich auf Ihrem Server, auf dem Ihre Samba-Freigaben ausgeführt werden. Sie müssen es nicht auf dem Client festlegen, da der Client bei der Verbindung mit dem Server client min protocol = SMB2über SMB2 verhandelt.
Terrance
Informationen zu dieser Option finden Sie in den Manpages für smb.conf: "Client-Min-Protokoll (G) Diese Einstellung steuert die Mindestprotokollversion, die der Client zu verwenden versucht." Es soll dem Client hinzugefügt werden, nicht dem Server. Wie würden Sie es einem Server unter Windows hinzufügen?
Morbius1