Força um aplicativo a usar uma interface de rede específica

41

Estou usando várias interfaces de rede (LAN e sem fio) e notei que existe uma maneira de alterar a ordem das interfaces preferidas. Como posso usar a rede com fio para fazer o trabalho, verificar e-mail e assim por diante (com segurança) e usar a VLAN sem fio para acessar outras coisas (de outra forma bloqueadas por portas e às vezes websense)?

    
por Kami 02.05.2009 / 20:42

7 respostas

20

O truque é ajustar as tabelas de roteamento (que não dependem da porta de destino ou do aplicativo de origem, mas dependem do host de destino). Isso pressupõe que você esteja no Linux ou no OS X (como as tags mostram).

Digamos que seu gateway padrão seja 1.2.3.4 e você tenha uma vpn que possa rotear o tráfego em 6.7.8.9. Se você quiser que seu tráfego de e-mail seja direcionado para o 6.7.8.9, faça

sudo route add mail.myserver.com 6.7.8.9

Algumas versões do percurso podem exigir uma palavra-chave "gw" entre o endereço e o próximo salto. Se você quiser fazer uma rota de toda a rede sobre o próximo salto, basta adicionar uma máscara de rede na notação CIDR para o destino, como

sudo route add 192.168.0.0/24 6.7.8.9

Se você quiser ver a tabela de roteamento existente, use

netstat -nrl
or
ip route list

Se você estiver no Windows, "net route" vai te levar até lá, mas a sintaxe é totalmente diferente.

    
por 17.10.2009 / 08:25
6

Se você quer apenas ter duas NICs ativas ao mesmo tempo, você pode definir a Ordem de Serviço em Preferências do Sistema / Rede, escolhendo a engrenagem abaixo da lista de dispositivos de rede. Arraste e solte a ordem em que você deseja.

Por exemplo, tenho Ether e WiFi sempre ativos no meu MBP com Ether definido acima de Wi-Fi. Como uso o Ether no trabalho, configurei essa NIC com configurações de proxy e sem o meu Wi-Fi. Quando vou para casa, não há necessidade de ajustar as configurações. Você também pode fazer isso a partir do terminal usando /usr/bin/networksetup -ordernetworkservices .

Mas, por ter ativos e um aplicativo usando o não-padrão, tive sorte com um giro um pouco mais fácil no conselho do @ Andor. Se eu quiser que um aplicativo não use Ether no meu caso, defino as configurações de proxy do aplicativo para o endereço IP do meu adaptador wi-fi. Ele usará essa interface para sair e ignorar o proxy da empresa e os servidores de monitoramento. Portanto, se o Ether tiver um endereço 1.2.3.4 e vier antes do Wi-Fi (5.6.7.8) na ordem de serviço, eu tenho o proxy do meu aplicativo em 5.6.7.8.

    
por 22.11.2012 / 01:12
1

Você provavelmente precisará usar as funções de controle de E / S de baixo nível (ioctl). Em particular:

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

e

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

Veja esta página man para mais detalhes.

    
por 02.05.2009 / 21:08
1

O problema é que você terá vários gateways para sua conexão de rede, e isso é um pouco difícil de gerenciar ...

Algumas ferramentas unix e linux relacionadas a servidor ou rede geralmente têm um flag chamado "interface", onde você pode dizer qual interface você quer usar, como no tcpdump, por exemplo:

tcpdump -i eth0

Mas, como acho que você está perguntando sobre roteamento de software de desktop padrão, isso fica um pouco mais difícil ...

Eu posso te dizer um truque para isso de qualquer maneira ... Minha correção usual para lidar com esses problemas é usar um proxy e ter apenas um gateway. Quase todos os softwares que usam a Internet hoje em dia têm opções para configurar um proxy, portanto, você pode fazer isso de qualquer maneira:

1.- Configurando um proxy na parte "não segura" (ou seja, onde as políticas não são aplicadas) de sua rede e apontando seu software para esse proxy.

2.- Configurando um servidor SSH em outro lugar "inseguro", digamos, sua casa, ou um servidor dedicado que você tem na internet, e abrindo uma conexão através de um recurso especial que o SSH cria um servidor proxy socks:

ssh -D 1234 user@host

Isso criaria no seu computador um servidor proxy socks na porta "1234", que se conectaria ao seu "host", usando seu "usuário", e acessaria a Internet através da conexão que seu "host" possui. Então, em seu software local, você só precisa abrir as ferramentas de configuração de proxy e apontar para localhost: 1234.

Nice truques para evitar políticas de internet corporativa: P

: D

    
por 05.05.2009 / 14:11
1

Eu executo meus aplicativos de negócios dentro de uma máquina virtual. Usei as instruções acima para definir WiFi como minha conexão preferida e, em seguida, configurei a máquina virtual para usar a porta Ethernet como um adaptador "em ponte".

Qualquer coisa que esteja sendo executada na máquina virtual agora é vinculada à porta ethernet. O WiFi é a minha conexão preferida para todos os outros aplicativos (fora da máquina virtual), desde que eu tenha uma conexão WiFi conectada.

Acredito que existam utilitários que podem ser usados para forçar a ligação de um aplicativo a uma porta Ethernet específica, mas não o pesquisaram para o MacOS.

O método de roteamento mencionado anteriormente é um tanto complexo para o "leigo", mas também parece ser uma boa abordagem viável, especialmente se você receber repetidamente o mesmo endereço IP em suas conexões.

    
por 01.05.2013 / 23:21
1

Para o Mac, existe uma solução simples que eu uso. Na verdade, é uma implementação da solução da @ Andor. Instale um proxy e configure seus aplicativos para usá-lo:

  1. Eu instalei o SquidMan

  2. Na configuração, adicione a seguinte linha. Você precisa especificar o ip que você usará para seus aplicativos particulares em vez de x.x.x.x :

    tcp_outgoing_address x.x.x.x
    
  3. Inicie o SquidMan e configure seu aplicativo para usá-lo como proxy.

Eu passei uma hora para encontrar essas informações em diferentes páginas, então espero que ajude outras pessoas a fazer isso mais rápido.

    
por 26.01.2014 / 17:21
0

Embora essa questão seja para o OSX, deixarei aqui o seguinte, que funciona no Windows 7 de 64 bits. Esta questão surgiu como um dos principais resultados quando pesquisei força aplicativos passem por um adaptador específico , portanto, o seguinte pode ser útil para outras pessoas.

link

O guia acima usa um utilitário chamado ForceBindIp que é anunciado para funcionar em Windows NT/2000/XP/2003 , mas não tive problemas fazendo com que funcione no Windows 7 - 64 Bit.

Além disso, Problemas com o ForceBindIP no Windows 7 (x64)

    
por 29.11.2013 / 16:19