10

У меня есть Mac Mini Server, который каждые несколько дней отключается от сети Wi-Fi. Могут быть и другие параметры, вызывающие первоначальное отключение (например, перезагрузка беспроводного маршрутизатора), но Mac не подключается автоматически.

Это серьезная проблема, поскольку это серверный компьютер, который внезапно становится недоступным до тех пор, пока кто-то физически не перейдет к компьютеру и не использует меню Wi-Fi для повторного подключения к сети вручную. Я должен отметить, что хотя сеть Wi-Fi является WPA2, повторное подключение вручную не требует повторного ввода пароля, поэтому нет никаких очевидных причин, по которым оно не восстанавливается автоматически.

Как я могу заставить Mac периодически пытаться подключиться к определенной сети Wi-Fi?

3 ответа3

10

Вот скрипт Applescript и shell, чтобы проверить, подключен ли Airport, а если нет, подключить его.

if (do shell script "networksetup -getinfo Wi-Fi | grep -c 'IP address:'") = 1 then
    do shell script "networksetup -setairportnetwork en1 <networkName> <passwordToNetwork>"
end if

#!/bin/bash
if [ $(networksetup -getinfo Wi-Fi | grep -c 'IP address:') = '1' ]
then $(networksetup -setairportnetwork en1 <networkName> <passwordToNetwork>)
fi

Замените на имя сети и пароль. "En1" должно быть правильным, если вы не меняли свои сетевые устройства.

Теперь все, что вам нужно сделать, это зациклить или вызвать его, чтобы проверить соединение.

Тем не менее аэропорт должен автоматически переподключиться, если связь потеряна. Может быть, попробуйте сбросить все настройки сети и посмотреть, работает ли это.

Как полностью сбросить настройки сети: отключите аэропорт. Закройте Системные настройки. Перейдите в: /Library/Preferences/SystemConfiguration/ Сделайте копию, затем удалите следующие файлы:

com.apple.airport.preferences.plist
com.apple.network.*
com.apple.smb.server.plist
NetworkInterfaces.plist
3

Я хотел бы просто прокомментировать ответ Kassym Dorsel, но у меня недостаточно очков для этого ...

У меня была такая же проблема с моим сервером Mac:

Wi-Fi подключается к VPN и Ethernet к локальной сети, поэтому, если соединение Wi-Fi потеряно, OS X не подключается автоматически.

Учитывая ответ Касима Дорселя:

  • Мне было неудобно хранить свой пароль Wi-Fi в открытом виде (правда, это крайне низкий риск, но все же).

  • Я хотел, чтобы включить Wi-Fi, если он был отключен.

  • Я хотел, чтобы он обрабатывал условие, когда статический IP был назначен, Wi-Fi был включен, но он все еще не был подключен или подключен к неправильной сети WIFI (SSID).

Поэтому я изменил его скрипт для решения этих проблем (замените его предпочитаемым сетевым SSID):

    #!/bin/bash

    #turn on wifi if it's turned 'Off'
    if [ $(networksetup -getairportpower en1 | grep -c 'Off') = '1' ]
    then $(networksetup -setairportpower en1 on)
    fi

    #cycle wifi power if missing 'IP address'
    if [ $(networksetup -getinfo Wi-Fi | grep -c 'IP address:') = '1' ]
    then $(networksetup -setairportpower en1 off; network setup -setairportpower en1 on)
    fi

    #initiate connection if not connected to the correct network
    if [ $(networksetup -getairportnetwork en1 | grep -c '<networkName>') = 0]
    then $(networksetup -setairportnetwork en1 '<networkName>')
    fi
2

Вы можете попробовать поиграть с утилитой airport (в более новых версиях OS X она скрыта в /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport или аналогичном пути).

В частности, могут быть полезны параметры JoinMode и JoinModeFallback . На моей машине, JoinModeFallback установлен в DoNothing по умолчанию. Изменение на KeepLooking кажется многообещающим началом.

Запустите airport без аргументов, чтобы увидеть его помощь.

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