Enrutar un programa específico a una NIC específica

Enrutar un programa específico a una NIC específica

Tengo dos conexiones a Internet, una conexión a Internet tiene una latencia muy alta, tiene fluctuaciones en la conexión (hay un árbol entre la torre y el CPE Wifi, por lo que la señal sube y baja) pero está bien para descargar ya que la conexión nunca llega a 0. Otra Una es la conexión de línea fija, tienen un fuerte límite de descarga.

Entonces, lo que quiero es usar wlan0 para algunos programas específicos como Steam y descargas, etc., básicamente programas que consumen muchos datos.

Y quiero usar wlan1 para navegar y otras cosas, menos datos.

En resumen, quiero enrutar programas específicos a través de una NIC específica, no tengo un rango específico de IP.

Puedo conectar ambos a través de wifi ya que tengo 1 adaptador wifi adicional (wlan0,wlan1), como otra opción puedo conectar uno con ethernet (wlan0,eth0)

Respuesta1

Podría ser posible si su proceso tiene algoiptablespuede comparar, como un grupo específico. Por ejemplo, dado un grupo to-wifi, podrías tener reglas de iptables como estas:

iptables -A FORWARD --in-interface wlan0 -j ACCEPT
iptables -t nat -A OUTPUT -m owner --gid-owner to-wifi --out-interface wlan0 -j MASQUERADE  

(Y con el reenvío habilitado: sysctl -w net.ipv4.conf.all.forwarding=1.)

Entonces, si ejecutas, por ejemplo, Steam así:

sg to-wifi steam

Cualquier tráfico de ese proceso de Steam (+ cualquier proceso secundario) se reenviará desde cualquier interfaz por la que se dirigiera a la interfaz inalámbrica.

Nunca probé la redirección de interfaz a interfaz, pero solía iptablesredirigir todo el tráfico TCP de Steam a un proxy comparándolo con grupos, por lo que es posible que estas reglas no sean suficientes por sí solas.


Esto podría lograrse creando grupos para cada interfaz y agregándose a ellos. Por ejemplo, utilizando eladdgroupyaddusercomandos:

sudo addgroup to-wifi
sudo adduser $USER to-wifi
sudo addgroup for-eth0
sudo adduser $USER for-eth0

Debes volver a iniciar sesión para que tu nueva membresía grupal entre en vigor.

Relacionado:

Respuesta2

Hasta donde yo sé, no hay manera de hacer eso.

Esto se puede hacer con reglas de iptables en el específicopuertos+ destinos que utilizan para realizar sus conexiones, pero no conozco una forma local de hacerlo.

información relacionada