En Windows, tengo dos conexiones a internet. Uno con cable y otro inalámbrico (a través de un punto de acceso 4G). ¿Cómo puedo limitar una aplicación para acceder a Internet a través del punto de acceso 4G, mientras que el resto del sistema puede acceder a Internet a través de una conexión por cable?

Al proporcionar una DLL que anula los puntos de entrada para las funciones bind (), connect (), sendto (), WSAConnect () y WSASendTo (), y forzó el uso de una dirección saliente específica, cuando la aplicación usa INADDR_ANY.

Alternativamente, use una aplicación que le permita especificar la dirección IP saliente y sepa cómo verificar las interfaces para verificar la dirección IP, de modo que la estructura de socket para las llamadas de enlace / conexión salientes use una única interfaz.

Hay varias aplicaciones comerciales y shareware que pueden hacer esto por usted, pero en realidad es muy fácil precargar una DLL y anular los puntos de entrada, y luego cargar WS2_32.DLL para proporcionar los puntos de entrada restantes y reescribir específicamente el sockaddr cuesta abajo.

Tenga en cuenta que también hay una serie de piezas de software “gratuitas” que afirman hacer esto por usted, pero que en realidad trojan sus conexiones de socket y envían los datos enviados a través de la red también a un tercero (spyware).

Prácticamente no confíe en el código que dice hacer esto por usted, a menos que lo haya escrito usted mismo, o haya examinado el código fuente y lo haya compilado usted mismo (ya que el binario que recibe podría troyanarse y no coincidir con el código fuente).

Alternativamente, pague a un proveedor comercial de confianza por el software.

La única forma real de hacer esto es con la virtualización, ejecutar una máquina virtual y conectarse a un internet, ejecutar la aplicación que desee en ese y luego usar la PC normal para el resto.

Windows no es compatible con lo que quieres hacer. Ni siquiera poner más de una puerta de enlace predeterminada en la configuración de TCP / IP hará que Windows use de manera confiable más de una puerta de enlace predeterminada, y mucho menos delegarla en un subconjunto de aplicaciones: en Windows no hay ninguna facilidad para hacer eso AFAIK.

La sugerencia de Terrance Collier de colocar la única aplicación que desea usar a través del punto de acceso 4G en su propia VM, y configurar esa VM para usar el punto de acceso 4G para su puerta de enlace predeterminada, creo que es la mejor opción práctica; ¡aunque una VM para una sola aplicación es una sobrecarga bastante pesada!