Publicado

mrubiodev.blog / artículo

De la liberación a la Oficina Remota: OpenWrt, Tethering por USB y VPN

FECHA2026/09/02
CATEGORIAREDES
TAGS#openwrt #networking #wireguard #vpn #linux #seguridad #kernel #router #tethering
TIEMPO_LECTURA9 MIN

Hace un tiempo os explicaba por aquí cómo liberar un router antiguo para darle una segunda vida. Hoy vamos un paso más allá: vamos a transformar ese router olvidado en un centro de conectividad portátil para las vacaciones o para cualquier imprevisto de red — sin fibra, mudanza a caballo entre dos conexiones, corte del operador…

Si eres desarrollador, trabajas en remoto o simplemente tienes bastantes dispositivos en casa, hacer tethering Wi-Fi directamente desde el móvil se queda muy corto:

  • Se calienta el teléfono.
  • Consume batería a ritmo vertiginoso.
  • La cobertura Wi-Fi del móvil no llega a toda la casa.
  • Tienes que reconfigurar la Wi-Fi en todos tus dispositivos (portátil, tablet, tele, domótica…).

La solución elegante — y de nivel pro — es convertir ese router en tu puerta de enlace con OpenWrt.

La arquitectura del chiringuito

El esquema es sencillo pero infinitamente más estable que el tethering suelto:

  1. El móvil: conectado por cable USB al router viejo.
  2. El router (OpenWrt): lee el tethering USB como su interfaz de red WAN (vía usbmuxd o kmod-usb-net-rndis, según la plataforma).
  3. Red local (Wi-Fi + LAN): el router reparte internet por sus puertos Ethernet y su propia red Wi-Fi para toda la casa.
  4. Capa de seguridad (VPN): un túnel WireGuard corriendo en el propio router, que enruta todo el tráfico de la casa hacia la red central.

¿Por qué este artículo?

Liberar el router fue el paso técnico; la pregunta que se queda coja después es “liberado, ¿para qué?”. Un router con firmware libre y sin capas del ISP es un punto de partida, no un destino — y el destino natural, si ya tienes ese hardware suelto por casa, es convertirlo en algo que resuelva un problema real: quedarte sin conexión estable (mudanza, vacaciones, corte de operador) sin depender del tethering pelado del móvil, que es frágil, calienta el teléfono y no llega a toda la casa.

¿Qué se gana con esto?

Frente a compartir internet directamente desde el móvil a cada dispositivo por separado, meter el router de por medio con VPN incluida da tres cosas que el tethering suelto no da:

  • Cero configuración en el cliente. Cualquier aparato que se conecte a la Wi-Fi del router navega ya dentro del túnel VPN automáticamente — no hay que instalar ni configurar un cliente WireGuard en cada portátil, tablet o móvil de la casa.
  • Persistencia. Si se cae o se reinicia la conexión móvil, es el router el que reconecta el túnel en segundo plano. Los dispositivos cliente ni se enteran.
  • Ahorro de batería y de CPU. El cifrado del tráfico lo hace el router una sola vez, no cada dispositivo por su lado — el procesador de tus portátiles o del propio móvil no gasta ciclos cifrando tráfico individualmente.

Esta guía da por hecho que ya tienes control total sobre tu router — si el tuyo sigue con el firmware de fábrica del ISP, empieza por liberar el router/modem de Vodafone (TG589vn v3): sin ese paso previo, buena parte de lo que viene a continuación (UCI/CLI, zonas de firewall, reglas nftables) no está disponible.

A partir de aquí dejamos la receta básica y bajamos al detalle: la arquitectura del kernel y el stack de red de Linux que hacen posible todo esto, para convertir tu router de viaje en un nodo seguro y enrutado contra tu firewall principal, sin exponer datos sensibles de tu infraestructura.

1. Desmitificando la Capa USB: Driver RNDIS vs. CDC-NCM / IPHETH

Antes de nada, instala los paquetes necesarios para que OpenWrt reconozca la interfaz USB del teléfono (cubre tanto Android como iPhone):

