Как выборочно маршрутизировать сетевой трафик через VPN на Mac OS X Leopard?
96336
newtonapple
Я не хочу отправлять весь мой сетевой трафик в VPN, когда я подключен к сети моей компании (через VPN) из дома. Например, когда я работаю из дома, я хотел бы иметь возможность делать резервные копии всех своих файлов в Time Capsule дома и по-прежнему иметь доступ к внутренней сети компании.
Я использую встроенный VPN-клиент Leopard. Я пытался снять флажок «Отправить весь трафик через VPN-соединение». Если я сделаю это, я потеряю доступ к внутренним веб-сайтам моей компании, будь то через curl или веб-браузер (хотя внутренние IP-адреса все еще доступны). Было бы идеально, если бы я мог выборочно выбрать набор IP-адресов или доменов для маршрутизации через VPN, а остальные оставить в своей собственной сети. Это достижимо с помощью встроенного VPN-клиента Leopard? Если у вас есть какие-либо рекомендации по программному обеспечению, я бы тоже хотел их услышать.
Первое решение будет работать только на PPP VPN. Следующее решение будет работать в Cisco VPN (и других типах, не относящихся к Cisco) http://superuser.com/questions/91191/how-to-force-split-tunnel-routing-on-mac-to-a- сиг-VPN
dr jimbob 10 лет назад
2
Создайте файл / etc / ppp / ip-up со следующим содержимым:
#!/bin/sh /sbin/route add <SUBNET> -interface $1
заменяя <SUBNET>подсеть, вы хотите маршрутизировать через VPN (например, 192.168.0.0/16)
выполнить от имени пользователя root:
chmod 0755 /etc/ppp/ip-up
Этот файл будет выполняться каждый раз, когда вы подключаетесь к VPN.
Параметры, данные для скрипта:
$1: Интерфейс VPN (например ppp0)
$2Неизвестно, было 0в моем случае
$3: IP VPN-сервера
$4: Адрес VPN-шлюза
$5: Обычный (не vpn) шлюз для ваших локальных сетей
Кончик Алексея работал на меня. Мне только интересно, что делает первая строка (#! / Bin / sh). Разве это не закомментировано. Я спрашиваю об этом, так как я описываю это для использования в нашей компании, и чем проще, тем лучше :-) Спасибо, Эдгар
Edgar Wieringa 13 лет назад
1
@EdgarWieringa: преобразовал ваш ответ в комментарий. Надеюсь, это лучше! :)
studiohack 13 лет назад
1
@ Эдгар - нет. Эта первая строка особенная. http://en.wikipedia.org/wiki/Shebang_(Unix)
James Moore 13 лет назад
6
Джеймс прав, но, конечно, в случае сценария оболочки это не обязательно. Если шебанга нет, ОС все равно отправит его в оболочку. :-)
Benson 13 лет назад
0
На 10.7 / Lion мне повезло больше с: / sbin / route add 172.16.0.0/16 -interface $ 1 Аргументы, которые я видел при получении ip-up: $ 1 = интерфейс VPN, например, 'ppp0' $ 2 = '0' (не уверен, что это значение) $ 3 = ваш VPN IP $ 4 = IP-адрес публичного шлюза VPN $ 5 = обычный шлюз по умолчанию для Ethernet / Wi-Fi
Gabe Martin-Dempesy 12 лет назад
6
Интересно ... Будет ли этот метод работать со встроенным VPN на взломанном устройстве iOS? Я всегда чувствую себя грязно, возиться с `/ etc` на моем iPad.
mralexgray 11 лет назад
0
Это прекрасно работает на Льва. Я боролся с этим в течение нескольких дней. Спасибо, Алексей.
Anriëtte Myburgh 11 лет назад
0
Горный лев, кажется, те же параметры, -интерфейс $ 1, а также всего $ 4 должно работать хорошо
tutuDajuju 11 лет назад
0
Что произойдет, если у меня настроено два или более VPN-подключений? Как мне отличить их в `/ etc / ppp / ip-up`, чтобы я мог добавить маршруты соответственно? Будет ли передано дружественное имя VPN в качестве шестого аргумента (`ipparam`)?
Kal 10 лет назад
3
Сэкономил здесь время :)
Hatem Alimam 9 лет назад
0
Параметры от $ 1 до $ 5, которые немного отличаются для OS X 10.9, которая имеет $ 6, можно найти на вашей странице man pppd: `$ man -P 'less -p" / etc / ppp / ip-up "' pppd `
Pro Backup 8 лет назад
1
Работает на Yosemite как ответил, и удаляет маршруты после отключения. Ницца!
Zayne S Halsall 8 лет назад
0
По какой-то причине мне пришлось снова запустить chmod, я исправил это некоторое время назад, но перестал работать. Запуск chmod исправил это снова.
Anriëtte Myburgh 8 лет назад
0
`/ etc / ppp / ip-up` не вызывается в моей системе; MacOS `10.13`. Я сделал похожий скрипт, который регистрирует выполнение, у него есть владелец `root: staff` и мод` 0755`. Вызов его вручную выполняет скрипт. Мое VPN-соединение представляет собой «L2TP over IPSec», а для «Configure IPv4» установлено значение «Using PPP». Я `tail -f` логов и Подключение или отключение vpn ничего не делает с` / etc / ppp / ip-up`.
GabLeRoux 7 лет назад
1
Я сделал суть с моим сценарием регистрации здесь: https://gist.github.com/GabLeRoux/c7d4c9046d9b5ec7bce822426613912a, дайте мне знать, если кто-то знает решение. По крайней мере мне удалось пропустить «Отправить весь трафик через VPN-соединение» со следующим ответом: https://superuser.com/a/121259/55267
GabLeRoux 7 лет назад
0
Это по-прежнему позволяет мне подключаться к устройствам в моей локальной сети, но больше не позволяет использовать DNS в моей локальной сети. Таким образом, я могу пропинговать 192.168.0.1, но я не могу пропинговать myfirewall. (Даже если я использую «ping myfirewall.mylan.lan» с mylan.lan в качестве поискового домена в моих настройках, и в настройках настроен 192.168.0.1 в качестве первого DNS-сервера.)
Tango 5 лет назад
0
9
Martin Hilton
Я хотел сделать подобное. Подключите VPN, а затем направьте дополнительную сеть через этот VPN. Я закончил со следующим битом Applescript:
-- Connect Work VPN tell application "System Events" tell network preferences tell current location tell service "Work" connect tell current configuration repeat until get connected = true delay 1 end repeat end tell end tell end tell end tell end tell set gateway to "192.168.1.1" do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges
Вам нужно изменить "Work"имя вашего VPN-подключения, 192.168.1.1адрес вашего шлюза и 172.16.0.0/16адрес сети, в которую вы хотите направить маршрут. Дополнительные сети могут быть добавлены путем повторения последней строки с другими адресами.
(Незначительное добавление для тех, кто интересуется этим IP-адресом: так же, как говорил вопросивший, 172.16.0.0/16 - это личное адресное пространство, такое же, как 10.xxx и 192.168.xx Итак, на самом деле это часть VPN, а не какой-то внешний веб-сайт или что-то еще.)
Arjan 15 лет назад
1
Итак, `192.168.1.1` - это ваш маршрутизатор в VPN или маршрутизатор в локальной сети? И вам не нужно устанавливать маршрут по умолчанию обратно в вашу локальную сеть?
Jack M. 14 лет назад
1
7
GabLeRoux
В настройках сети на MacOS есть скрытая функция : вы можете сортировать интерфейсы .
Откройте Системные настройки -> Сеть -> Нажмите gearвнизу слева ->Set service Order...
Очень важно, чтобы ваши сетевые интерфейсы были отсортированы в том порядке, в котором вы хотите их использовать. Если вы хотите, чтобы ВСЕ данные, не относящиеся к локальной сети, передавались в VPN, поместите интерфейс VPN наверх. Сортировать как это
VPN
Ethernet
аэропорт
Не так:
аэропорт
Ethernet
VPN
Таким образом, нет необходимости проверять следующие настройки в Session Options:
Отправить весь трафик через VPN-соединение
✅ Проверено на L2TP VPNсоединение
Я не думаю, что это отвечает на вопрос, если OP не выполняет резервное копирование в Time Machine через Ethernet и подключение к сети компании. Аэропорт (беспроводное соединение)
Josh Newman 14 лет назад
0
Я использовал трюк запуска ppp, но он не работал, пока я не переместил свое соединение vpn ниже беспроводного соединения. Это правильный ответ.
Arosboro 12 лет назад
1
Это действительно будет главный ответ! Большое спасибо, было бы невозможно понять!
Andre Soares 8 лет назад
0
Это работает для L2TP IPSec VPN, но НЕ работает для Cisco IPSec VPN. Cisco IPSec VPN недоступны в диалоговом окне «Установить порядок обслуживания»
goofology 6 лет назад
0
1
Alexis Hirst
Я посмотрел в Интернете, чтобы узнать, смогу ли я найти что-нибудь, и, насколько я понимаю, вы, похоже, хотите иметь возможность использовать ваш компьютер как обычно, а также иметь возможность подключаться к внутренним веб-сайтам компании, так что вы можете нужно настроить пользовательскую таблицу маршрутизации.
Эта ссылка, по- видимому, применима только к 10.4, но материал командной строки все еще может работать.