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 route
comando:
$ 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í, eth0
tiene 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á wlan0
para Internet. El cambio se reflejará de inmediato.
crontab -e
y 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
metric
pará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
route
comando.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 -nr
comando 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
pnames
lista 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 cuandoeth1
aparece cuandoeth0
ya está activado, se ejecutómultiprovide("NET-eth1");
, porqueNET-eth1
está delanteNET-eth0
,multidepend()
se desactivará y volverá a activarse de inmediato, pero en lugar de exponer variables deleth1
procesoeth0
.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 esUG
la más bajaMetric
, y el paso 2 la vuelve a colocar con una más altaMetric
para que sea sigue disponible como respaldo en caso de192.168.151.2
que no esté disponible.[Actualización] A partir de Ubuntu 18.04 LTS (servidor),
netplan
es 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
metric
opción " ", que espera un número entero positivo (100
generalmente 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 try
para habilitar cambios)Tenga en cuenta que en un entorno de itinerancia (conexiones múltiples, encendido y apagado), es posible que desee establecer el
optional
pará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
NetworkManager
como 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