¿Cómo "hablar" con una IP "principal" en una subred?

¿Cómo "hablar" con una IP "principal" en una subred?

Sólo tengo acceso a sistemas *nix. Ya sea NetBSD y/o sistema operativo basado en Linux.

Entonces mi pregunta surge del hecho de que ADBno está ampliamente disponible en todas las plataformas, de ser así es muy difícil de instalar u obtener (tener acceso a Internet, obtener acceso de superusuario, etc.).

De todos modos, RNDISla funcionalidad ya la ofrecen casi todos los dispositivos Android. Permitir que el teléfono se convierta en un "enrutador" me dará la opción de usar netcat porque puedo configurar un "servidor" y obtener/recibir archivos bidireccionalmente, sin necesidad de involucrarme ADB.

Como esto:

NetBSD
dhcpcd -n urndis0

Linux
udhcpd -i usb0

Eso me dará una IP dentro de una subred configurada por Android. Algo como:192.168.32.225/24

Entonces, esencialmente el teléfono actúa como un enrutador, dándole a mi computadora *nix una IP que pertenece a una subred configurada por el propio teléfono. Me gustaría simplemente abrir un puerto en mi host local 127.0.0.1y netcatsimplemente transferir archivos.

Algo como esto:

On Android device:
busybox nc -v -w3 -l -p 3838

On *nix system (Linux in the example below):
nc -v -w3 **(upper higher loopdevice outside subnetted network) 127.0.0.24** 3838

Y poder acceder a la red/dispositivo de bucle "superior" que ya existe dentro de la propia red local de Android.

Supongamos que el teléfono Android es otro host que comparte su conexión y asigna una IP de subred a mi computadora para que mi *nix box pueda acceder a Internet:

Entonces mi pregunta es: ¿Puedo usar la IP (que está dentro de una subred) proporcionada por la interfaz RNDIS del teléfono Android para acceder a la red local del teléfono con solo herramientas estándar en *nix?

Solución @Frédéric Loyer ¡Muchas gracias!

Maravilloso, con este método no es necesario acceder adba cada computadora en la que estoy, la mayoría de las veces lo que obtengo es busybox ncand or ssh. Esto es perfecto, con esto incluso puedo acceder a mi Android mediante ssh sin siquiera necesitar una conexión activa en el teléfono, ¿no es sorprendente?

Aquí esta lo que hice.

# This makes my computer to request an IP to my phone.
$sudo udhcpc -i usb0

# Since I got access to busybox-only most of the time, this gives me the IP from the "router" which is the phone.

$route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.42.129  0.0.0.0         UG    0      0        0 usb0
127.0.0.1       *               255.255.255.255 UH    0      0        0 lo
192.168.42.0    *               255.255.255.0   U     0      0        0 usb0

# ifconfig output shows me the new IP assigned to usb0 on my computer.

Después de esto, solo es cuestión de conectarme a mi teléfono o abrir puertos con Termux. ¡Asombroso! :)

Respuesta1

En el teléfono Android, has escrito:

busybox nc -v -w3 -l -p 3838

Esto parece estar bien.

En Linux, escriba ip route. Deberías tener algo como esto :

default via 37.59.40.254 dev enp1s0 onlink 
37.59.40.0/24 dev enp1s0 proto kernel scope link src 37.59.40.118 

La línea con la defaultruta indica la dirección del enrutador. (Aquí 37.59.40.254). Debería intentar escribir ncdesde Linux con esta dirección de enrutador, ya que es la dirección de Android en la subred RNDIS. Debe escribir solo una dirección IP: no 127.0.0.24. (127 direcciones están reservadas para intercambios internos dentro de su sistema Linux).

Aquí no existe el corte: Android crea una red que tal vez 192.168.32.0/24. En esta red hay dos direcciones definidas (una para ambos extremos), es posible que otras direcciones no funcionen.

información relacionada