Комментарии 32
Автор, вы мой герой! Работаю удаленно, по VPN подключаюсь к рабочей сети. Все было хорошо, но недавно зачем-то заблокировали все исходящие SMTP соединения из локальной сети в интернет (видимо чтоб вирусы спам не слали). Чтобы отправить почту через Gmail приходилось либо отключать VPN либо пользоваться веб-интерфейсом =(
Читал на буржуйских сайтах какие то кривые решения, которые судя по отзывам работали через раз, поэтому не захотел даже с ними морочиться.
Попробую сделать по вашему рецепту, надеюсь все получиться! Кстати укажите, на какой версии Mac OS вы это все проверяли
Читал на буржуйских сайтах какие то кривые решения, которые судя по отзывам работали через раз, поэтому не захотел даже с ними морочиться.
Попробую сделать по вашему рецепту, надеюсь все получиться! Кстати укажите, на какой версии Mac OS вы это все проверяли
Пробуйте, пишите вопросы — допишу к главному посту.
версия 10.6.2, но работать будем на любом макос, возможны вариации с местом размещения конфигов ppp
версия 10.6.2, но работать будем на любом макос, возможны вариации с местом размещения конфигов ppp
Все получилось, еще раз спасибо!
Несколько замечаний
> 1. поставить галочку «Слать весь трафик через VPN подключение»
галочку надо не поставить, а убрать
> создал файл для логов: touch: /tmp/ppp.log
двоеточие после touch конечно же лишнее
Несколько замечаний
> 1. поставить галочку «Слать весь трафик через VPN подключение»
галочку надо не поставить, а убрать
> создал файл для логов: touch: /tmp/ppp.log
двоеточие после touch конечно же лишнее
Пожалуйста.
По замечаниям:
1. перечитайте — это варианты как пользоватся ВПНОМ, тоесть ИЛИ слать весь трафик в подключение ИЛИ прописывать руками рауты
мое решение позволяет не слать все и не прописывать руками
2. Ошибку поправляю, спасибо.
По замечаниям:
1. перечитайте — это варианты как пользоватся ВПНОМ, тоесть ИЛИ слать весь трафик в подключение ИЛИ прописывать руками рауты
мое решение позволяет не слать все и не прописывать руками
2. Ошибку поправляю, спасибо.
При включенной галке «Слать весь трафик через VPN подключение» даже с вашими скриптами у меня весь трафик идет через VPN, что и не удивительно система добавляет свой маршрут по умолчанию через VPN. Так что чтоб эти манипуляции имели смысл — галку мне приходится снимать.
А где можно прочитать про такие фишки? Чтоб самому уметь подобное.
Хороший, а главное полезный пост, спасибо!
Спасибо.
Вот он какой Mac-way…
Вот он какой Mac-way…
про /etc/ppp/ip-* конечно интересно, но по хорошему маршруты в рабочую сеть должны передаваться впн-сервером
Вот-вот, и костылей таких не будет
Так и передается, как default router, директор например юзает интернет по ВПН через работу, лично у меня дома интернет в разы шустрее…
Или наоборот — на работе выдается только на рабочие адреса маршрут, а мне как-бы и в интернет надо…
такое… это инструмент
Или наоборот — на работе выдается только на рабочие адреса маршрут, а мне как-бы и в интернет надо…
такое… это инструмент
И какие проблемы?
Если вы внутри сети, то вам VPN и не нужен. Если вы снаружи, то маршруты в частную сеть должны приходить с VPN-сервера.
Если вы внутри сети, то вам VPN и не нужен. Если вы снаружи, то маршруты в частную сеть должны приходить с VPN-сервера.
Есть третий вариант. Без прописывания руками и без посыла всего в VPN.

Вот таблица маршрутизации в результате:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 47 105 en1
default 194.125.ХХ.ХХ UGScI 0 0 ppp0
10.0.1/24 link#5 UCS 4 0 en1
[---snip---]
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 2 110337 lo0
192.168.10 ppp0 USc 2 0 ppp0
[---snip---]
194.125.ХХ.ХХ 10.0.1.1 UGHS 449 479 en1
И по строчкам:
1. Маршрут по умолчанию в интернет (айрпорт)
2. Маршрут по умолчанию в интернет (через впн)
3. Локальная сеть дома
— пропущено — 4,5. локалхост :)
6. локальная сеть на работе
— пропущено — 7. маршрут до гейта на работе
Всё что нужно — перетащить соединения в свойствах сети в нужном порядке. Это также может быть актуально когда у вас два соединения к локальной сети. Например, я работаю в основном по WiFi, но для копирования больших файлов подключаю Ethernet, он у меня выше приоритетом чем WiFi — копирование идет через него (правда текущие соединения разрываются из-за смены маршрута).

