J'ai un HTC Desire S qui a la possibilité de se connecter via USB et d'utiliser la connexion Internet de l'ordinateur. Cela fonctionne très bien sur Windows, mais j'ai du mal à le configurer dans Ubuntu. Lorsque je me connecte et sélectionne la connexion Internet dans le menu USB, le périphérique USB1 est créé et je peux cingler son adresse IP. J'ai essayé diverses configurations iptables et mis en place nat, mais je ne sais pas si je le fais bien, ou s'il doit y avoir une configuration supplémentaire ...
Merci pour toute aide.
linux
internet
reverse-tether
bleu-gris
la source
la source
Réponses:
Ce qui suit fonctionne pendant un certain temps, mais uniquement pour le navigateur.
Lorsque vous branchez votre téléphone via USB et choisissez la connexion Internet, vous devez obtenir un nouvel appareil RNDIS (USB0 ou USB1). Pour ubuntu, éditez / etc / network / interfaces et ajoutez les lignes suivantes:
Cela attribuera automatiquement une adresse IP lorsque le périphérique est ajouté. 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:
Vous avez également besoin d'un serveur DNS:
Cela fonctionne pendant quelques minutes, mais après un certain temps, le téléphone abandonne la recherche de HTC Sync et se déconnecte.
Pour les téléphones rootés
Vous pouvez vous connecter de façon permanente si vous avez un téléphone rooté (fre3vo a fonctionné pour moi). Exécutez ce qui suit avec adb.
Activez le mode USB pour le réseau et ADB:
Attribuez une IP à l'appareil usb0 sur le téléphone:
Ajoutez un itinéraire par défaut. L'IP doit être l'IP attribuée à usb0 sous linux:
Définissez le serveur DNS. Il s'agit du serveur DNS ouvert de Google, mais il peut s'agir de l'IP de votre ordinateur Linux si vous avez un serveur DNS:
la source
phoneip=$(arp -n | grep usb | awk '{print $1}') echo -n -e "\x00\x02\x00\x00" | nc $phoneip 6000 > /dev/null
la valeur hexadécimale de00 02 00 00
est tout ce qu'il recherche.netsh interface ip show config
pour voir tous les noms d'interface, puisnetsh interface ip show config name="Local Area Connection #2"
pour obtenir uniquement cette interface, oùLocal Area Connection #2
est le nom de la nouvelle carte. Vous pouvez renommer cela pour plus de commodité.A fait cette petite bash pour tout automatiser. Branchez simplement votre téléphone en mode de charge sur votre ordinateur et exécutez cette bash.
la source
Comme je n'ai pas accès à la machine Linux moi-même, je ne peux pas tester cette solution mais vous pouvez essayer les étapes décrites ici (traduction Google du russe) .
Commentaires sur la traduction:
Bonne chance!
la source
Ok, voici exactement ce que j'ai fait, aucun enracinement de HTC souhaité:
Configurer bind9 et NAT etc ...
note: 1: si vous faites simplement sudo echo 1> / proc / sys / net / ipv4 / ip_forward, vous obtiendrez une erreur d'autorisation, voici donc un script pour le processus 2: vous pouvez rendre iptables plus spécifique sur la façon dont il fait les choses en ajout de paramètres pour des appareils spécifiques.
branchez maintenant votre téléphone et sélectionnez «Internet pass through»
attendez que l'appareil apparaisse dans:
ifconfig
vérifiez qu'il est également dans:arp
J'ai trouvé que je devais débrancher l'appareil puis le rebrancher pour qu'il apparaisse dans arp, les choses ne fonctionnent pas correctement si arp n'affiche pas l'appareil.
L'appareil attendra alors que HTC Sync lui envoie un message, vous devez donc vous moquer du message HTC Sync:
Je peux écrire une version de ceci en utilisant D-Bus pour que cette dernière partie s'exécute automatiquement lorsque l'appareil est branché, etc.
Ok, voici mon travail en cours, je n'ai rien trouvé de générique sur d-bus donc j'ai opté pour une solution de piratage en utilisant udev .. Ce n'est pas parfait, par exemple la commande est exécutée deux fois, donc j'ai Je vais devoir voir si je peux filtrer un peu mieux les paramètres correspondants, ajouter également un délai d'attente sur le dernier script, juste en cas et voir si je peux remplacer arp par quelque chose de mieux, disons en regardant dans / proc
here.s mon fichier .rules de /etc/udev/rules.d j'ai créé
Vous pouvez l'appeler comme vous voulez, mais NE LA COMMENCEZ PAS AVEC UN NUMÉRO, de cette façon, elle s'exécute en dernier.
Ajoutez ce qui suit au fichier en tant que sudo en utilisant un éditeur de votre choix, etc.
En gros, si vous ne voyez pas ces 3 'r,
Ensuite, vous aurez besoin de deux autres fichiers, l'un pour enchaîner l'autre, car RUN de udev bloquera tout le reste (même s'il est exécuté en dernier !!) ... hmm ... de toute façon:
J'ai créé les fichiers dans mon répertoire personnel pour l'instant "/ home / olli /" ... alors n'oubliez pas de remplacer le bit '/ home / olli /' par où vous créez les fichiers:
donc pour moi, cd dans mon répertoire personnel.
créer un fichier appelé
contenant les éléments suivants:
le rendre exécutable
créer un autre fichier appelé
contenant les éléments suivants
Rendez-le exécutable:
J'espère que je devrais avoir une belle version rangée dès que pos. (probablement demain).
la source
Pour le partage de connexion inversé USB avec Android et Linux sans root, voir ma réponse ici
la source