GNU/Linux >> LINUX-Kenntnisse >  >> Debian

Debian – Cifs verliert zufällig die Verbindung zur Windows-Freigabe?

Ich habe seit ein paar Monaten ein paar Verzeichnisse von einem Debian Jessie entfernt in einer Windows-Freigabe gemountet.

In den letzten Wochen hatte ich immer wieder Beschwerden über zufällige Verbindungsabbrüche vom Einhängepunkt und musste eine

sudo mount -a

um die Mount-Konnektivität wiederherzustellen, ein paar Mal (der Server wird ein- oder zweimal pro Woche verwendet).

z.B. Die Reittiere erholen sich nicht oft nach einer gewissen Zeit ohne Verwendung.

Der Windows-Administrator hat mir auch mitgeteilt, dass der Windows-Server seit einiger Zeit nicht mehr neu gestartet wurde.

Heute zufällig beim Ausführen von mount -a Auch hier funktionierte es nur im 2. Versuch, während der erste Versuch den folgenden Fehler ergab:

sudo mount -a
mount error(104): Connection reset by peer
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Die Verzeichnisse werden aus /etc/fstab gemountet als solches:

//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001 0 0

Wenn Sie einen Mount-Befehl ausführen, können Sie auch die Option echo_interval sehen ist standardmäßig bei 60 Minuten aktiviert.

$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=1.0,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)

Was tun?

Akzeptierte Antwort:

Ich habe hier einen interessanten verwandten Beitrag gefunden, in dem cifs eingehängter Ordner die Verbindung ständig trennt (Ubuntu-Server), und von einem ähnlichen Problem spricht (gleicher Fehler, Samba-Freigaben).

Der relevante Leckerbissen hier, um dem Rest der Antwort zu folgen, ist, dass CIFS-Mounts standardmäßig das SMBv1.0-Protokoll verwenden, wie durch die Ausgabe des mount verifiziert werden kann Befehl und achten Sie auf vers=1.0 Feld.

$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=1.0,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)

Ich habe auch in Stack Overflow festgestellt, dass der CIFS-Host nach dem Mounten ausgefallen ist

Dies könnte auch an einer Protokollunstimmigkeit liegen. Im Jahr 2017 hat Microsoft
Windows-Server gepatcht und empfohlen, das SMB1-Protokoll zu deaktivieren.

Von nun an könnte mount.cifs Probleme mit der Protokollaushandlung haben.

Der angezeigte Fehler lautet „Host ist ausgefallen“. aber wenn Sie debuggen mit:

smbclient -L <server_ip> -U <username> -d 256

Sie erhalten den Fehler:

protocol negotiation failed: NT_STATUS_CONNECTION_RESET

Der Beitrag erwähnt, dass Windows-Patches für das Protokoll/Wannacry und andere mit/oder genauer gesagt, einige Leute haben die v1-CIFS-Anforderungsfunktionalität deaktiviert; Ähnliche Probleme sind an der Windows-Front aufgetreten, und angesichts des zeitlichen Ablaufs vermute ich, dass das Problem damit zusammenhängt.

Wir haben v1 CIFS auf diesem speziellen Server nicht deaktiviert, AFAIK (und Tests bestätigen dies), aber die MS-Bulletins deuten darauf hin, dass das standardmäßige SMBv1-Verhalten (leicht) geändert wurde.

Am Ende folgte ich der allgemeinen Idee, die in der erwähnten Samba-Frage vorgeschlagen wurde. Von man mounts.cifs :

vers=

    SMB-Protokollversion. Zulässige Werte sind:

    • 1.0 – Das klassische CIFS/SMBv1-Protokoll. Dies ist die Standardeinstellung.

    • 2.0 – Das SMBv2.002-Protokoll. Dies wurde ursprünglich in Windows Vista Service Pack 1 und Windows Server 2008 eingeführt. Beachten Sie, dass
      die ursprüngliche Release-Version von Windows Vista einen etwas anderen Dialekt (2.000) sprach, der nicht unterstützt wird.

    • 2.1 – Das SMBv2.1-Protokoll, das in Microsoft Windows 7 und Windows Server 2008R2 eingeführt wurde.

    • 3.0 – Das SMBv3.0-Protokoll, das in Microsoft Windows 8 und Windows Server 2012 eingeführt wurde.

    Beachten Sie auch, dass diese Option zwar die verwendete Protokollversion regelt, jedoch nicht alle Funktionen jeder Version verfügbar sind.

--verbose

    Gibt zusätzliche Debugging-Informationen für den Mount aus. Beachten Sie, dass dieser Parameter vor dem -o angegeben werden muss . Zum Beispiel:

 mount -t cifs //server/share /mnt --verbose -o user=username

