Сброс интерфейса IPv4 командной строки OS X

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. Настройки открытой системы
  2. Нажмите на значок сети
  3. Нажмите на сломанный интерфейс.
  4. Нажмите кнопку Дополнительно.
  5. Выберите TCP/IP
  6. Выберите "Выкл." В разделе "Настройка IPv4".
  7. Выберите "ОК"
  8. Выберите "Применить".
  9. Повторите шаги 4 - 8, но замените 6 желаемым методом настройки IP.

Итак, на мой вопрос... Есть ли способ добиться того же, что и шаги 1-9 выше, из командной строки? В идеале я хотел бы иметь возможность вызвать скрипт bash для сброса.

Примечание: это было проверено на OS X Mountain Lion и OS X Yosemite. Я пропустил OS X Mavericks, поэтому я пропустил этот конкретный тег. У меня есть все основания, чтобы это относилось и к Мавериксам, но я не могу доказать это.

4 ответа

Решение

Эти команды работали для меня.

Отключение IPv4:

sudo networksetup -setv4off Wi-Fi

Установка его обратно в DHCP:

sudo networksetup -setdhcp Wi-Fi

Я вижу эту проблему каждый раз, когда я покидаю Network Connect VPN любым неблагодарным способом. Я использовал ответ, приведенный выше, и под псевдонимом /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

или так:)

Другие вопросы по тегам