Come impostare una tabella di routing specifica per l'applicazione su Windows?


14

Supponiamo che l'interfaccia di rete 1 (net1) e 2 (net2) siano entrambe connesse a Internet. Voglio che l'applicazione 1 (app1) usi net1 e l'applicazione 2 (app2) usi net2. Come può essere fatto sotto Windows?

Se hai bisogno di un esempio concreto della situazione precedente, considera:

  • Un laptop con Windows 7
  • net1 = Una connessione cablata a un modem Internet Verizon
  • net2 = Una connessione wireless a un modem Internet Comcast
  • app1 = Internet Explorer
  • app2 = Firefox
  • Mi piacerebbe avere "IE usa Verizon ma non Comcast" e "Firefox usa Comcast ma non Verizon"

Non deve essere eseguito tramite la tabella di routing. Se hai altre idee, per favore fammi sapere!

Risposte:


6

Sembra che ForceBindIP sia quello che stai cercando :)

ForceBindIP: associa qualsiasi applicazione Windows a un'interfaccia specifica

ForceBindIP è un'applicazione Windows freeware che si inietterà in un'altra applicazione e modificherà il modo in cui vengono effettuate determinate chiamate di Windows Socket, consentendo di forzare l'altra applicazione a utilizzare un'interfaccia di rete / un indirizzo IP specifici. Ciò è utile se ci si trova in un ambiente con più interfacce e l'applicazione non dispone di tale opzione per l'associazione a un'interfaccia specifica.

Alcuni programmi che sono stati testati per funzionare con ForceBindIP includono DC ++, uTorrent, Quake II, Quake III, Diablo II, StarCraft, Internet Explorer, Mozilla Firefox , Google Earth, Fanteria, Real Player, Unreal Tournament 2004 (richiede -i), Outlook 2000 (richiede -i). I programmi che non funzionano includono GetRight (tecniche anti-debugger / fork), WinCVS (forks cvs.exe)

Puoi semplicemente creare scorciatoie per avviare l'applicazione usando ForceBindIP, con l'indirizzo IP e il programma come argomenti:

testo alternativo

ForceBindIP è freeware.


2
Ottimo software! Sfortunatamente non sembra funzionare con la mia configurazione VPN (che ha "usa gateway predefinito su rete remota" disabilitato in modo che la connessione a Internet non lo attraversi). Ho provato a associare IE all'interfaccia VPN (adattatore PPP), ma il traffico non passa ancora attraverso la VPN (verificato con whatismyip.com)
netvope,

1

Non è necessario eseguire il lettore VMware e tutto il resto. Abilita il punto debole sull'adattatore secondario (ovvero l'adattatore che ha una metrica più alta).

Quindi è possibile eseguire squid e impostare squid per utilizzare tcp_outgoing_address sull'indirizzo IP dell'adattatore secondario e proxy tutte le applicazioni.

Sospetto che anche il forcebindip dovrebbe iniziare a funzionare.

Quello che penso è che c'è un bug nello stack di MS Win7. Quando un pacchetto arriva sull'adattatore secondario, viene scartato anche se è un pacchetto valido.

L'abilitazione della ricezione dell'host debole è documentata qui http://technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspx

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled

0

sono abbastanza sicuro che sia impossibile. La cosa più vicina a cui puoi ricevere l'invio di traffico su un'interfaccia o su un'altra è attraverso le sottoreti e le voci di routing.

Ma se due applicazioni vogliono parlare in rete, usano la stessa rete.

Tecnicamente, suppongo, un'applicazione potrebbe associare il suo traffico in uscita a una particolare interfaccia, ma l'app dovrebbe essere riscritta per farlo.


0

Aveva un requisito simile, voleva applicazioni specifiche per passare tramite connessioni Internet specifiche, ma non poteva essere eseguita tramite IP o Porta.

La mia soluzione era:

(Nota che l'IP del mio computer è xxx100

a) imposta una regola mangle per xxx101 per passare tramite wan2

b) eseguire vmware player con una copia di ubuntulite (con openssh installato) su ip xxx101

c) utilizzare "Proxifier" per associare l'applicazione e forzarla a tunnel tramite la macchina vmware, che a sua volta è stata instradata solo tramite wan2

Questo è l'unico modo (molto haxy) che potrei immaginare come farlo a livello di applicazione (il proxifier ha una versione di prova che puoi testare ed esegue su Windows 7 x64).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.