15

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

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

Есть намеки?

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

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

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

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

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

3 ответа3

6

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

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

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

2

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

Мне бы очень хотелось, чтобы решение этого тоже.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .