GNU/Linux >> Znalost Linux >  >> Debian

Debian – Cifs náhodně ztrácí připojení k Windows Share?

Několik měsíců mám vzdáleně připojených několik adresářů z Debian Jessie ve sdílené složce Windows.

V posledních týdnech si neustále stěžuji na náhodná odpojení od přípojného bodu a musel jsem to udělat

sudo mount -a

abyste znovu získali připojení k připojení, několikrát (server se používá jednou nebo dvakrát týdně).

např. připojení se po určité době bez použití často neobnovují.

Správce Windows mi také řekl, že server Windows nebyl nějakou dobu restartován.

Dnes shodou okolností při provádění mount -a opět to fungovalo pouze na 2. pokus, zatímco první pokus vykázal následující chybu:

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)

Adresáře jsou připojeny z /etc/fstab jako takový:

//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs pověření=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001 kód>

Při provádění příkazu mount můžete také vidět volbu echo_interval je standardně aktivováno na 60 minut.

$mount
//10.2.1.2/XX/ZZ/YY na /mnt/mount_point typu 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_timeo=60)

Co dělat?

Přijatá odpověď:

Našel jsem zajímavý související příspěvek zde cifs Mount složka se neustále odpojuje (ubuntu server), mluví o podobném problému (stejná chyba, Samba sdílené).

Relevantní bonbónek pro následování zbytku odpovědi je, že připojení CIFS ve výchozím nastavení používají protokol SMBv1.0, jak lze ověřit zadáním mount a věnujte pozornost vers=1.0 pole.

$mount
//10.2.1.2/XX/ZZ/YY na /mnt/mount_point typu 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,=size4 =65536,echo_interval=60,actimeo=1)

V Stack Overflow jsem také našel příspěvek Mount CIFS Host je mimo provoz

Může to být také kvůli nesouladu protokolu. V roce 2017 Microsoft
opravil servery Windows a doporučil deaktivovat protokol SMB1.

Od této chvíle může mít mount.cifs problémy s vyjednáváním protokolu.

Zobrazená chyba je „Hostitel je mimo provoz“. ale když ladíte pomocí:

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

zobrazí se chyba:

protocol negotiation failed: NT_STATUS_CONNECTION_RESET

Příspěvek se zmiňuje o tom, že záplaty Windows na protokol/Wannacry a další mají problémy s/nebo přesněji, někteří lidé deaktivovali funkčnost v1 CIFS; podobné problémy se vyskytly na frontě Windows a vzhledem k načasování mám podezření, že problém musí souviset.

Na tomto konkrétním serveru AFAIK jsme nezakázali v1 CIFS (a testování to potvrzuje), nicméně bulletiny MS naznačují, že výchozí chování SMBv1 bylo (mírně) změněno.

Nakonec jsem se držel obecné myšlenky navržené ve zmíněné otázce Samba. Z man mounts.cifs :

vers=

    Verze protokolu SMB. Povolené hodnoty jsou:

    • 1.0 – Klasický protokol CIFS/SMBv1. Toto je výchozí nastavení.

    • 2.0 – protokol SMBv2.002. Toto bylo původně představeno v systému Windows Vista Service Pack 1 a Windows Server 2008. Všimněte si, že
      původní verze systému Windows Vista hovořila mírně odlišným dialektem (2 000), který není podporován.

    • 2.1 – Protokol SMBv2.1, který byl zaveden v systémech Microsoft Windows 7 a Windows Server 2008R2.

    • 3.0 – Protokol SMBv3.0, který byl představen v systémech Microsoft Windows 8 a Windows Server 2012.

    Všimněte si také, že i když tato možnost určuje použitou verzi protokolu, ne všechny funkce každé verze jsou dostupné.

--verbose

    Vytiskne další informace o ladění pro připojení. Všimněte si, že tento parametr musí být zadán před -o . Například:

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

Jak je vidět v příručce, v posledních verzích Windows po Windows 8
používající alespoň vers=2.0 může dávat větší smysl; alternativní syntaxi v příkazovém řádku
s --verbose možnost, která je zmíněna, je také
užitečná pro další ladění jakýchkoli komplikací, které mohou nastat.

