Zerotier nodo de salida en android

Buenas a tod@s. Resulta que la conexión a internet de mi padre tiene cg-nat, y me llama todos los días porque le pasan cosas raras en el ordenador. Para no tener que ir cada vez que me llama, he optado por el escritorio remoto. Lo tengo montado así:
Un tv box chino conectado por cable al router. En el tv box tengo instalado tailscale para que me de acceso a su red.
De momento me funciona sin muchos problemas, me conecto a través de tailscale y más o menos le soluciono lo que sea. Pero me he dado cuenta de que cuando conecto con tailscale, la velocidad de internet baja un montón, suele dar como 10 megas de bajada.
Entonces he pensado cambiar de tailscale a zerotier para probar si mejora la velocidad. Estoy probando en mi casa con dos móviles, en los dos tengo instalado zerotier y están autorizados en el panel de control de la página. Pero el problema, lo que no encuentro, es como configurar uno de los móviles como nodo de salida tal y como hago en tailscale. Me explico: uno de los móviles lo tengo con datos y su ip pública, el otro por wifi con la ip pública del router. Mi intención es que con el móvil por wifi conseguir la ip del móvil con datos. Si alguien puede ayudarme, le estaría muy agradecido.
Saludos
P.D.: Si esto no va aquí, que un moderador lo mueva.
Personalmente no he usado Zerotier, pero tengo entendido que no tiene esa funcionalidad de hacer de nodo de salida (como Tailscale). Podrías instalar Zerotier en un router con OpenWRT o similar y usar iptables para redirigir paquetes, pero me parece matar moscas a cañonazos. En un cacharro android salvo que seas root y quieras perder años de vida y salud mental no es posible hacer eso.

A mí se me ocurren varias opciones mejores. Dependiendo de lo exigente que seas cara a seguridad.

Opción segura pero más exigente (en hardware y en conocimientos para configurarla): Usa Wireguard, conecta un túnel VPN con la red de tu casa, y utiliza directamente un rango de IP local. Yo uso esto para acceder de forma remota a un sistema de videovigilancia. Para las cosas que necesito acceso desde el exterior redirijo los puertos desde la conexión que NO tiene CG-NAT. El rendimiento es bastante bueno.

Opción un poco menos segura pero muy sencilla: Usa un túnel de cloudflare. Puedes comprar un dominio de (seis números).xyz por 1€ al año, lo configuras en cloudflare, instalas cloudflared donde quieras (puede ser en el android TV, en una raspberry Pi, en un docker, o en cualquier otro cacharro de la red). Una vez hecho esto puedes acceder a tu dominio 123456.xyz/nombre_que_quieras y tener acceso a servicios de la otra red como si tuviera ip pública. Ojo, no a equipos completos, cuando creas el tunel tiene que ser a una IP y a un puerto concreto, lo bueno es que puede ser una IP privada y tampoco necesitas que el aparato que tiene el túnel sea potentísimo. Cosas como escritorio remoto a mí me parecen un tanto delicadas para exponer a internet, creo que es mejor usar una VPN, pero si te soluciona la papeleta es una opción. Yo esto lo uso para un sistema de videovigilancia menos "delicado" que el anterior, pero solo como acceso al DVR y con permisos limitados, nada de configuración ni del proxmox que hay debajo.

O digo más... para un caso como el que describes, ¿no es más interesante usar anydesk?

Saludos
Para crear un nodo de salida en Zerotier sólo hay que añadir a 'Managed Routes' de la web, la ruta

0.0.0.0/0 via 10.10.0.10

donde 10.10.0 10 es la dirección IP del nodo Zerotier

Otra cosa distinta es que funcione en Android, cosa que desconozco, yo sólo uso nodos de salida Zerotier en servidores Linux en los que previamente he configurado 'iptables' para 'forwarding'. En Zerotier al contrario que Tailscale es necesario hacerlo.
No acabo mucho de entender el tema o el problema. Si tu padre tiene CG-NAT activado y tiene problemas, llamas a la compañía y les pides que te lo quiten no?

