Windows에서 응용 프로그램 별 라우팅 테이블을 설정하는 방법은 무엇입니까?


14

네트워크 인터페이스 1 (net1)과 2 (net2)가 모두 인터넷에 연결되어 있다고 가정합니다. 응용 프로그램 1 (app1)이 net1을 사용하고 응용 프로그램 2 (app2)가 net2를 사용하도록하고 싶습니다. Windows에서 어떻게 할 수 있습니까?

위 상황의 구체적인 예가 필요한 경우 다음을 고려하십시오.

  • Windows 7이 설치된 노트북
  • net1 = Verizon 인터넷 모뎀에 유선 연결
  • net2 = Comcast 인터넷 모뎀에 대한 무선 연결
  • app1 = Internet Explorer
  • app2 = Firefox
  • "IE는 Verizon을 사용하지만 Comcast는 사용하지 않음"및 "Firefox는 Comcast를 사용하지만 Verizon은 사용하지 않음"을 원합니다.

라우팅 테이블을 통해 수행 할 필요는 없습니다. 다른 아이디어가 있다면 알려주세요!

답변:


6

ForceBindIP 와 같은 소리 가 당신이 찾고있는 것입니다 :)

ForceBindIP-모든 Windows 응용 프로그램을 특정 인터페이스에 바인딩

ForceBindIP는 다른 응용 프로그램에 자신을 삽입하고 특정 Windows 소켓 호출 방법을 변경하여 다른 응용 프로그램이 특정 네트워크 인터페이스 / IP 주소를 사용하도록하는 프리웨어 Windows 응용 프로그램입니다. 인터페이스가 여러 개인 환경에 있고 응용 프로그램에 특정 인터페이스에 바인딩 할 수있는 옵션이없는 경우에 유용합니다.

ForceBindIP와 함께 작동하도록 테스트 된 일부 프로그램에는 DC ++, uTorrent, Quake II, Quake III, Diablo II, StarCraft, Internet Explorer, Mozilla Firefox , Google Earth, 보병, Real Player, Unreal Tournament 2004 (-i 필요), Outlook이 포함됩니다. 2000 (-i 필요) 작동하지 않는 프로그램으로는 GetRight (디버거 방지 / 포킹 기술), WinCVS (forks cvs.exe)가 있습니다.

IP 주소와 프로그램을 인수로 사용하여 ForceBindIP를 사용하여 응용 프로그램을 시작하는 바로 가기를 간단하게 만들 수 있습니다.

대체 텍스트

ForceBindIP는 프리웨어입니다.


2
훌륭한 소프트웨어! 불행히도 내 VPN 설정 ( "원격 네트워크에서 기본 게이트웨이 사용"이 비활성화되어 인터넷에 연결되지 않음)에서는 작동하지 않는 것 같습니다. IE를 VPN 인터페이스 (PPP 어댑터)에 바인딩하려고했지만 트래픽이 여전히 VPN을 통과하지 않습니다 (whatismyip.com으로 확인)
netvope

1

vmware player 등을 실행할 필요가 없습니다. 보조 어댑터 (즉, 메트릭이 더 높은 어댑터)에서 weakhostreceive를 활성화하십시오.

그런 다음 squid를 실행하고 tcp_outgoing_address를 사용하여 보조 어댑터의 IP 주소로 squid를 설정하고 모든 응용 프로그램을 프록시 할 수 있습니다.

forcebindip도 작동해야한다고 생각합니다.

내가 생각하는 것은 MS win7 스택에 버그가 있다는 것입니다. 패킷이 보조 어댑터에 도착하면 유효한 패킷이더라도 폐기됩니다.

약한 호스트 수신 활성화는 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

나는 이것이 불가능하다는 것을 확신합니다. 한 인터페이스에서 다른 인터페이스로 트래픽을 전송할 수있는 가장 가까운 것은 서브넷과 라우팅 항목입니다.

그러나 두 응용 프로그램이 네트워크에서 통신하려면 동일한 네트워크를 사용합니다.

기술적으로, 응용 프로그램은 나가는 트래픽을 특정 인터페이스에 바인딩 할 수 있지만 응용 프로그램을 다시 작성해야합니다.


0

비슷한 요구 사항이 있었지만 특정 응용 프로그램이 특정 인터넷 연결을 통해 가고 싶었지만 IP 또는 포트를 통해 수행 할 수 없었습니다.

내 해결책은 다음과 같습니다.

(내 컴퓨터 IP는 xxx100입니다.

a) xxx101이 wan2를 통해 맹글 규칙을 설정하십시오.

b) ip xxx101에서 ubuntulite (opensh가 설치되어 있음) 사본으로 vmware player를 실행하십시오.

c) "proxifier"를 사용하여 애플리케이션을 바인딩하고 vmware 머신을 통해 강제로 터널링합니다.

이것은 응용 프로그램 수준에서 수행하는 방법을 알 수있는 유일한 (매우 끔찍한) 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.