opkg update
opkg install kmod-usb-net-rndis kmod-usb-net-ipheth usbmuxd

Con eso ya podrías conectar el móvil, activar “Compartir internet por USB” y añadir la interfaz nueva (usb0 o eth1) como zona WAN desde LuCI. Pero para que no sea una caja negra, vale la pena entender qué está pasando por debajo.

Cuando enchufas el teléfono por USB al router, el kernel de Linux no ve una “conexión Wi-Fi compartida”, sino una tarjeta de red Ethernet emulada en el bus USB.

  • Android (RNDIS / CDC-NCM):
    • Tradicionalmente utiliza RNDIS (Remote Network Driver Interface Specification). Al cargar el módulo kmod-usb-net-rndis, el kernel crea la interfaz lógica usb0.
    • En versiones modernas de Android (y kernels ≥ 5.x), se utiliza preferentemente CDC-NCM (kmod-usb-net-cdc-ncm), que ofrece un rendimiento superior con menor sobrecarga de CPU en el router al emular tramas Ethernet de forma más eficiente.
  • iOS (IPHETH + Usbmuxd):
    • Apple utiliza un protocolo propietario. Requiere kmod-usb-net-ipheth para la capa física emulada y el demonio en espacio de usuario usbmuxd (múltiplex de sockets USB).
    • usbmuxd realiza el handshake del par cifrado (pairing) con el iPhone antes de que el kernel pueda levantar la interfaz de red (eth1 o usb0).

2. Configuración Avanzada de Red en OpenWrt (/etc/config/network)

Necesitas el soporte de WireGuard instalado primero:

opkg install luci-proto-wireguard wireguard-tools

Con eso, luci-proto-wireguard ya te permite configurar un túnel permanente hacia tu firewall principal desde la propia interfaz gráfica (ver ventajas de hacerlo así en la introducción).

En lugar de limitarte a la interfaz gráfica (LuCI), aportar la configuración declarativa limpia por UCI/CLI permite ver lo que ocurre tras bambalinas:

config interface 'wan_tether'
	option device 'usb0'
	option proto 'dhcp'
	option metric '10'

config interface 'wg_vpn'
	option proto 'wireguard'
	option private_key 'CLIENT_PRIVATE_KEY'
	list addresses '10.X.X.X/32'
	option metric '5'

config wireguard_wg_vpn
	option public_key 'SERVER_PUBLIC_KEY'
	option endpoint_host 'vpn.tu-dominio-publico.com'
	option endpoint_port '51820'
	list persistent_keepalive '25'
	list allowed_ips '0.0.0.0/0'

¿Por qué el parámetro metric?

Al declarar una métrica más baja (metric 5) en la interfaz wg_vpn frente a la interfaz del tethering USB (metric 10), le indicas a la tabla de enrutamiento del kernel de Linux (ip route) que prefiera la ruta predeterminada (default gateway) de la VPN sobre el tráfico bruto de la red móvil.

3. Tuning del MTU y Clamping de MSS (imprescindible para tethering + VPN)

Uno de los problemas más comunes al anidar 4G/5G → USB Tethering → OpenWrt → WireGuard es la fragmentación de paquetes.

  • La MTU habitual en conexiones Ethernet es de 1500 bytes.
  • La red celular suele limitar la MTU a 1420 o 1380 bytes.
  • WireGuard añade sus propias cabeceras (32–40 bytes de sobrecarga).

Si no ajustas el tamaño máximo de segmento (MSS), las videollamadas, terminales SSH/CLI o peticiones HTTP/2 se congelarán. La solución técnica en el firewall de OpenWrt (/etc/config/firewall) es habilitar el MSS Clamping:

config zone
	option name 'wan'
	list network 'wan_tether'
	list network 'wg_vpn'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'REJECT'
	option masq '1'
	option mtu_fix '1'

El flag mtu_fix '1' aplica una regla de iptables/nftables (TCPMSS --clamp-mss-to-pmtu) que reescribe de forma transparente el tamaño de los paquetes SYN en el apretón de manos TCP.

4. Optimizaciones de batería y bypass de tethering (TTL spoofing)

