Как выборочно маршрутизировать сетевой трафик через VPN на Mac OS X Leopard?

Я не хочу отправлять весь свой сетевой трафик в VPN, когда я подключен к сети моей компании (через VPN) из дома. Например, когда я работаю из дома, я хотел бы иметь возможность делать резервные копии всех своих файлов в Time Capsule дома и по-прежнему иметь доступ к внутренней сети компании.

Я использую встроенный VPN-клиент Leopard. Я пытался снять флажок "Отправить весь трафик через VPN-соединение". Если я сделаю это, я потеряю доступ к внутренним веб-сайтам моей компании, будь то через curl или веб-браузер (хотя внутренние IP-адреса все еще доступны). Было бы идеально, если бы я мог выборочно выбрать набор IP-адресов или доменов для маршрутизации через VPN, а остальные оставить в своей собственной сети. Это достижимо с помощью встроенного VPN-клиента Leopard? Если у вас есть какие-либо рекомендации по программному обеспечению, я бы тоже хотел их услышать.

5 ответов

Решение

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

В настройках сети на MacOS есть скрытая функция: вы можете сортировать интерфейсы.

Откройте Системные настройки -> Сеть -> Нажмите gear внизу слева -> Set service Order...

Очень важно, чтобы ваши сетевые интерфейсы были отсортированы в том порядке, в котором вы хотите их использовать. Если вы хотите, чтобы ВСЕ данные, не относящиеся к локальной сети, передавались в VPN, поместите интерфейс VPN наверх. Сортировать как это

  1. VPN
  2. Ethernet
  3. аэропорт

Не так:

  1. аэропорт
  2. Ethernet
  3. VPN

Таким образом, нет необходимости проверять следующие настройки в Session Options:

Отправить весь трафик через VPN-соединение

✅ Проверено на L2TP VPN соединение

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

Единственное правильное решение для MacOS — использоватьnetworksetup:

Сначала найдите имя вашей VPN-сети.

      $ networksetup -listnetworkserviceorder

Далее настроим дополнительные маршруты

      $ networksetup -setadditionalroutes networkservice [dest1 mask1 gate1] [dest2 mask2 gate2] ... [destN maskN gateN]

Пример:

      $ networksetup -setadditionalroutes "my vpn network name" 10.100.1.0 255.255.255.0 10.100.1.1 10.100.2.0 255.255.255.0 10.100.2.1

Проверьте эти настройки:

      $ networksetup -getadditionalroutes "my vpn network name"
10.100.1.0 255.255.255.0 10.100.1.1
10.100.2.0 255.255.255.0 10.100.2.1

Чтобы удалить эти настройки, просто установите их без адресов:

      $ networksetup -setadditionalroutes "my vpn network name"

Я посмотрел в Интернете, чтобы узнать, смогу ли я найти что-нибудь, и, насколько я понимаю, вы, похоже, хотите иметь возможность использовать ваш компьютер как обычно, а также иметь возможность подключаться к внутренним веб-сайтам компании, так что вы можете нужно настроить пользовательскую таблицу маршрутизации.

Эта ссылка, по- видимому, относится только к 10.4, но материал командной строки все еще может работать.

Другие вопросы по тегам