GNU/Linux >> Tutoriels Linux >  >> Linux

Android - Comment configurez-vous l'intercommunication Internet (reverse-tether) sous Linux ?

Ce qui suit fonctionne pendant un certain temps, mais uniquement pour le navigateur.

Lorsque vous branchez votre téléphone via USB et choisissez Internet pass-through, vous devriez obtenir un nouveau périphérique RNDIS (usb0 ou usb1). Pour ubuntu, modifiez /etc/network/interfaces et ajoutez les lignes suivantes :

iface usb0 inet dhcp
iface usb1 inet dhcp

Cela attribuera automatiquement une adresse IP lors de l'ajout de l'appareil. Si une adresse réseau n'est pas attribuée automatiquement à usb0 ou usb1, vous devez le faire manuellement.

Ensuite, vous devez configurer NAT sur votre ordinateur Linux. Quelque chose comme :

sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo echo 1 > /proc/sys/net/ipv4/ip_forward 

Vous avez également besoin d'un serveur DNS :

sudo apt-get install bind9

Cela fonctionne pendant quelques minutes, mais au bout d'un moment, le téléphone arrête de chercher HTC Sync et se déconnecte.

Pour les téléphones rootés

Vous pouvez vous connecter en permanence si vous avez un téléphone rooté (fre3vo a fonctionné pour moi). Exécutez ce qui suit avec adb.

Activer le mode USB pour le réseau et l'adb :

adb shell echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch

Attribuez une adresse IP au périphérique USB0 sur le téléphone :

adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up

Ajoutez une route par défaut. L'adresse IP doit être l'adresse IP attribuée à usb0 sous Linux :

adb shell route add default gw 192.168.99.1 dev usb0

Définissez le serveur DNS. Il s'agit du serveur DNS ouvert de Google, mais il peut s'agir de l'adresse IP de votre ordinateur Linux si vous disposez d'un serveur DNS :

adb shell setprop net.dns1 8.8.8.8

A fait ce petit bash pour tout automatiser. Branchez simplement votre téléphone en mode charge sur votre ordinateur et lancez ce bash.

#!/bin/bash
/opt/android-sdk-update-manager/platform-tools/adb shell 'echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch'
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell setprop net.dns1 8.8.8.8

get_ip ()
{
ifconfig usb0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .
}

echo "waiting for IP on computer usb0"
while [[ `get_ip` < 192 ]];do sleep 2; done
ip=`get_ip`
echo "IP adress is $ip "
/opt/android-sdk-update-manager/platform-tools/adb shell route add default gw $ip dev usb0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Linux
  1. Comment définir ou modifier le nom d'hôte du système sous Linux

  2. Comment définir/créer des variables d'environnement et de shell sous Linux

  3. Comment changer de shell sous Linux

  4. Comment trouver le shell que vous utilisez sous Linux

  5. Comment définir la variable $Path sous Linux

Comment définir ou modifier le nom d'hôte sous Linux

Comment configurer la planification torrent sur Linux

Comment utiliser le terminal Linux dans Android

Comment installer Kali Linux sur un téléphone Android

Comment définir ou modifier le nom d'hôte sous Linux

Comment changer un shell d'utilisateurs sous Linux