Para evitar sorpresas o degradación del servicio, se aplican dos tips de ingeniería de red:

  • Mantener la batería del móvil a raya: dado que el router alimenta el móvil mediante el puerto USB mientras comparte datos, la batería puede sobrecalentarse si transmite Wi-Fi y 4G al mismo tiempo. Al apagar la radio Wi-Fi del móvil y transmitir por USB, la temperatura baja drásticamente.
  • Ignorar inspecciones de TTL (Time-To-Live): algunas operadoras aplican inspección profunda de paquetes (DPI) o filtrado por TTL para detectar cuando compartes internet con múltiples dispositivos y limitar la velocidad. En OpenWrt se puede forzar a que todo el tráfico saliente mantenga un TTL constante (por ejemplo, 64) hacia la WAN:
nft add rule inet fw4 postrouting oifname "usb0" ip ttl set 64

5. Diagrama de flujo del tráfico

[ Dispositivos LAN / Wi-Fi ] (Portátil, TV, Tablet)

             ▼ (IP Local genérica: 192.168.X.X)
[ Router OpenWrt Portátil (LAN Interface) ]

             ▼ (Cifrado ChaCha20-Poly1305 / WireGuard)
[ Túnel VPN (Interfaz wg_vpn / IP: 10.X.X.X) ]

             ▼ (Encapsulado sobre puerto UDP 51820)
[ Tethering USB (Interfaz usb0 / RNDIS/CDC-NCM) ]

             ▼ (Módem 4G/5G del Móvil)
[ Internet / Red Celular ]

             ▼ (Tráfico Enrutado)
[ Firewall Principal (OPNsense) ] ──► [ Salida Limpia a Internet ]

Disclaimer: lo que esta guía no resuelve

No todo es bueno en los tiempos que corren. Dos cosas que conviene tener claras antes de depender de este montaje para algo serio:

  • El hardware no es ningún pepino. Un router de esta generación suele llevar una CPU de un solo núcleo a frecuencias modestas. WireGuard, NAT, MSS clamping y las reglas de TTL spoofing corriendo a la vez consumen CPU real — es fácil saturar el procesador del router mucho antes de saturar el ancho de banda de la red móvil. Si vas a depender de esto para algo con carga (videollamadas simultáneas, transferencias grandes), mide el rendimiento real con iperf3 antes de fiarte a ciegas; no asumas que el cuello de botella va a estar en el móvil.
  • Quedan fallos de seguridad sin cubrir en este artículo. Esta guía no entra en mantener el firmware de OpenWrt al día frente a CVEs, no cubre rotación de claves de WireGuard, y la clave privada del cliente queda en texto plano dentro de /etc/config/network — cualquiera con acceso físico o SSH al router la lee sin esfuerzo. Tampoco se aborda qué pasa si el propio router (no el firewall central) queda comprometido: al ser el punto donde confluye tethering y VPN, un router comprometido ve tráfico en claro antes de que este entre al túnel. Nada de esto invalida el montaje, pero conviene saber qué te dejas fuera antes de darlo por cerrado.

Dicho esto, hay que llamar a esto por lo que es: una solución a corto plazo, o para investigar y aprender del stack de red de Linux — no una pieza clave de una red en la que confías de verdad. Vale para salir del paso en una mudanza, unas vacaciones o un corte de operador puntual. No es un sustituto de un router y un firewall dedicados si esto va a ser tu conectividad principal durante semanas o meses: en ese caso, el hardware limitado y los huecos de seguridad de arriba dejan de ser un matiz y pasan a ser el problema central.

Conclusión

Pasar de un router de cajón a un nodo de red portátil te salva cuando no hay fibra, en una mudanza a caballo entre dos conexiones, o simplemente de vacaciones. Con un solo cable USB tienes Wi-Fi en toda la casa, tus bocas LAN operativas y toda tu suite de herramientas de desarrollo conectada de forma segura mediante VPN — sin que el móvil se caliente ni la batería sufra, y sin tocar la configuración de red de un solo dispositivo cliente.


Relacionado