38 votos

Cómo configurar los ajustes DHCP de WIFI Tethering(Hotspot) en Android

Al conectar mi pc al punto de acceso wifi de Android, le asignó una dirección 192.168.42.x a mi pc. Realmente necesito cambiar esto ya que entra en conflicto con una de nuestras subredes de trabajo, ¿es posible?

4 votos

Mi móvil está rooteado. No me importa cambiar los archivos del sistema si es necesario.

0 votos

Sólo como respuesta a los matices en algunas de las grandes respuestas anteriores, en mi práctica el rango 192.168.43.0/24 es por defecto Android / proveedor asignado para el tethering WiFi y 192.168.42.0/24 es para el tethering USB.

0 votos

30voto

Sergey Vlasov Puntos 1419

Desafortunadamente, no hay forma de cambiar el rango de direcciones IP para el soporte de amarre incorporado, incluso en CyanogenMod. La IP del punto de acceso Wi-Fi está codificada en Android.net.wifi.WifiStateMachine.startTethering() la IP de conexión USB está codificada en com.Android.server.connectivity.Tethering .

Sin embargo, si su teléfono está rooteado, puede intentar usar aplicaciones de terceros para la conexión que tienen la opción de cambiar el rango de direcciones IP. Por ejemplo, cuando la conexión USB integrada se rompió en el alfa de CyanogenMod para el Samsung Galaxy W, usé Ataduras con cable para los usuarios de root que tiene esa opción. Para la conexión Wi-Fi puedes probar el Ataduras inalámbricas para usuarios de root de los mismos autores, que también tiene la opción de cambiar el rango de direcciones IP.

0 votos

+1 por la información. Mi dispositivo está rooteado, pero la aplicación Wireless Tether for Root Users no funciona en mi móvil. Debe haber alguna manera de cambiar el rango de IP en el teléfono rooteado, C'Mon Man!, Android es un sistema operativo abierto después de todo.

0 votos

@VVK Hay una manera. Sólo hay que recompilar el código fuente.

0 votos

Las aplicaciones que mencionas parece que ya no existen. ¿Puedes encontrar alguna nueva versión en línea, ya que conoces el nombre de los editores? Encontré algunas otras, pero ninguna de ellas era gratuita...

25voto

cde Puntos 211

La conexión wifi integrada de Android está diseñada para usar 192.168.43.1/24 como servidor, con netd manejando la conexión, usando dnsmasq. El primer rango del DNS es 192.168.42.1-254 y el segundo rango del DNS es 192.168.43.1-254.

Netd no es fácil de cambiar. Requiere un enchufe para comunicarse con ella, y ese enchufe se toma cuando Android comienza a atarse. Pero al revisar los archivos fuente de Tethering.java (usé Froyo) vemos:

// usb client will be provided 192.168.42.129
private static final String USB_NEAR_IFACE_ADDR      = "192.168.42.129";
private static final String USB_NETMASK              = "255.255.255.0";

// FYI - the default wifi is 192.168.43.1 and 255.255.255.0

private String[] mDhcpRange;
private static final String DHCP_DEFAULT_RANGE1_START = "192.168.42.2";
private static final String DHCP_DEFAULT_RANGE1_STOP  = "192.168.42.254";
private static final String DHCP_DEFAULT_RANGE2_START = "192.168.43.2";
private static final String DHCP_DEFAULT_RANGE2_STOP  = "192.168.43.254";

Y más tarde vemos esos rangos usados, COMO RETROCESO .

    mDhcpRange = context.getResources().getStringArray(
            com.android.internal.R.array.config_tether_dhcp_range);
    if ((mDhcpRange.length == 0) || (mDhcpRange.length % 2 ==1)) {
        mDhcpRange = new String[4];
        mDhcpRange[0] = DHCP_DEFAULT_RANGE1_START;
        mDhcpRange[1] = DHCP_DEFAULT_RANGE1_STOP;
        mDhcpRange[2] = DHCP_DEFAULT_RANGE2_START;
        mDhcpRange[3] = DHCP_DEFAULT_RANGE2_STOP;
    }

