Принудительное использование приложением определенного сетевого интерфейса

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

16
задан Kami
29.11.2022 12:57 Количество просмотров материала 3426
Распечатать страницу

7 ответов

хитрость заключается в настройке таблиц маршрутизации (которая не зависит от порта назначения или исходного приложения, но зависит от целевого хоста). Это предполагает, что вы находитесь на 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, "net route" поможет вам большую часть пути, но синтаксис совершенно другой.

20
отвечен Tim Hatch 2022-11-30 20:45

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

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

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

6
отвечен SaxDaddy 2022-11-30 23:02

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

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

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

    tcp_outgoing_address x.x.x.x
    
  3. запустить SquidMan и настроить приложение, чтобы использовать его в качестве полномочие.

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

2
отвечен matrik 2022-12-01 01:19

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

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

и

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

See этот человек страницы для более подробной информации.

1
отвечен 2022-12-01 03:36

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

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

tcpdump -i eth0

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

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

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

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

ssh -D 1234 user@host

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

Ницца уловки для избежания корпоративной интернет-политики: P

: D

1
отвечен Andor 2022-12-01 05:53

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

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

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

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

1
отвечен Rich 2022-12-01 08:10

хотя этот вопрос для 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 бит.

и проблемы с ForceBindIP на Windows 7 (x64)

0
отвечен Ashutosh Jindal 2022-12-01 10:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх