Kiedyś bez problemu uzyskiwałem dostęp do udziałów SMB lokalnego serwera plików Windows 2008 na moim ostatnim (3 tygodniowym) MacBooku Pro. Jednak od kilku dni nie łączy się (ponownie) z serwerem po przebudzeniu z trybu uśpienia.
Finder pokazuje tylko „łączenie ...” i zawiesza się bez końca. To samo dzieje się, gdy próbuję z wiersza poleceń ( mount -t smbfs
). Dzieje się tak zarówno przez Wi-Fi, jak i kablowe. Próbowałem także wyłączyć i włączyć sieć. Jedyne, co pomaga, to restart.
Jakieś wskazówki?
Edytuj w celu wyjaśnienia: uśpienie komputera Mac, a nie serwera. Dowiedziałem się również, że jeśli rozłączę udziały, zanim uśpię, będzie mógł połączyć się ponownie po przebudzeniu.
Kolejna edycja:
Zrobiłem trochę więcej dochodzeń i powąchałem ruch w sieci. Mac wysyła zapytania o nazwę NetBIOS i żądanie statusu (NBSTAT) na serwer, serwer odpowiada, wszystko wydaje się w porządku. Następnie komputer Mac powinien otworzyć połączenie SMB, ale nic nie robi. Nie ma więcej pakietów.
Potem odkryłem, że prawdziwy problem leży głębiej. Wygląda na to, że nie otwiera nowego połączenia, ponieważ uważa, że stare połączenie, które oczywiście przekroczyło limit czasu po stronie serwera, nadal jest aktywne. Jednak każdy program, który próbuje uzyskać dostęp do punktu podłączenia lub po prostu katalog / Volumes, zawiesza się i nawet nie można go zabić. umount /Volumes/share
- zawiesza się. ls /Volumes
- zawiesza się. kill -9
którykolwiek z nich - nie pomaga. Również otwarcie okna dialogowego otwierania pliku w dowolnej aplikacji powoduje również zawieszenie się!
Jedyne, co pomaga, to twardy restart. Wydaje mi się, że jest coś zasadniczo złego w implementacji SMB OSX, jeśli przekroczenie limitu czasu połączenia może wyzwolić coś takiego.
źródło
net.inet.tcp.delayed_ack=0 net.inet.tcp.mssdflt=1440 kern.ipc.maxsockbuf=500000 net.inet.tcp.sendspace=250000 net.inet.tcp.recvspace=250000
Po ponownym uruchomieniu połączyłem się z moimi udziałami SMB (które zajęły już o wiele mniej czasu niż kiedyś) i po kilku snach później nadal mogę uzyskać dostęp je idealnie.Hej, ostatnio miałem ten sam problem z moim MBP 2010, znalazłem rozwiązanie, które jest kombinacją dwóch rzeczy.
Pierwszym z nich jest ulepszenie jądra (zasadniczo
TCP_NODELAY
na połączeniach), które można wykonać w Terminalu:Po drugie, zajmuje się uprawnieniami do plików / plikami DS_Store. Zwykle podczas konfigurowania udziałów systemu Windows komputer Mac będzie miał dostęp tylko do odczytu. Finder próbuje je utworzyć w każdym przeglądanym folderze i może w końcu się zawiesić. Istnieją więc dwie opcje rozwiązania tego problemu - włącz wystarczające uprawnienia do plików na komputerze z systemem Windows lub powstrzymaj Findera przed tworzeniem tych plików w udziałach sieciowych. Wolę wyłączyć tworzenie Findera, co można zrobić, uruchamiając następującą komendę w terminalu:
Musisz uruchomić ponownie po ich uruchomieniu.
źródło
net.inet.tcp.delayed_ack
to3
10,6, 1,7 i 1,8. Ustawienie0
rozwiązania problemów. Ale2
powinno również działać.Nie mogę pomóc rozwiązać problemu, ale mogę dodać trochę więcej szczegółów. Dzieje się tak również w systemie Windows 7 i urządzenie OS X musi być nadal podłączone, gdy udział Windows zostanie uśpiony. Po odłączeniu lub uśpieniu systemu OS X, a następnie gotowości systemu Windows nie występuje ten problem.
Naprawdę też chciałbym to rozwiązać.
Edycja: Po kilku poszukiwaniach wiele innych osób miało podobne problemy:
źródło