Tengo un HTC Desire S que tiene la opción de conectarse a través de USB y usar la conexión a Internet de la computadora. Esto funciona bien en Windows, pero estoy luchando por configurarlo en Ubuntu. Cuando me conecto y selecciono el acceso a Internet desde el menú USB, se crea el dispositivo USB1 y puedo hacer ping a su dirección IP. Probé varias configuraciones de iptables y configuré nat, pero no estoy seguro de si lo estoy haciendo bien o si es necesario que haya alguna configuración adicional ...
Gracias por cualquier ayuda.
linux
internet
reverse-tether
gris azulado
fuente
fuente
Respuestas:
Lo siguiente funciona por un tiempo, pero solo para el navegador.
Cuando conecta su teléfono a través de usb y elige la transferencia de Internet, debe obtener un nuevo dispositivo RNDIS (usb0 o usb1). Para ubuntu, edite / etc / network / interfaces y agregue las siguientes líneas:
Esto asignará una IP automáticamente cuando se agregue el dispositivo. Si una dirección de red no se asigna automáticamente a usb0 o usb1, debe hacerlo manualmente.
Entonces necesita configurar NAT en su computadora Linux. Algo como:
También necesita un servidor DNS:
Esto funciona durante unos minutos, pero después de un tiempo el teléfono deja de buscar HTC Sync y se desconecta.
Para teléfonos rooteados
Puede conectarse permanentemente si tiene un teléfono rooteado (fre3vo funcionó para mí). Ejecute lo siguiente con adb.
Habilite el modo usb para red y adb:
Asigne una IP al dispositivo usb0 en el teléfono:
Agregar una ruta predeterminada. La IP debe ser la IP asignada a usb0 en Linux:
Configura el servidor DNS. Este es el servidor DNS abierto de Google, pero puede ser la IP de su computadora Linux si tiene un servidor DNS:
fuente
phoneip=$(arp -n | grep usb | awk '{print $1}') echo -n -e "\x00\x02\x00\x00" | nc $phoneip 6000 > /dev/null
el valor hexadecimal de00 02 00 00
es todo lo que está buscando.netsh interface ip show config
para ver todos los nombres de las interfaces y luegonetsh interface ip show config name="Local Area Connection #2"
obtener solo esa interfaz, donde seLocal Area Connection #2
llama el nuevo adaptador. Puede cambiar el nombre de esto por conveniencia.A hizo esta pequeña fiesta para automatizar todo. Simplemente conecte su teléfono en modo de carga a su computadora y ejecute este bash.
fuente
Como yo mismo no tengo acceso a la máquina Linux, no puedo probar esta solución, pero puedes probar los pasos descritos aquí (traducción de Google del ruso) .
Comentarios a la traducción:
¡Buena suerte!
fuente
Ok, esto es exactamente lo que hice, no se desea rootear HTC:
Configurar bind9 y NAT, etc.
nota: 1: si solo hace sudo echo 1> / proc / sys / net / ipv4 / ip_forward obtendrá un error de permisos, así que aquí hay un script para el proceso 2: puede hacer que iptables sea más específico sobre cómo hace las cosas al Agregar parámetros para dispositivos específicos.
ahora conecte su teléfono y seleccione 'internet pass through'
espere a que aparezca el dispositivo:
ifconfig
compruebe que también está en:arp
Descubrí que tenía que desconectar el dispositivo y luego enchufarlo nuevamente para que aparezca en arp, las cosas no funcionan correctamente si arp no muestra el dispositivo.
El dispositivo esperará a que HTC Sync le envíe un mensaje, por lo que debe burlarse del mensaje HTC Syncs:
Puedo escribir una versión de esto usando D-Bus para que la última parte se ejecute automáticamente cuando el dispositivo está enchufado, etc.
Ok, aquí está mi trabajo en progreso, no pude encontrar nada 'genérico' en d-bus, así que opté por un poco de solución de pirateo usando udev ... Esto no es perfecto, por ejemplo, el comando se ejecuta dos veces, así que Tendré que ver si puedo filtrar los parámetros coincidentes un poco mejor, también agregar un tiempo de espera en el último script, por si acaso, y ver si puedo reemplazar arp con algo un poco mejor, digamos buscando en / proc
aquí está mi archivo .rules de /etc/udev/rules.d que creé
Puedes llamarlo como quieras pero NO COMIENCE CON UN NÚMERO, de esa manera se ejecuta al final de todo.
Agregue lo siguiente al archivo como sudo usando un editor de su elección, etc.
Básicamente, si no ves esas 3 'r,
Entonces necesitará dos archivos más, uno para encadenar el otro, ya que RUN desde udev bloqueará todo lo demás (¡aunque se ejecute por última vez!) ... hmm ... de todos modos:
Creé los archivos en mi directorio de inicio por ahora "/ home / olli /" ... así que recuerde reemplazar el bit '/ home / olli /' con el lugar donde cree los archivos:
así que para mí, cd a mi directorio de inicio.
crear un archivo llamado
que contiene lo siguiente:
hazlo ejecutable
crear otro archivo llamado
contactando lo siguiente
Hazlo ejecutable:
Espero tener una buena versión ordenada tan pronto como sea posible. (probablemente mañana).
fuente
Para la conexión inversa USB con Android y Linux sin rooting, vea mi respuesta aquí
fuente