44

Я использую несколько сетевых интерфейсов (LAN и Wireless), и я заметил, что есть способ изменить порядок предпочтительных интерфейсов. Как я могу использовать проводную сеть, чтобы работать, проверять электронную почту и т.д. (Безопасно), и использовать беспроводную VLAN для доступа к другим вещам (в противном случае блокируются портами, а иногда и веб-браузером)?

7 ответов7

21

Хитрость заключается в корректировке таблиц маршрутизации (которая не зависит от порта назначения или исходного приложения, но зависит от хоста назначения). Это предполагает, что вы работаете в Linux или OS X (как показывают теги).

Скажем, ваш шлюз по умолчанию - 1.2.3.4, и у вас есть vpn, который может маршрутизировать трафик на 6.7.8.9. Если вы хотите, чтобы ваш почтовый трафик проходил через 6.7.8.9, просто сделайте

sudo route add mail.myserver.com 6.7.8.9

В некоторых версиях маршрута между адресом и следующим прыжком может потребоваться ключевое слово "gw". Если вы хотите создать весь сетевой маршрут для следующего перехода, просто добавьте маску сети в нотации CIDR для пункта назначения, например

sudo route add 192.168.0.0/24 6.7.8.9

Если вы хотите просмотреть существующую таблицу маршрутизации, используйте

netstat -nrl
or
ip route list

Если вы работаете в Windows, "сетевой маршрут" поможет вам в этом, но синтаксис совершенно другой.

6

Если вы просто хотите, чтобы два сетевых адаптера были активны одновременно, вы можете установить порядок обслуживания в Системных настройках / Сеть, выбрав механизм под списком сетевых устройств. Перетащите порядок, в котором вы хотите их.

Например, у меня всегда активны Ether и WiFi на моем MBP с установленным Ether выше Wi-Fi. Поскольку я использую Ether на работе, я настроил этот сетевой адаптер с настройками прокси-сервера и Wi-Fi без него. Когда я иду домой, нет необходимости настраивать какие-либо настройки. Вы также можете сделать это из терминала, используя /usr/bin/networksetup -ordernetworkservices .

Но из-за того, что активное и приложение используют не по умолчанию, мне повезло с немного более легким вращением по совету @ Андора. Если я хочу, чтобы приложение не использовало Ether в моем случае, я устанавливаю настройки прокси для приложения на IP-адрес моего адаптера Wi-Fi. Он будет использовать этот интерфейс для выхода и таким образом обойти прокси-серверы компании и серверы мониторинга. Так что, если Ether имеет адрес 1.2.3.4 и идет до Wi-Fi (5.6.7.8) в сервисном заказе, у меня есть прокси приложения до 5.6.7.8.

4

Для Mac есть простое решение, которое я использую. На самом деле это реализация решения @ Andor. Установите прокси и настройте приложения для его использования:

  1. Я установил SquidMan

  2. В конфигурации добавьте следующую строку. Вам нужно указать ip, который вы будете использовать для своих личных приложений вместо x.x.x.x:

    tcp_outgoing_address x.x.x.x
    
  3. Запустите SquidMan и настройте ваше приложение на использование его в качестве прокси.

Я потратил час, чтобы найти эту информацию на разных страницах, поэтому надеюсь, что это поможет другим сделать это быстрее.

1

Вам, вероятно, придется использовать низкоуровневые функции управления IO (ioctl). Особенно:

ioctl( socket, SIOCGIFADDR, ... ); // Get network interface address

а также

ioctl( socket, SIOCSIFADDR, ... ); // Set network interface address

Смотрите эту справочную страницу для более подробной информации.

1

Проблема в том, что у вас будет несколько шлюзов к вашему сетевому соединению, и это немного сложно для управления ...

У некоторых утилит unix и linux, связанных с сервером или сетью, обычно есть флаг под названием "interface", где вы можете указать, какой интерфейс вы хотите использовать, например, в tcpdump:

tcpdump -i eth0

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

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

1.- Настройка прокси в "незащищенной" (я имею в виду, где политики не применяются) части вашей сети и направление вашего программного обеспечения на этот прокси.

2. Установите SSH-сервер в другом "незащищенном" месте, скажем, у вас дома или на выделенном сервере в Интернете, и откройте соединение с помощью специальной функции SSH, которая создает прокси-сервер socks:

ssh -D 1234 user@host

Это создаст на вашем компьютере прокси-сервер socks на порту "1234", который будет подключаться к вашему "хосту", используя вашего "пользователя", и выходить в Интернет через соединение, которое имеет ваш "хост" ... Затем в локальном программном обеспечении вам нужно всего лишь открыть инструменты настройки прокси и указать localhost:1234.

Хорошие трюки, чтобы избежать корпоративных интернет-политик:P

:D

1

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

Все, что работает внутри виртуальной машины, теперь жестко связано с портом Ethernet. Wi-Fi - мое предпочтительное соединение для всех других приложений (за пределами виртуальной машины), если у меня подключено соединение WiFi.

Я считаю, что существуют утилиты, которые можно использовать для принудительной привязки приложения к определенному порту Ethernet, но не исследовали его для MacOS.

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

0

Несмотря на то, что этот вопрос относится к OSX, я оставлю здесь следующее, которое работает на Windows 7 64-битной. Этот вопрос был признан одним из лучших результатов при поиске приложений, заставляющих приложения проходить через определенный адаптер, поэтому следующее может быть полезным для других.

http://www.howtogeek.com/117890/how-to-force-an-application-to-use-a-specific-network-card/

В приведенном выше руководстве используется утилита ForceBindIp, которая объявлена для работы в Windows NT/2000/XP/2003 но у меня не возникло проблем с тем, чтобы она работала в Windows 7 - 64 Bit.

Также проблемы с ForceBindIP в Windows 7 (x64)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .