Me sorprende que nadie ha mencionado el comando simple de hacer esto: ifmetric. Se puede instalar usando sudo apt-get install ifmetric. Este comando se puede usar para cambiar la métrica de cualquier interfaz. La interfaz con métrica más baja es la preferida para Internet.
Para usar esto, primero vea las métricas usando el routecomando:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
0.0.0.0 10.42.0.2 0.0.0.0 UG 600 0 0 wlan0
Aquí, eth0tiene una métrica más baja, por lo que se preferirá sobre wlan0. Si desea preferir wlan0, baje su métrica:
sudo ifmetric wlan0 50
Ahora, la tabla de enrutamiento se vería así:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 wlan0
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
Ahora Linux lo usará wlan0para Internet. El cambio se reflejará de inmediato.
crontab -ey luego añadir la línea al final:@reboot sudo ifmetric wlan0 50.Establecer las métricas es cómo cambiar las prioridades. La métrica más alta es más "costosa" de usar, por lo que el sistema operativo usará las interfaces con la métrica más baja si necesita enrutar el tráfico. En caso de que la interfaz de métrica inferior se apague, utilizará la interfaz de métrica superior, ya que es la única interfaz que se puede utilizar para enrutar el tráfico hacia esa red / destino en particular.
Las métricas se especifican en el archivo / etc / network / interfaces , puntos de enlace a la documentación.
Use cualquier editor de texto para editar el archivo, identificar las redes y simplemente cambiar el
metricparámetro y guardar. Reiniciar es la forma más sencilla de restablecer todos los valores sin entrar en los detalles geek de reiniciar los servicios de red.fuente
La priorización de las interfaces para el tráfico general se realiza mediante la manipulación de las métricas de enrutamiento. Cada ruta tiene parámetros asociados, como conteo de saltos y anchos de banda. Consulte la opción "métrica" en la página del manual para el
routecomando.La priorización del acceso de la aplicación a los recursos de la red a menudo se aborda mediante "modelado del tráfico": usaría un motor de búsqueda web para ver si Ubuntu o el enrutador pueden hacer eso.
Nota.
En MS Windows, pero no en Linux, el
netstat -nrcomando genera la misma información queroute print. Incluyendo las métricas de enrutamiento.fuente
Realmente no lo he probado, pero NCD (Network Configuration Daemon - 1) puede usarse para este propósito. El sitio pretende facilitar la configuración de la red. La sintaxis parece ser simple.
# Espera alguna conexión de red. Prefiere eth1 poniéndolo delante de eth0.
list ("NET-eth1", "NET-eth0") pnames;
(1) - http://code.google.com/p/badvpn/wiki/NCD
fuente
pnameslista es, de hecho, solo un argumento para lamultidepend()declaración en la siguiente línea: esta es la que implementa las prioridades. El mecanismo detrás de esto es que cuandoeth1aparece cuandoeth0ya está activado, se ejecutómultiprovide("NET-eth1");, porqueNET-eth1está delanteNET-eth0,multidepend()se desactivará y volverá a activarse de inmediato, pero en lugar de exponer variables deleth1procesoeth0.Todo esto se debe a las métricas de ruta. Desea eliminar la ruta predeterminada con la métrica más baja y luego restablecer la ruta anterior con la métrica más alta. Por favor, siga los comandos a continuación.
Digamos que su tabla de enrutamiento se ve así:
Ahora elimine la puerta de enlace predeterminada
Ahora restablezca la puerta de enlace predeterminada más antigua (tenga en cuenta que la métrica en este caso es mayor 102 que la ruta predeterminada actual 101)
fuente
Gateway=10.16.87.254, que esUGla más bajaMetric, y el paso 2 la vuelve a colocar con una más altaMetricpara que sea sigue disponible como respaldo en caso de192.168.151.2que no esté disponible.[Actualización] A partir de Ubuntu 18.04 LTS (servidor),
netplanes el contenedor predeterminado para la administración de la red. La configuración de Netplan se realiza a través de un archivo YAML , de forma predeterminada/etc/netplan/01-netcfg.yaml(más detalles aquí ).La métrica de enrutamiento se define mediante la
metricopción " ", que espera un número entero positivo (100generalmente es el valor predeterminado). Aquí está el ejemplo de la página de referencia:La ruta con la menor
metric(longitud de ruta) se convierte en la puerta de enlace "preferida". (Utilizar:sudo netplan trypara habilitar cambios)Tenga en cuenta que en un entorno de itinerancia (conexiones múltiples, encendido y apagado), es posible que desee establecer el
optionalparámetro (booleano) entrue(el valor predeterminado es falso):Observe la sintaxis ligeramente diferente para la métrica de ruta en el caso de las conexiones DHCP.
También puede usarlo
NetworkManagercomo renderizador, lo que supongo (aún no me he probado) le permitiría ver / editar esa parte de la configuración también a través de herramientas GUI.(El último ejemplo 'grande' en la página de referencia muestra un uso híbrido de ambos renderizadores).
Ver también esta pregunta (askubuntu) .
fuente