Si lo que quieres es usar el control remoto al PC de tu padre, usando escritorio remoto ya tienes de sobras, no? si instalas el cliente de ZEROTIER en su PC y lo marcas para que se autoejecute y se auto-conecte a la red que has creado , ya tienes conexión no?

Zerotier asigna las IPs de la subred que tú hayas escogido....por ejemplo 192.168.191.x, en cuyo caso el PC de tu padre quizá tenga 192.168.191.10, tu PC tenga 192.168.191.44 y dando conexión a la 192.168.191.10 (cambia el puerto RDP 3389 por otro), ya se debería conectar, no?

Si por el contrario (y no he entendido mal) lo que quieres es acceder a la red local (dispositivos) entera de tu padre, en ZEROTIER tienes que crear BRIDGE y necesitas sí o sí (que yo sepa), o LINUX o RASPBERRYs , porqué "creo" que ANDROID es solo un cliente de conexión.

Otra cosa que puedes hacer es (dependiendo de la potencia del PC de tu padre), es virtualizar UBUNTU SERVER que consume poquísimos recursos porqué no tiene interfaz GUI (por ejemplo con VMWARE PLAYER), y hacer que arranque como servicio (cuando tu padre encienda el ordenador no verá nada, pero la máquina virtual arrancará. Lo hice hace tiempo con un ordenador para hacer pruebas.)

Si te atreves, te dejo lo que suelo utilizar yo:

Primero dentro de la interficie ZEROTIER (panel WEB de ZEROTIER)

en ADD ROUTES pondremos

DESTINATION: el rango IP de la red de destino
en nuestro caso 192.168.0.0/24 (porqué nuestra red tiene puerta de enlace 192.168.0.1)

VÍA: la IP ZEROTIER del servidor LINUX

En LINUX/RASPBERYY/UBUNTU SERVER damos permisos ROOT:
-----------------------

sudo -i

y en la carpeta ETC editamos el archivo SYSCTL.CONF

nano sysctl.conf


