Mac OS не может подключиться к общим ресурсам SMB после сна

15

Я использовал для доступа к общим ресурсам SMB моего локального файлового сервера Windows 2008 на моем недавнем (3 недели) MacBook Pro без проблем. Однако в течение нескольких дней ему не удается (повторно) подключиться к серверу после его выхода из спящего режима.

Искатель просто показывает "соединение ..." и зависает на неопределенное время. То же самое происходит, когда я пытаюсь сделать это из командной строки ( mount -t smbfs). Это происходит как через WiFi, так и по кабелю, я также пытался выключить и снова включить сеть. Единственное, что помогает - это перезагрузка.

Есть намеки?

Отредактируйте, чтобы уточнить: усыпляется Mac, а не сервер. Я также узнал, что если я отключу общие ресурсы перед тем, как перевести их в спящий режим, он сможет восстановить соединение после пробуждения.

Другое Править:

Я провел еще одно расследование и понюхал сетевой трафик. Mac отправляет запросы имен NetBIOS и запрос статуса (NBSTAT) на сервер, сервер отвечает, все выглядит нормально. После этого Mac должен открыть SMB-соединение, но он ничего не делает. Больше нет пакетов.

Затем я узнал, что настоящая проблема кроется глубже. Кажется, что оно не открывает новое соединение, потому что оно думает, что старое, которое, конечно, истекло время на стороне сервера, все еще активно. Однако любая программа, которая пытается получить доступ к своей точке монтирования или просто к каталогу / Volumes, зависает и даже не может быть уничтожена. umount /Volumes/share- висит. ls /Volumes- висит. kill -9любой из них - не помогает. Кроме того, открытие диалогового окна открытия файла в любом приложении приводит к его зависанию!

Единственное, что помогает, это жесткая перезагрузка. Мне кажется, что в OSX-реализации SMB есть что-то принципиально неправильное, если соединение по тайм-ауту может вызвать нечто подобное.

Andreas
источник

Ответы:

6

У меня та же проблема с моим MacBook Pro. Я следовал инструкциям здесь - http://blog.djmnet.org/2009/02/09/macs-needing-unix-network-geekery/ и мои проблемы, похоже, решены.

ddbailie
источник
1
Вау, спасибо! Это, кажется, сделало это. Я отключил darwin_streams в smb.conf и добавил это в свой sysctl.conf: 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 после перезагрузки я подключился к своим общим ресурсам SMB (что уже заняло намного меньше времени, чем раньше), и после нескольких снов, я все еще могу получить доступ их отлично.
Андреас
На самом деле, я все еще сталкивался с проблемами после применения этих изменений. Однако OSX Lion, похоже, исправил проблему.
Андреас
4

Эй, у меня недавно была та же проблема с моим MBP 2010, я нашел, что решение состоит из комбинации двух вещей.

Первый - это настройка ядра (по сути, TCP_NODELAYна соединениях), которую можно выполнить в терминале:

sudo sysctl -w net.inet.tcp.delayed_ack=0

Во-вторых, имеет дело с правами доступа к файлам / DS_Store. Обычно при настройке общих папок Windows Mac будет иметь доступ только для чтения. Finder пытается создать их в каждой папке, которую вы просматриваете, и может в итоге зависнуть. Таким образом, есть два варианта решения: включить достаточные разрешения для файлов на компьютере с Windows или запретить Finder создавать эти файлы на общих сетевых ресурсах. Я предпочитаю отключать Finder от их создания, что можно сделать, выполнив следующую команду в терминале:

defaults write com.Apple.desktopservices DSDontWriteNetworkStores true

Вам нужно будет перезагрузить компьютер после запуска.

dantheman
источник
В моей системе Mac OS 10.7.2 значением по умолчанию (если вам необходимо его восстановить) является «net.inet.tcp.delayed_ack: 3» (вы можете получить значение по умолчанию, запустив «sudo sysctl -a»).
Per Noalt
@PerNoalt: Отвечаю на эту тему, потому что я тоже имел дело с такими проблемами. Значение по умолчанию net.inet.tcp.delayed_ackнаходится 3на 10,6, 1,7 и 1,8. Установка его для решения 0проблем. Но 2должно работать так же.
JakeGould
2

Я не могу помочь решить проблему, но я могу добавить немного больше деталей. Это также происходит в Windows 7, и устройство OS X должно быть подключено, когда общий ресурс Windows переведен в спящий режим. Если вы отключите или отключите OS X, а затем перейдете в режим ожидания Windows, у вас не возникнет этой проблемы.

Я бы очень хотел найти решение этой проблемы.

Изменить: После некоторых поисков у многих других людей были похожие проблемы:

Jazradel
источник