Назад | Перейти на главную страницу

Почему Finder Mac OS X (10.6) не может подключаться к компьютерам с Windows?

У нас есть один Mac (MacBook Pro Unibody) среди наших компьютеров с Windows, который подключается к «серверу» (на самом деле это Dell под управлением Windows XP Pro) для доступа к документам. Это работает нормально большую часть времени, но иногда после пробуждения от сна он не может подключиться к любой Компьютер Windows в сети.

В Консольном приложении отсутствуют ошибки (или даже сообщения) при попытке подключения либо при просмотре сети Finder, либо при использовании меню «Подключиться к серверу» по имени или IP.

Я попробовал «Перезапустить» в Finder, переключил общий доступ к файлам, отключил и снова включил аэропорт, но ничто не заставляет Mac подключиться снова, пока я не перезагружу его!

Другие компьютеры могут подключаться к машинам, так что это определенно Mac виноват.

Есть ли какие-нибудь обходные пути, которые кто-нибудь нашел? Возможно, есть способ перезапустить клиент самбы?

Редактировать:

Ноутбук действительно использует беспроводную связь, но все сетевые подключения работают, Mac может пинговать хост XP, к которому он пытается подключиться, и просматривать Интернет без проблем. Я пробовал использовать IP-адрес хост-машины в пункте меню «Подключиться к серверу»; Об этом уже говорилось выше.

Я настоятельно рекомендую вам проверить Исправление TCP ACK здесь. Я применил его во многих ситуациях, когда клиенты Mac OS X задыхаются в среде Windows, и он отлично работает. Подробное объяснение здесь.

Краткая версия того, что это делает: существует ошибка несоответствия в способе обработки TCP-стеком Mac OS X TCP ACK, что в основном приводит к потере пакетов. Спиннинг пляжный мяч? Медленные соединения? Вроде того. Подобное исправление не рискует повредить данные, потому что оно меняет поведение отправленных / полученных TCP-пакетов. Таким образом, вместо использования некорректной реализации алгоритма Нэгла, настройка отключает алгоритм, поэтому пакеты можно отправлять / получать без ожидания.

Теперь для начала проверьте это с терминала:

sysctl net.inet.tcp.delayed_ack

Это должно быть одно из 4-х чисел:

  • 0 = Отвечает после каждого пакета (ВЫКЛ.)
  • 1 = Всегда использует отложенный ACK, 6 пакетов могут получить 1 ACK
  • 2 = Немедленный ACK после 2-го пакета, 2 пакета на ACK (режим совместимости)
  • 3 = Должен автоматически определять, когда использовать отложенное подтверждение, 4 пакета на подтверждение. (ДЕФОЛТ)

В 99% случаев Mac будет настроен на опцию 3, что мешает Mac при подключении к серверам, отличным от Mac. Есть два варианта попробовать: 0 & 2. В настоящее время я по умолчанию использую 0, и у меня не было никаких проблем.

Это установит delayed_ack установка на 0:

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

Отключите общие файлы и подключитесь заново. Все должно быть лучше.

Теперь, если вы хотите сохранить этот параметр при перезагрузке, вам нужно создать sysctl.conf:

sudo nano /etc/sysctl.conf

И вставьте в него эту одинокую строчку:

net.inet.tcp.delayed_ack=0

Если вы хотите проверить, правильно ли вы все сделали, просто перезагрузите компьютер и сделайте это. sysctl net.inet.tcp.delayed_ack очередной раз. Так должно быть 0.

Надеюсь это поможет!

[Изменить: удалены вопросы, на которые вы ответили в своем редактировании, заданы новые вопросы, внесены пояснения.]

  1. Отображается ли подключенный общий ресурс SMB (или папка с таким же именем) в /Volumes ?
  2. Что это mount командный отчет?
  3. Делает umount /Volumes/<name of share> Делать что-нибудь? (Обратите внимание, что это «размонтировать», а не «размонтировать»).

Обратите внимание, что журнал консоли Mac OS X обычно сообщает только сообщения от приложений, которые работают от имени текущего пользователя. Программное обеспечение, работающее от имени пользователя root (или «никто», или любая из учетных записей системы с ограниченным доступом по умолчанию, таких как «www»), обычно регистрируется в /var/log/system.log или других журналах. В 10.6 сообщения ядра, которые, скорее всего, включают сообщения файловой системы, идут в /var/log/kernel.log, так что посмотрите и там. Приложение Console позволяет просматривать все эти журналы, если вы нажмете «Показать список журналов». Клиент SMB Mac OS X (который Я припоминаю, что это собственная реализация Apple, а не Samba. происходит от FreeBSD smbfs Бориса Попова, которая не основана на Samba), вероятно, не запускается от имени текущего пользователя, поэтому он, вероятно, не регистрируется в журнале консоли. Посмотрите в system.log и kernel.log.