y nos aseguramos que la línea siguiente está igual que aquí (sinó cambiar...importante
que al princpio no tenga #)

net.ipv4.ip_forward=1

escribir:
sysctl -p


comprobar que nombre interfaz utiliza ZEROTIER en el servidor LINUX

ip link


(del listado que aparezca, el interface de ZEROTIER empieza por Z, lo apuntamos. En este ejemplo es ztwfuiukhq)
------------------------------------------------------------------------------------

ir a la carpeta /ETC/UFW (es el firewall de UBUNTU) (si el firewall no está instalado
instalarlo con "sudo apt install -y ufw"

nano before.rules

ir a la primera línea que pone *filter y escribir debajo

-A FORWARD -i ztwfuiukhq -j ACCEPT
-A FORWARD -o ztwfuiukhq -j ACCEPT

ir a la última línea del archivo y debjo de COMMIT escribir (enp0s3 es el nombre de la tarjeta de red del ordenador o máquina virtual)

*nat
-A POSTROUTING -o enp0s3 -s 192.168.191.0/24 -j MASQUERADE
COMMIT


(importante que el 192.168.191.0/24 corresponde a la red ZEROTIER)

desactivar y reactivar el FIREWALL para aplicar los cambios
---------------------------------------------------------------
sudo ufw disable
sudo ufw enable

sudo ufw status (para ver si está activo)
Otra posibilidad a las ya mencionadas, instalar un servidor de https://rustdesk.com/es/ ;)
@Pollonidas
La opción más segura, mis conocimientos son básicos. La opción menos segura, diría que hay que abrir puertos, y mi padre está en cg-nat y no hay forma de salir (avatel).

@ap3188
Lo he configurado así con los teléfonos móviles con los que estoy probando, y no navegan por internet. Como dices, puede que sea que en android no se pueda hacer.

@lolololito
Salir de cg-nat no es posible, tiene avatel y no te da la opción ni pagando. Encima, donde él vive, es la única compañía que se puede contratar por chanchullos del ayuntamiento.
He releído tu mensaje y me quedo con lo de que hay que crear bridge y que tiene que ser bajo linux o raspberry, que android solo es cliente de conexión. Así que nada, quizás más adelante me pille una raspberry y lo retome, pero de momento lo voy a dejar todo como está.

@Newton
De momento estoy con NoMachine y más o menos lo controlo, de momento no lo voy a cambiar.

Muchas gracias a todos. Pensaba que configurar zerotier era más sencillo, y más después de usar tailscale y lo fácil que es. De momento voy a olvidarme del tema y seguir como estoy.
Saludos
guanito escribió:@Pollonidas
La opción más segura, mis conocimientos son básicos. La opción menos segura, diría que hay que abrir puertos, y mi padre está en cg-nat y no hay forma de salir (avatel).

Quizás lo he hecho sonar muy difícil, pero realmente la primera opción no es muy complicada una vez has hecho todo el proceso de crear la cuenta, configurar los dns etc. en cloudflare.

Comentar simplemente que en ninguno de los casos tienes que abrir puertos, ya que si fuera el caso no serían viables con CG-NAT, y yo te puedo decir seguro que funcionan ambas. Una es con starlink y otra con una conexión móvil de DIGI, ambos CG-NAT sin opción a salirse.

En el caso de cloudflare lo que hace es mantener una conexión activa siempre, iniciada por el equipo que está dentro de CG-NAT, con los servidores de cloudflare. De esta forma la URL https://tudominio.com/tuservicio:171717 apunta al equipo interno siempre, esté tras CG-NAT o no.

Saludos
@guanito no mencionas exactamente cual es el uso real que necesitas,................

si simplemente necesitas control remoto del PC de tu padre, la opción que mencionas, o como te indica @Newton (en vez de instalar servidor RUSTDESK, utilizar RUSTDESK modo cliente), o como te menciona @Pollonidas utilizar ANYDESK, creo que serían opciones mas plausibles que tirar por ZEROTIER.

Ojo, ZEROTIER instalado en el PC de tu padre y tu conectar desde casa o desde un teléfono/tablet es fácil...no lleva más de 10/15 minutos (y sin necesidad de abrir puertos)

- Crear RED ZEROTIER en la web de ZEROTIER
- Instalar cliente en cada PC, unir a la red ZEROTIER y autorizar cada PC/Smartphone (y que cada PC adquiera IP dentro de la SUBRED asignada)
- Autorizar el PC de tu padre para recibir peticiones ESCRITORIO REMOTO (con puerto RDP cambiado, y si quieres con una capa adicional de 2FA con DUO SECURITY o SAASPASS)

Ahora, si tu intención es acceder a todos los dispositivos locales sin necesidad de conectar al PC, necesitas lo que te comento yo.

La ventaja de utilizar ESCRITORIO REMOTO (para mí) es que una vez conectado al PC nadie ve lo que estás haciendo, y se necesita la contraseña de usuario para volver a desbloquear el acceso, en cuyo caso si no se sabe, pues ahí se queda (y si tienes disco duro cifrado pues más complicado), pero que para el caso del PC de tu padre, no es vinculante

Con las apps de control remoto, pues a la que conectas, todo el que esté delante del PC ve lo que haces , ANYDESK la ventaja que tiene "que no se si los otros lo tienen", es utilizar 2FA con FREEOTP o GOOGLE AUTHENTICATOR,
Es cierto que no he dado toda la información sobre el uso que quiero darle. Principalmente y el primer objetivo es el que he comentado al principio, poder conectarme al ordenador de mi padre con escritorio remoto, pero ya que estoy, quiero acceder a toda la red, ya que tanto mi padre como mi madre tienen un fire stick de Amazon y a veces tengo que tocarle algo, y con tailscale lo estoy haciendo a través de scrcpy.
Y el tema de la velocidad, ¿con zerotier hay límite de velocidad como con tailscale? ¿Y con la opción de cloudflare?
Muchas gracias por la ayuda.
Saludos
@guanito

Te recomiendo que sigas con Tailscale y te olvides de Zerotier, éste último yo lo uso habitualmente como red de emergencia por si se caen las demás y no perder el control de dispositivos remotos desatendidos durante las actualizaciones, que es siempre el momento crítico.

Si te preocupa la velocidad léete esto https://tailscale.com/kb/1082/firewall-ports para abrir los puertos, si ello es posible, de los routers de los que dependa la conexión a internet. También ayudará la activación de IPv6 y la configuración del cortafuegos del router para que entren conexiones IPv6 en cuyo caso no importará si estás o no en un CG-NAT.
@guanito como sabes que te da 10 Mb de bajada? En Cataluña me he encontrado que cuando la fibra va por la empresa catalana VERA (que por defecto usan CG-NAT), bloquean a veces conexiones cifradas (me he dado cuenta por ejemplo si utilizo el servicio de HAMACHI y con ZEROTIER también, o sea, servicios SDN, se sufren muchos errores de conexión, incluso quitando CG-NAT y abriendo algún puerto....como si bloquearan). En cambio el mismo sitio, cambiada la conexión a O2, funcionar full y perfecto siempre. Servicios de navegación o control remotos tipo SUPREMO, TEAMVIEWER, ANYDESK funcionan perfectamente en compañías tipo VERA.

O sea que no me extrañaría que esa compañía que comentas hiciera lo mismo.

También interpreto que como el equipo de tu padre es el que te da permiso para acceder a la red local, sea este el que te ralentiza la conexión? Qué PC utiliza tu padre y qué método de conexión utiliza? Wifi? Qué velocidad de conexión te da? y por cable?

Me refiero si por ejemplo, va por cable, si la conexión con el router es de 100 Mpbs o Gigabit.

También "me ha parecido ver", que el enrutamiento a la red local en Windows. está en modo "experimental", o sea que quizá por eso tengas problemas de velocidad?

Estos días lo probaré yo a ver qué tal (aunque siempre utilizo ZEROTIER)
@ap3188
Pues de momento me voy a quedar con tailscale. En el enlace que pones creo que es para hacer conexión directa, y para eso hay que abrir puertos, y en la red de mi padre que es donde tengo puesto el nodo de salida no se puede, tiene cg-nat y no se puede quitar.

@lolololito
Lo tengo montado con un tv box con android conectado por cable en casa de mi padre haciendo de exit node. Lo de la velocidad es que si me conecto desde mi pc, hago un test de velocidad y me da esos 10 Mb, mientras que si no me conecto me da por encima de 600. Estoy seguro de que el problema lo tengo en el cg-nat de mi padre, que no puedo hacer una conexión directa al no poder abrir puertos, y la compañía de internet que tiene es la única a la que el ayuntamiento da permiso para ofrecer fibra en la zona donde vive y no se puede cambiar.

Muchas gracias a ambos.
Saludos
@guanito

Repito por si no me he explicado bien, el CG-NAT sólo existe para las conexiones IPv4, las conexiones IPv6 no usan nunca CG-NAT. También se puede configurar el router en modo UPnP para que las aplicaciones de redes como Tailscale puedan abrir enlaces semipermanentes con sus servidores y mejorar los tiempos de respuesta, aunque esto puede presentar riesgos en caso de que se cuele algún programa malintencionado en cualquier dispositivo de la red doméstica.

CG-NAT deja de existir con IPv6:

Imagen
@ap3188
Vale, las conexiones IPv6 no usan cg-nat. Pero entonces, ¿ahora qué hago? ¿Cómo sigo?
Muchas gracias por la ayuda.
Saludos
13 respuestas