Следующее работает для меня. Запустите их после подключения к Cisco VPN. (Я использую встроенный клиент Cisco OS X, а не фирменный клиент Cisco.)
sudo route -nv add -net 10 -interface utun0
sudo route change default 192.168.0.1
замещать 10
в первой команде с сетью, которая находится на другой стороне туннеля.
замещать 192.168.0.1
с вашим локальным сетевым шлюзом.
Я поместил это в скрипт bash, вот так:
$ cat vpn.sh
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Run this as root"
exit 1
fi
route -nv add -net 10 -interface utun0
route change default 192.168.0.1
Я также нашел объяснение того, как запустить это автоматически когда вы подключаете VPN, но уже поздно в пятницу, и я не испытываю желания попробовать это :)
Редактировать:
С тех пор я оставил работу, где я использовал Cisco VPN, так что это из памяти.
10
в первой команде указывается сеть, которую вы хотите маршрутизировать через VPN. 10
короткая рука для 10.0.0.0/8
, В Дело Туана Ань Чана, похоже, что сеть 192.168.5.0/24
,
Что касается того, какой шлюз нужно указать во второй команде, это должен быть ваш локальный шлюз. Когда вы входите в VPN, которая предотвращает раздельное туннелирование, она применяет эту политику, изменяя таблицы маршрутизации так, чтобы все пакеты маршрутизировались на виртуальном интерфейсе. Таким образом, вы хотите изменить маршрут по умолчанию обратно на то, что было до получения по VPN ,
Самый простой способ выяснить шлюз, это запустить netstat -rn
перед входом в VPN и посмотрите на IP-адрес справа от места назначения по умолчанию. Например, вот как это выглядит на моей коробке прямо сейчас:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 29 0 en1
10.0.1/24 link#5 UCS 3 0 en1
10.0.1.1 0:1e:52:xx:xx:xx UHLWIi 55 520896 en1 481
10.0.1.51 7c:c5:37:xx:xx:xx UHLWIi 0 1083 en1 350
10.0.1.52 127.0.0.1 UHS 0 0 lo0
Мой шлюз 10.0.1.1
- он находится справа от пункта назначения по умолчанию.
С использованием информация из mehaase, Я написал скрипт на Python, который действительно упрощает этот процесс на Mac. Когда вы запустите его, скрипт сохранит информацию о вашем брандмауэре, запустит клиент AnyConnect, дождется входа в систему, затем исправит маршруты и брандмауэр. Просто запустите скрипт из «терминала».
источник
Сценарий Python в этот предыдущий ответ было полезно, однако, он не заботился о маршрутах, которые AnyConnect использовал для захвата других интерфейсов устройства (таких как интерфейсы VMware). Он также не мог обрабатывать несколько сетей VPN.
Вот скрипт, который я использую:
источник
Скорее всего, ваш администратор должен настроить VPN-подключения для использования локальной маршрутизации для подсетей 10.121. * И 10.122. * И позволить удаленному (вашей домашней машине) маршрутизировать все остальные запросы. (это экономит их пропускную способность и ответственность)
Используете ли вы Cisco VPN-клиент? ОС OS X?
если вы используете VPN в OS X (настраивается через панель настроек сети), вы можете нажать «Дополнительно» и выбрать вкладку «VPN по требованию». затем укажите необходимые подсети для использования VPN.
источник
Вы должны иметь возможность попросить администратора маршрутизатора, к которому вы подключаетесь, создать отдельную «группу», которая выполняет раздельное туннелирование, и предоставить вам файл PCF, который содержит имя группы и пароль группы для этой группы.
источник
У меня была такая же проблема, и я получил эту работу благодаря @mehaase
После создания
~/vpn.sh
в ответ на вопрос @mehaase вы можете поместить это в сценарий автоматизированного запуска приложения, выполнив следующие действия:do shell script "sudo ~/vpn.sh" with administrator privileges
Вам также может понадобиться запустить
chmod 700 ~/vpn.sh
из терминала, чтобы дать сценарию права на выполнение.После подключившись к VPN, вы можете просто запустить этот скрипт приложения. Введите пароль администратора и нажмите ОК - Готово. :)
источник
Я хотел собственное «приложение», которое я мог бы запустить при входе в систему (и продолжать работать / скрыто), чтобы включить маршрутизацию Split Tunnel, аналогично функции Locamatic , Возможно, в какой-то момент я раскошелюсь на Locamatic и поиграюсь с ним. Я также могу загрузить этот AppleScript в Github. Я не хотел связываться с демоном, как этот ответ подсказывает.
Этот сценарий предполагает, что VPN имеет значение по умолчанию
VPN (Cisco IPSec)
имя и VPN-маршрут10.10.10.1/22
& GT;10.10.20.10
, Их нужно будет изменить / добавить дополнительные маршруты. Запустите терминал & gt;netstat -rn
когда VPN подключен (до включения этого скрипта), чтобы увидеть VPN-добавленные маршруты.Этот скрипт также генерирует уведомления в стиле рычания в Центре уведомлений :)
Я столкнулся с некоторыми проблемами с Марк Э. Хаас «s ответ как мой Cisco VPN изменяет существующий шлюз от
UCSc
кUGScI
(специфичный для интерфейса en0) и добавляет шлюз VPN какUCS
маршрут, требующий удаления двух шлюзов по умолчанию и добавления обратно оригиналUGSc
шлюз по умолчаниюСлава Богу, StackExchange / google, это мой первый AppleScript, и я бы не смог собрать его без нескольких часов поиска в Google.
Предложения / исправления / оптимизации приветствуются!
AppleScript ( GitHub Gist ):
сохранить как приложение:
щелкните правой кнопкой мыши & gt; показать содержимое пакета, добавьте в info.plist следующее (это скрывает значок приложения от дока, что требует использования Activity Monitor или терминала & gt;
pkill -f 'Split Tunnel'
чтобы выйти из приложения, пропустите, если вы хотите значок док-станции:создать новую однострочную
routeNOPASSWD
файл (без расширения), используя следующий код точно (это может помешать доступу sudo, если сделано неправильно, Googlevisudo
для получения дополнительной информации - это позволяет командам sudo в AppleScript запускать БЕЗ запроса пароля, пропустите, если вы хотите запросить пароль, когда необходимо изменить таблицу маршрутизации):скопируйте этот файл в
/etc/sudoers.d
выполните следующие команды в терминале (вторая команда запросит пароль - это позволяет
sudo route
команды в AppleScript для запуска БЕЗ запроса пароля, пропустите, если запрос пароля требуется, когда скрипт изменяет таблицу маршрутизации)наконец, добавьте приложение в системные настройки & gt; Пользователи и группы & gt; элементы входа
источник