Protože server Windows, ze kterého připojuji věci k této otázce, je Windows server 2008 R2, vložil jsem do /etc/fstab :

//10.2.1.2/XX/ZZ/YY /mnt/mount_point cifs pověření=/root/.smbcredentials,iocharset=utf8,file_mode=0770,dir_mode=0770,uid=1001,gid=1001, 0 0

Poté jej znovu připojte, aby se tato možnost projevila:

sudo mount -o remount /mnt/mount_point

Nyní ověříme pomocí mount znovu pro potvrzení sjednaného protokolu:

Související:způsob, jak napevno zapojit Průzkumníka Windows, aby používal zobrazení Podrobnosti jako výchozí?

$mount
//10.2.1.2/XX/ZZ/YY na /mnt/mount_point typu 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,=size4 =65536,echo_interval=60,actimeo=1)

A skutečně můžeme potvrdit, že jsme úspěšně upravili používaný protokol SMB.

Je třeba také poznamenat, že CIFS v1.0 je kromě toho, že je zastaralý, extrémně neefektivní a nejistý ve srovnání s novějšími verzemi protokolu.

Z blogů MS – Přestaňte používat SMB1

SMB1 není moderní ani efektivní
Když používáte SMB1, ztratíte klíčové
optimalizace výkonu a produktivity pro koncové uživatele.

  • Větší čtení a zápis (2.02+) – efektivnější využití rychlejších sítí
    nebo WAN s vyšší latencí. Velká podpora MTU.
  • Ukládání do mezipaměti složek a
    vlastností souborů (2.02+) – klienti uchovávají místní kopie složek a
    souborů prostřednictvím BranchCache
  • Odolné úchyty (2.02, 2.1) – umožňují
    připojení k transparentnímu opětovnému připojení k serveru v případě
    dočasného odpojení
  • Klientský model oplock leasingu (2.02+) – omezuje
    data přenášená mezi klientem a serverem, zlepšuje
    výkon v sítích s vysokou latencí a zvyšuje SMB server
    škálovatelnost
  • Multichannel &SMB Direct (3.0+) – agregace šířky pásma
    sítě a odolnost proti chybám, pokud je k dispozici více cest mezi
    klientem a serverem, plus využití moderní ultra-vysoké v rámci RDMA
    infrastruktura
  • Leasing adresáře (3.0+) – Zkracuje dobu odezvy aplikací
    v pobočkách prostřednictvím ukládání do mezipaměti

Je zajímavé, že tento poslední článek naznačuje, že problémy s odpojením se méně pravděpodobně objeví po odpojení (trvanlivé úchyty), pokud používáte protokol>=2.01, takže bych znovu zdůraznil, že nepokračujte v používání CIFS v1.0. (např. ve verzi 1.0 echo_interval=60 udržuje jej připojený, pokud dojde k závadě v síti nebo jinému přerušení serveru, připojení se neobnoví bez ručního zásahu při použití CIFS v1.0)

Jako poslední rada se vyhněte sudo mount -a a začněte dělat:

sudo mount -o remount -a

Viz můj dotaz také CIFS připojující více kopií stejné sdílené složky do stejného přípojného bodu


Debian
  1. Jak připojit sdílení Samba na Ubuntu a Debian

  2. Debian – Proč sdílení Cifs zobrazuje stejné soubory vícekrát?

  3. Připojení sdílené složky systému Windows v podsystému Windows pro Linux

  1. Připojte sdílení Samba pomocí lístku Kerberos

  2. mount error(13):Oprávnění odepřeno se sdílením systému Windows

  3. Malé zápisy do síťového sdílení SMB jsou pomalé ve Windows, rychlé přes CIFS Linux mount

  1. Jak připojit vzdálené sdílení Windows v systému Linux

  2. Systém souborů CIFS Share File System není připojen po restartu na CentOS/RHEL 7

  3. Nelze připojit sdílení oken v ubuntu