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

10

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, поэтому я пропустил этот конкретный тег. У меня есть все основания, чтобы это относилось и к Мавериксам, но я не могу доказать это.

Чак Волбер
источник
«Клиент Juniper Network Connect VPN, похоже, оставляет сетевой интерфейс OS X в непригодном для использования состоянии, если он не отключается изящно». - Я не уверен, каким было бы неблагодарное отключение для вашего случая, но мы годами работали с устройствами SA с клиентами OSX и не видели того, что вы видите. Вы проверили с Juniper TAC об этом?
TheCleaner
Каждый раз, когда сетевое соединение падает достаточно долго, чтобы убить VPN, я остаюсь в этом состоянии. Иногда Wi-Fi будет иметь сбой, или, возможно, я закрыл ноутбук, прежде чем правильно отключить, и т. Д. Связаться с Juniper TAC просто не вариант в моем конкретном случае.
Чак Вольбер,
Мой опыт показывает, что когда я подключаюсь через VPN через соединение Wi-Fi, и соединение Wi-Fi перестает отвечать (из-за политики сеанса, сбоя сети и т. Д.), Клиент Juniper Network Connect начинает запрашивать «смену» корневых паролей. вещи. Вы можете убить клиента и перезапустить его, и даже включить и выключить Wi-Fi, но клиент никогда не будет повторно подключаться без перезагрузки. Не без ответа Сунил П ниже.
Snapman

Ответы:

8

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

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

sudo networksetup -setv4off Wi-Fi

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

sudo networksetup -setdhcp Wi-Fi
Сунил П
источник
3
Работает отлично. И для проводного соединения:s/Wi-Fi/Ethernet/
Чак Вольбер
Если сделать это удаленно (например, TeamViewer), первая команда сама по себе, вероятно, разорвет соединение, поэтому запустите обе команды в одной строке, разделяя их точкой с запятой.
mwfearnley
В моем случае были разные имена, networksetup -listallnetworkservicesрассказывает все.
Эд Рэндалл
1

Может быть, вы ищете 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).
Патрик Тюдор
источник
1

Я вижу эту проблему каждый раз, когда я покидаю Network Connect VPN любым неблагодарным способом. Я использовал ответ, приведенный выше, и под псевдонимом/etc/profile

alias netbounce='sudo networksetup -setv4off Wi-Fi;sudo  networksetup -setdhcp Wi-Fi'

Теперь, когда это происходит, я печатаю netbounceв терминале, и с миром все в порядке.

Jonathan.Wagner
источник
0

Посмотрите таблицу маршрутизации и удалите все маршруты к вашим локальным сетям / сетям VPN, затем попробуйте подключиться к VPN.

sudo route delete 192.168.1.0

или так :)

Янне Пиккарайнен
источник