Как заставить определенные веб-адреса использовать определенный сетевой адаптер в Mac OS X?

16

У меня есть два интернет-соединения на работе, мое проводное соединение Ethernet (которое сильно отфильтровано за брандмауэром, не может подключиться к Apple Updates и т. Д.) И беспроводное соединение, которое не отфильтровано. Я использую беспроводное соединение в качестве основного, чтобы все работало. Однако у меня есть некоторые ресурсы интрасети, к которым мне нужно получить доступ только через проводное соединение. Как я могу настроить его так, чтобы при посещении чего-то вроде «intranet.mycompany.com» оно автоматически направлялось на проводной сетевой адаптер?

JacobJ
источник

Ответы:

10

Вам необходимо добавить маршрут вручную, чтобы охватить все корпоративные сети. Найдите наименьший сетевой блок, который будет охватывать все корпоративные IP-адреса. Например, корпоративная сеть может полностью находиться в диапазоне 172.16.22.XXX—172.16.25.XXX. Таким образом, ваш сетевой блок будет 172.16.16.0/20:

/sbin/route add -net 172.16.16.0/20 -interface en0

Обратите внимание, что на моей машине en0 - это Ethernet, en1 - это AirPort.

У меня есть скрипт, который настраивает несколько маршрутов для моей локальной ситуации, которая представляет собой корпоративную сеть для всех корпоративных вещей (табели рабочего времени, приложения для выхода, отчеты о состоянии и безопасности на рабочем месте и т. Д.), С WiFi для полезных вещей (Bing, O «Рейли Сафари и т. Д.). Я до сих пор не понял, где мне нужно поместить этот скрипт, чтобы Mac OS X автоматически добавляла тайные маршруты, которые мне нужны, когда появляется интерфейс.

ManicDee
источник
Еще одно замечание: если вы безрассудно испортили свою таблицу маршрутизации, как я (и больше не можете получить к ней доступ), запустите route -n flushнесколько раз, затем переключите ваше сетевое местоположение на что-то другое и вернитесь, чтобы получить обычную информацию о маршрутизации.
geerlingguy
У меня также есть эта проблема, но нужно сделать наоборот, и направлять только трафик на * .apple.com через Wi-Fi, а все остальное через Ethernet. Можно ли использовать для этого инструмент маршрута?
TraxusIV
Как мне сделать этот бит «Найти наименьший сетевой блок, который будет охватывать все корпоративные IP-адреса». пожалуйста?
Рафаэль Оливейра
Сетевой блок определяется количеством старших битов. В приведенном выше примере сетевой блок 172.16.16.0/20 означает «первые 20 бит IP-адреса должны совпадать с 172.16.16» - 20 означает, что вы «И» IP-адрес с 11111111.11111111.11110000.0000000 ', чтобы получить 20 старших бит, а затем сравнивают этот результат с 10101100.00010000.00010000.00000000. Если вы знаете, что для вашей корпоративной сети существует определенный диапазон, вам нужно найти самую длинную строку двоичных цифр, которая является общей для этих двух.
ManicDee
Я не могу отблагодарить вас за это! Я попробовал много других предложений, это не сработало. Это избавило меня от необходимости переключаться между интерфейсами во время работы в корпоративной среде! : D
DazChong
4

Вы можете настроить свой Заказ на обслуживание сети для прохождения большей части трафика через Wi-Fi или Ethernet.

Это делает предпочитаемое соединение тем сервисом, который вы ставите вверху списка. К сожалению, если вы хотите, чтобы большая часть информации проходила через Wi-Fi, за исключением очень специфических элементов, это не сработает. Если соединение Ethernet использует диапазон сети IP, отличный от Wi-Fi, то оно автоматически пропустит необходимые ресурсы через Ethernet.

Итак, допустим, у вас есть сеть волков. Wi-Fi: 192.168.1.0-192.168.1.255 Ethernet: 192.168.5.0-192.168.5.255

Любые службы, к которым вам нужно получить доступ, имеющие запись DNS, указывающую на 192.168.5.x, будут автоматически проходить через Ethernet, но ваш запрос DNS все равно будет переходить на 192.168.1.x

Любые другие веб-сайты, которые вы посещаете, будут проходить через Wi-Fi, если Wi-Fi как наверху.

Чтобы изменить сервисный заказ, зайдите в Системные настройки-> Сеть. Нажмите на меню «Действие» (шестерёнка внизу списка сервисов) и выберите «Установить сервисный заказ». Затем перетащите сервис, для которого вы хотите иметь приоритет, в верхнюю часть списка.

Филипп Боши
источник
Да, у меня уже установлен сервисный заказ, но я ищу способ изменить таблицы маршрутизации для определенных элементов. В Windows я бы использовал консольную команду route add. Я ищу что-то похожее на Mac.
JacobJ
Я знаю, что можно добавить таблицы маршрутизации в OS X, поскольку она построена на основе Unix, и я слышал, что люди делают это. Но я не знаю как. Попробуйте прибегнуть к помощи CLI таблицы маршрутизации OpenBSD. Это должно рассказать вам, как управлять таблицами маршрутизации через командную строку. Если ничего не найдешь, дай мне знать, и я посмотрю.
Филипп Боши