Як вибірково маршрутизувати мережевий трафік через VPN на Mac OS X Leopard?


96

Я не хочу надсилати весь свій мережевий трафік до VPN, коли я підключений до мережі своєї компанії (через VPN) з дому. Наприклад, коли я працюю з дому, я хотів би мати можливість створити резервну копію всіх моїх файлів у капсулі часу вдома та все ще мати доступ до внутрішньої мережі компанії.

Я використовую вбудований VPN-клієнт Leopard. Я спробував зняти прапорець "Надіслати весь трафік через VPN-з'єднання." Якщо я це зробити, я втрачу доступ до внутрішніх веб-сайтів своєї компанії, будь то через curl або веб-браузер (хоча внутрішні IP-адреси все ще доступні). Було б ідеально, якщо я можу вибірково вибрати набір IP-адрес або доменів, які будуть маршрутизовані через VPN, а решту зберігати у власній мережі. Це досягається завдяки вбудованому VPN-клієнту Leopard? Якщо у вас є рекомендації щодо програмного забезпечення, я також хотів би почути їх.


2
Перше рішення працюватиме лише над VPN VPP. Наступне рішення буде працювати над VPN Cisco (та іншими типами, які не стосуються Cisco) superuser.com/questions/91191/…
dr jimbob

Відповіді:


84

Створіть файл / 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) шлюз для ваших підключень

1
Наконечник Олексія працював на мене. Мені цікаво лише, чи робить перший рядок (#! / Bin / sh) щось. Хіба це не прокоментували. Я прошу це, оскільки описую це для використання в нашій компанії, і чим простіше, тим краще :-) Спасибі, Едгар
Едгар Вірінга

1
@EdgarWieringa: перетворив свою відповідь на коментар. Сподіваюся, що це краще! :)
studiohack

6
@Edgar - ні. Цей перший рядок особливий. en.wikipedia.org/wiki/Shebang_(Unix)
Джеймс Мур

6
10.7 / Лев, мені пощастило з: / 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 / wifi
Gabe Martin-Dempesy

4
Що станеться, якщо у мене налаштовано два або більше VPN-з'єднання? Як я їх розрізняю, /etc/ppp/ip-upщоб я міг додати маршрути відповідно? Чи буде дружнє ім'я VPN передане в якості 6-го аргументу ( ipparam)?
Кал

11

Я хотів зробити подібну справу. Підключіть 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адресу мережі, до якої ви хочете прокласти маршрут. Додаткові мережі можна додати, повторивши заключний рядок з різними адресами.


1
(Незначні доповнення для тих, хто цікавиться цією IP-адресою: так само, як говорив опитувальник, 172.16.0.0/16 - це приватний адресний простір так само, як 10.xxx та 192.168.xx. Отже, він насправді є частиною VPN, а не якийсь зовнішній веб-сайт чи що завгодно.)
Арджан,

1
Так 192.168.1.1це ваш маршрутизатор на VPN чи маршрутизатор в локальній мережі? І чи не потрібно вам встановлювати маршрут за замовчуванням назад до вашої локальної мережі?
Джек М.

8

У Мережевих налаштуваннях на MacOS є прихована функція : ви можете сортувати інтерфейси .

Відкрийте Налаштування системи -> Мережа -> Клацніть gearвнизу ліворуч ->Set service Order...

<code> Встановити замовлення служби ... </code> Замовлення VPN

Важливо, щоб ваші мережеві інтерфейси були відсортовані в порядку, в якому ви хочете їх використовувати. Якщо ви хочете, щоб ВСІ немережеві дані перейшли до VPN, поставте інтерфейс VPN вгорі. Сортувати так

  1. VPN
  2. Ethernet
  3. Аеропорт

Не так:

  1. Аеропорт
  2. Ethernet
  3. VPN

Таким чином, не потрібно перевіряти наступні налаштування в Session Options:

Надіслати весь трафік через VPN-з'єднання

Тестується на L2TP VPNз'єднанні


Я не думаю, що це відповідає на питання, якщо ОП не створює резервну копію до Time Machine через Ethernet і не підключається до мережі мережі компанії Аеропорт (бездротове з'єднання)
Josh Newman

1
Я використовував фокус запуску ppp, але він не працював, поки я не перемістив своє vpn-з'єднання нижче бездротового з'єднання. Це правильна відповідь.
Аросборо

Це дійсно буде головною відповіддю! Велике спасибі, це було б неможливо розібратися!
Андре Соарес

1
Це працює для VPN з L2TP IPSec, але НЕ працює для VPN Cisco IPSec. VPN-адреси Cisco IPSec недоступні у діалоговому вікні "Встановити замовлення на послуги"
goofology

1

Я переглянув Інтернет, щоб побачити, чи можу я щось знайти, і наскільки я можу зрозуміти, ви, здається, хочете користуватися своїм комп'ютером як звичайне, а також можете підключатися до внутрішніх веб-сайтів компанії, тож ви можете потрібно встановити власну таблицю маршрутизації.

Це посилання, мабуть, стосується лише 10.4, але дані командного рядка все ще можуть працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.