У нас есть один 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-х чисел:
В 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
.
Надеюсь это поможет!
[Изменить: удалены вопросы, на которые вы ответили в своем редактировании, заданы новые вопросы, внесены пояснения.]
/Volumes
? mount
командный отчет? 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.