La fuente principal de los rangos de dhcp no es el hardcode 42 y 43, sino que se lee desde array.config_tether_dhcp_range, una matriz de cadenas internas. Pero actualmente está vacía.

Podrías editar el marco de trabajo de Android. En mi teléfono, es /system/framework/framework-res.apk. Hay un ton de tutoriales en línea para la edición del marco de trabajo-res.apk, desde simples cuerdas hasta la temática completa. Encuentra uno para tu teléfono y la versión Android.

Lo principal que quieres cambiar es el /res/valores/arrays.xml

Busca <array name="config_tether_dhcp_range" />

Cambiar a:

<string-array name="config_tether_dhcp_range">
     <item>192.168.x.y</item>
     <item>192.168.x.z</item>
</string-array>

compilar/comprimir/señalar según sea necesario (seguir un tutorial), y luego reinstalar.

Si quieres más de un rango, sólo copia los dos artículos una y otra vez. Siempre tienes que proporcionar un inicio y una parada para cada rango. Intenta mantenerlo en el mismo /24, es decir, 192.168.50.5 y 192.168.50.99 o lo que sea. Puedes confirmar que está funcionando con busybox ps | grep dnsmasq o si no tienes un buzón ocupado ps dnsmasq y luego usar el PID en cat /proc/pid/cmdline . Deberías conseguir (o similar):

/system/bin/dnsmasq --no-daemon --no-poll -no-resolv --dhcp-range=192.168.50.5,192.168.50.99,1h

FWIW, mi conexión WIFI usa los rangos dnsmasq por defecto, pero mi ordenador fue asignado al 192.168.43.147/24 y la puerta de enlace 192.168.43.1/24. No estoy seguro de por qué el tuyo tiene por defecto una dirección 42.x.

3 votos

42 es para USBNET 43 es para wifi

0 votos

Buen hallazgo, ¿dónde has visto eso?

1 votos

Porque si te atascas por usb tienes 42. Si te conectas por wifi obtienes 43.

5voto

Trent Puntos 51

Sé que este es un post antiguo, pero pensé en proporcionar una actualización. Parece que algunos fabricantes y versiones de Android ahora SÍ permiten cambiar el rango de subred IP para el servidor DHCP a través de la interfaz de usuario cuando se utiliza la función de punto de acceso WiFi. Aquí es donde se encuentra en un HTC One M8 con Android 6.0. YMMV.

En la pantalla del Hotspot Móvil, haz clic en el icono de los 3 puntos (más), ve a Avanzado y luego a Configuración de la LAN. En "IP local" cambie la dirección IP a su IP deseada. En "DHCP local" cambie la IP inicial para que coincida con la subred de su dirección IP.

Trent

0 votos

¿Sabes si los nuevos teléfonos HTC también tienen esta opción?

2voto

Jack Wade Puntos 231

El rango de direcciones IP DHCP por defecto está codificado, por lo que no puedes cambiarlo sin reconstruir la ROM con el código fuente modificado. O bien utilizar un pequeño hack. Reemplazar /system/bin/dnsmasq (el servidor DHCP/DNS hasta Android 9) con un shell personalizado script que sustituye la antigua subred por la nueva antes de ejecutar la actual dnsmasq binario.

Para ver los pasos detallados, consulte ¿Cómo cambiar el rango de direcciones IP DHCP por defecto?

0 votos

¿Qué utiliza ahora Android 10?

1 votos

@sudo Implementación en Java del servidor DHCP/DNS. Pero al menos algunas ROMs siguen utilizando dnsmasq .

0 votos

@Irfan ¿cuál es el procedimiento en la aplicación?

1voto

adamf663b Puntos 41

Ahora son dinámicos. Tengo un dispositivo que cuando se conecta al hotspot del teléfono obtiene la dirección 192.168.XXX.85 donde XXX cambia todo el tiempo, posiblemente a diario o con cada reinicio.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X