Wie aus dem Handbuch hervorgeht, in neueren Windows-Versionen nach Windows 8
mit mindestens vers=2.0 kann sinnvoller sein; die alternative Syntax in der
Kommandozeile mit dem --verbose Die erwähnte Option ist auch
nützlich, um eventuell auftretende Komplikationen weiter zu debuggen.

Da es sich bei dem Windows-Server, von dem ich bei dieser Frage mounte, um einen Windows-Server 2008 R2 handelt, füge ich /etc/fstab ein :

//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001,vers=2.1 0 0

Hängen Sie es dann erneut ein, damit die Option wirksam wird:

sudo mount -o remount /mnt/mount_point

Jetzt verifizieren wir mit mount erneut, um das ausgehandelte Protokoll zu bestätigen:

Verwandte:Möglichkeit, Windows Explorer fest zu verdrahten, um die Detailansicht als Standard zu verwenden?

$mount
//10.2.1.2/XX/ZZ/YY on /mnt/mount_point type cifs (rw,relatime,vers=2.1,cache=strict,username=someusername,domain=XXX,uid=1001,forceuid,gid=1001,forcegid,addr=10.2.1.2,file_mode=0770,dir_mode=0770,nounix,serverino,mapposix,rsize=61440,wsize=65536,echo_interval=60,actimeo=1)

Und wir können tatsächlich bestätigen, dass wir das verwendete SMB-Protokoll erfolgreich modifiziert haben.

Es sollte auch beachtet werden, dass CIFS v1.0 im Vergleich zu neueren Versionen des Protokolls nicht nur veraltet, sondern auch äußerst ineffizient und unsicher ist.

Von MS-Blogs – Hören Sie auf, SMB1 zu verwenden

SMB1 ist weder modern noch effizient
Wenn Sie SMB1 verwenden, verlieren Sie wichtige
Leistungs- und Produktivitätsoptimierungen für Endbenutzer.

  • Größere Lese- und Schreibvorgänge (2.02+) – effizientere Nutzung schnellerer Netzwerke
    oder WANs mit höherer Latenz. Große MTU-Unterstützung.
  • Peer-Caching von Ordner- und
    Dateieigenschaften (2.02+) – Clients speichern lokale Kopien von Ordnern und
    Dateien über BranchCache
  • Dauerhafte Handles (2.02, 2.1) – ermöglichen
    der Verbindung, sich transparent wieder mit dem Server zu verbinden, falls es zu einer
    vorübergehenden Trennung
  • kommt
  • Client-Oplock-Leasingmodell (2.02+) – begrenzt
    die zwischen Client und Server übertragenen Daten, verbessert
    die Leistung in Netzwerken mit hoher Latenz und erhöht die SMB-Server
    Skalierbarkeit
  • Multichannel &SMB Direct (3.0+) – Aggregation von Netzwerkbandbreite
    und Fehlertoleranz, wenn mehrere Pfade zwischen
    Client und Server verfügbar sind, plus Nutzung von modernem Ultra-High-Through-RDMA
    Infrastruktur
  • Directory Leasing (3.0+) – Verbessert die Antwortzeiten von Anwendungen
    in Zweigstellen durch Caching

Interessanterweise weist dieser letzte Artikel darauf hin, dass die Verbindungsprobleme nach einer Verbindungsunterbrechung (Durable Handles) mit geringerer Wahrscheinlichkeit auftreten, wenn ein Protokoll>=2.01 verwendet wird, daher möchte ich noch einmal betonen, CIFS v1.0 nicht weiter zu verwenden. (z. B. während in 1.0 echo_interval=60 hält die Verbindung aufrecht, wenn ein Netzwerkfehler oder eine andere Serverunterbrechung auftritt, wird sich der Mount nicht ohne manuellen Eingriff wiederherstellen, während CIFS v1.0 verwendet wird)

Als letzten Ratschlag vermeiden Sie sudo mount -a , und beginnen Sie mit:

sudo mount -o remount -a

Siehe meine Frage auch CIFS-Mounting mehrerer Kopien derselben Freigabe auf demselben Mount-Punkt


Debian
  1. So mounten Sie die Remote-Windows-Freigabe unter Linux

  2. So mounten Sie eine Samba-Freigabe unter Ubuntu und Debian

  3. Debian – Warum zeigt die Cifs-Freigabe dieselben Dateien mehrmals an?

  4. Das CIFS-Freigabedateisystem wird nach dem Neustart unter CentOS/RHEL 7 nicht bereitgestellt

  5. Mounten Sie die Remote-Windows-Freigabe von Centos

So richten Sie einen NFS-Server unter Debian 10 Buster ein

So mounten Sie ein exFAT-Laufwerk unter Debian Linux

Wie man Windows 10 und Debian 10 dual bootet

So mounten Sie Windows Share unter Linux mit CIFS

So mounten Sie Windows Share unter Ubuntu Linux

So installieren Sie Wine, um Windows-Anwendungen unter Debian auszuführen