Вот таблица маршрутизации в результате:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 47 105 en1
default 194.125.ХХ.ХХ UGScI 0 0 ppp0
10.0.1/24 link#5 UCS 4 0 en1
[---snip---]
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 2 110337 lo0
192.168.10 ppp0 USc 2 0 ppp0
[---snip---]
194.125.ХХ.ХХ 10.0.1.1 UGHS 449 479 en1
И по строчкам:
1. Маршрут по умолчанию в интернет (айрпорт)
2. Маршрут по умолчанию в интернет (через впн)
3. Локальная сеть дома
— пропущено — 4,5. локалхост :)
6. локальная сеть на работе
— пропущено — 7. маршрут до гейта на работе
Всё что нужно — перетащить соединения в свойствах сети в нужном порядке. Это также может быть актуально когда у вас два соединения к локальной сети. Например, я работаю в основном по WiFi, но для копирования больших файлов подключаю Ethernet, он у меня выше приоритетом чем WiFi — копирование идет через него (правда текущие соединения разрываются из-за смены маршрута).
как вариант, просто у меня дома домашний макос про + ноутбук макос, + часто айфон тыкаю или модем какой-то чужей — следить за приоритетами в настройках нет времени — вот мое решение…
будет ли данный способ работать не для штатного Mac OS VPN клиента, а с Cisco VPN клиента? или нет никакой разницы?
я не разбираюсь во всех тонкостях, но если проблема касаеться именно этого
то могу подсказать, как у меня реализовано.
В script Editor-е вбиваем
set LF to ASCII character 10
set yourScr1 to «route add -net 172.16.0.0 -netmask 255.255.0.0 172.16.39.254»
set yourScr2 to «route add 192.168.96.0 -netmask 255.255.224.0 172.16.39.254»
set yourScr3 to «route add 192.168.128.0 -netmask 255.255.128.0 172.16.39.254»
set passwordStr to «YOUR_Password» as string
set sudoScr to «sudo » & yourScr1 & "; sudo " & yourScr2 & "; sudo " & yourScr3 & "; sudo -k"
do shell script «sudo -v» & " << ++" & LF & passwordStr & LF
do shell script sudoScr
в примере у меня вписано несколько маршрутов, 172.16.39.254 — шлюз.
Сохраняем как приложение и добавляем в автозагрузку.
В Тигре было попроще — я просто в автоматоре вбивал shell-скрипт (например: sudo route add -net 192.168.10.0/24 192.168.44.1 ) и добавлял в автозагрузку, а в лео такая схема у меня не срабатывала
2. статически прописать статически route add -net 192.168.10.0/24 192.168.44.1, где 192.168.10.0/24 — сеть в которой находятся компьютеры на работе, 192.168.44.1 VPN шлюз к которому я подключаюсб.
Итак после каждого подключения нужно делать вторую манипуляцию, так как общий доступ в интернет ограничен и скорость не ахты.
то могу подсказать, как у меня реализовано.
В script Editor-е вбиваем
set LF to ASCII character 10
set yourScr1 to «route add -net 172.16.0.0 -netmask 255.255.0.0 172.16.39.254»
set yourScr2 to «route add 192.168.96.0 -netmask 255.255.224.0 172.16.39.254»
set yourScr3 to «route add 192.168.128.0 -netmask 255.255.128.0 172.16.39.254»
set passwordStr to «YOUR_Password» as string
set sudoScr to «sudo » & yourScr1 & "; sudo " & yourScr2 & "; sudo " & yourScr3 & "; sudo -k"
do shell script «sudo -v» & " << ++" & LF & passwordStr & LF
do shell script sudoScr
в примере у меня вписано несколько маршрутов, 172.16.39.254 — шлюз.
Сохраняем как приложение и добавляем в автозагрузку.
В Тигре было попроще — я просто в автоматоре вбивал shell-скрипт (например: sudo route add -net 192.168.10.0/24 192.168.44.1 ) и добавлял в автозагрузку, а в лео такая схема у меня не срабатывала
В какую автозагрузку? при VPN-ppp подключении возможна лишь автозагрузка из /etc/ppp/peers/$NameOfConnection или скриптом /etc/ppp/ip-up
Если вы говорите про автозагрузку при включении MacOs то, не знаю как у вас работает, а у меня система ругается если я хочу прописать route add 192.168.96.0 -netmask 255.255.224.0 172.16.39.254, так как адреса 172.16.39.254, соответственно и шлюза по этому адресу и ИНТЕРФЕЙСА в системе не существует. Верней должно ругатся и во-всех Unix системах так и происходит. В макОс у меня такой раут повесился на en0 интерфейс, соответственно при VPN подключении к такому шлюзу интерфейс в таблице маршрутизации изменится? Проверить возможности нет.
Спасибо.
Если вы говорите про автозагрузку при включении MacOs то, не знаю как у вас работает, а у меня система ругается если я хочу прописать route add 192.168.96.0 -netmask 255.255.224.0 172.16.39.254, так как адреса 172.16.39.254, соответственно и шлюза по этому адресу и ИНТЕРФЕЙСА в системе не существует. Верней должно ругатся и во-всех Unix системах так и происходит. В макОс у меня такой раут повесился на en0 интерфейс, соответственно при VPN подключении к такому шлюзу интерфейс в таблице маршрутизации изменится? Проверить возможности нет.
Спасибо.
да, в автозагрузку системы.
в примере я описывал свою сеть и свой шлюз соответственно
для вашего случая будет примерно такое:
set LF to ASCII character 10
set yourScr1 to «route add -net 192.168.10.0/24 192.168.44.1»
set passwordStr to «YOUR_Password» as string
set sudoScr to «sudo » & yourScr1 & "; sudo -k"
do shell script «sudo -v» & " << ++" & LF & passwordStr & LF
do shell script sudoScr
аккуратнее с кавычками, хабр автоматом меняет на «»
в примере я описывал свою сеть и свой шлюз соответственно
для вашего случая будет примерно такое:
set LF to ASCII character 10
set yourScr1 to «route add -net 192.168.10.0/24 192.168.44.1»
set passwordStr to «YOUR_Password» as string
set sudoScr to «sudo » & yourScr1 & "; sudo -k"
do shell script «sudo -v» & " << ++" & LF & passwordStr & LF
do shell script sudoScr
аккуратнее с кавычками, хабр автоматом меняет на «»
А что делать в случае, если шлюз имеет динамически выделяемый IP-адрес?
На протяжении многих лет, с каждым новым рабочим маком мне так хочется поставить вам плюс в карму! :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Маршрутизация в Mac OS при VPN подключении