Похоже, что VPN-клиент Juniper Network Connect оставляет сетевой интерфейс OS X в непригодном для использования состоянии, если он не отключается должным образом.
Изменить: «корректно отключиться» относится к любому моменту, когда VPN отключается по причинам, отличным от нажатия кнопки «Выйти» на программном клиенте. Это происходит, когда Wi-Fi пропадает достаточно долго, чтобы вызвать сбой VPN, или, возможно, я закрыл экран ноутбука, не забыв отключиться и т. Д.
С терминала простой пинг дает следующий результат:
ping: sendto: Cannot allocate memory
Перезагрузка решает проблему, но это неудобно.
Использование ifconfig для сброса интерфейса не работает:
ifconfig en0 down
ifconfig en0 up
Также не выполняется очистка таблицы маршрутов:
route -n flush
Я также попытался сбросить кеш DNS (это совершенно не имеет значения, но я решил, что все равно попробую). Это явно не сработало.
launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
В конечном итоге надежно сработало отключение IPv4, а затем его повторное включение, выполнив следующие действия:
Итак, на мой вопрос ... Есть ли способ добиться того же, что и шаги 1-9 выше, из командной строки? В идеале я хотел бы иметь возможность вызвать сценарий bash для выполнения сброса.
Примечание: это было протестировано на OS X Mountain Lion и OS X Yosemite. Я пропустил OS X Mavericks, поэтому я пропустил этот конкретный тег. У меня есть все причины, по которым это относится и к Mavericks, но я не могу этого доказать.
Эти команды работали у меня.
Отключение IPv4:
sudo networksetup -setv4off Wi-Fi
Вернемся к DHCP:
sudo networksetup -setdhcp Wi-Fi
Я вижу эту проблему каждый раз, когда закрываю Network Connect VPN в любом неблагодарный манера. Я использовал ответ, предоставленный выше, и псевдоним acreages в моем /etc/profile
alias netbounce='sudo networksetup -setv4off Wi-Fi;sudo networksetup -setdhcp Wi-Fi'
Теперь, когда это происходит, я печатаю netbounce
в терминале и все в порядке с миром.
Может ты ищешь networksetup
? В частности, последнее включение / выключение в этом сокращенном списке с другими опциями, которые могут быть непосредственно полезны. (Запустите эту команду без аргументов, чтобы увидеть весь огромный длинный список опций.)
Usage: networksetup -listnetworkserviceorder
Display services with corresponding port and device in order they are tried for connecting
to a network. An asterisk (*) denotes that a service is disabled.
Usage: networksetup -listallnetworkservices
Display list of services. An asterisk (*) denotes that a network service is disabled.
Usage: networksetup -getnetworkserviceenabled <networkservice>
Display whether a service is on or off (enabled or disabled).
Usage: networksetup -setnetworkserviceenabled <networkservice> <on off>
Set <networkservice> to either <on> or <off> (enabled or disabled).
Просмотрите таблицу маршрутизации и удалите все маршруты к вашим локальным сетям / сетям VPN, затем попробуйте повторно подключиться к своей VPN.
sudo route delete 192.168.1.0
или так :)