Jak skonfigurować odwrotne tethering przez USB?

125
  1. Mój telefon HTC G2 jest zrootowany i działa w trybie Cyanogenmod 7
  2. Nie mam planu danych.
  3. Czasami chcę podłączyć telefon do Internetu, gdy nie ma Wi-Fi, aby zaktualizować aplikacje Market, wykonać kopię zapasową wiadomości SMS do Gmaila, zsynchronizować nowe kontakty z Gmaila itp. Czego nie mogę zrobić w trybie pamięci masowej USB.
  4. Mam komputer z systemem Windows 7 Professional podłączony do Internetu, ale nie mogę skonfigurować sieci Wi-Fi ad hoc. (Jeśli to zrobię, zauważą mnie i wytropią).

Czy telefon ma dostęp do Internetu przez połączenie USB z komputerem? Jeśli tak, jak to skonfigurować?

endolit
źródło
To wygląda na częściowe rozwiązanie: forum.xda-developers.com/showthread.php?t=1371345
endolit

Odpowiedzi:

46

Niedawno odkryłem SimpleRT, który działa bardzo dobrze z Linuksem (i najwyraźniej OSX). Po prostu włącz debugowanie USB na swoim urządzeniu (nie wymaga rootowania), zainstaluj APK połączony z tej strony na urządzeniu i podłącz go do komputera przez USB, a następnie uruchom plik binarny na komputerze.

Skonfiguruje połączenie jako tunel VPN ( tun0domyślnie), a urządzenie powinno monitować o (a) zezwolenie SimpleRT na utworzenie / nadzorowanie połączenia VPN, a także (b) na uruchomienie go, gdy urządzenie jest skonfigurowane jako szczególne akcesorium USB (co robi binarne).

Projekt nie zawiera gotowego pliku binarnego, więc przesłałem taki, który zbudowałem dla Ubuntu .


Poniżej znajduje się ręczna metoda, która powinna działać w systemie Linux lub Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-wandandroid-2-2

KROK 1:

W systemie Windows: zainstaluj sterowniki USB z zestawu Android SDK

W przypadku systemu Linux: nic nie można zrobić

KROK 2:

W Nexus One: podłącz kabel USB i aktywuj Tethering przez USB. Powinieneś zobaczyć w systemie Linux lub Windows nowy interfejs sieciowy.

KROK 3:

Na komputerze z systemem Linux skonfiguruj most:

# usb0 is the new network interface
# eth0 is the main interface connected to internet (or a gateway)

sudo ifconfig eth0 0.0.0.0  
sudo ifconfig usb0 0.0.0.0  
sudo brctl addbr br0  
sudo brctl addif br0 eth0  
sudo brctl addif br0 usb0  
sudo ifconfig br0 up  
sudo dhclient br0

Zobacz https://help.ubuntu.com/community/NetworkConnectionBridge, aby skonfigurować mosty

W systemie Windows połącz 2 interfejsy sieciowe

KROK 4:

Skonfiguruj interfejs usb0 swojego telefonu. Musisz opcje:

  1. Z komputera uruchom:

    ./adb shell netcfg usb0 dhcp
  2. Lub w terminalu głównym w telefonie wpisz:

    su
    netcfg usb0 dhcp

Powinieneś być teraz w stanie połączyć się z Internetem w telefonie za pomocą połączenia internetowego komputera.

Spróbuj zrobić ping www.google.com, aby się upewnić!

KROK 5:

Aby wyłączyć tethering wsteczny, najpierw odblokuj interfejsy na komputerze:

sudo ifconfig eth0 w dół  
sudo ifconfig usb0 w dół  
sudo ifconfig br0 w dół  
sudo brctl delbr br0  
sudo ifconfig eth0 w górę  
sudo dhclient eth0

Następnie w telefonie usuń zaznaczenie opcji Tethering przez USB!

Możesz także użyć systemu Windows, aby utworzyć sieć Wi-Fi (za pomocą Connectify ) i podłączyć do niego swoje urządzenie: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -internet-twój-telefon.html

Matthew Read
źródło
3
W moim telefonie „netcfg usb0 dhcp” powinno brzmieć „netcfg rdnis0 dhcp”
majizm
3
Na moim cyjanogenmodzie 13 nie można znaleźć netcfg :(
maf-soft
1
netcfg pozostaje brakujący w LineageOS. Zamiast tego możesz potrzebować busyboksa. android.stackexchange.com/questions/141900/…
Camille Goudeseune
Po uruchomieniu sudo ifconfig usb0 0.0.0.0 otrzymuję SIOCSIFADDR: Brak takiego urządzenia usb0: BŁĄD podczas pobierania flag interfejsu: Brak takiego urządzenia
1917769
@ user1917769 Musisz dowiedzieć się, jak twoje urządzenie nazywa interfejs USB, jeśli jest inny.
Mateusz
19

Jest jeszcze kilka możliwości - ale wszystkie, o których wiem, wymagają zrootowanego urządzenia.

Korzystanie z aplikacji Reverse Tether

Po pierwsze, w Sklepie Play dostępna jest bezpłatna aplikacja o nazwie Reverse Tether (jest to ograniczona wersja próbna, która ogranicza czas połączenia - ale przynajmniej możesz w ten sposób przetestować, czy Twoje urządzenie jest w pełni obsługiwane; pełna wersja to około 5 USD). Zgodnie z artykułem na AndroidAuthority konfiguracja powinna być tak łatwa jak 1-2-3: Podłącz kabel USB, uruchom aplikację, pozwól jej na automatyczną konfigurację (dostępna jest również konfiguracja ręczna) - i gotowe. Możesz także pozwolić mu poprosić o połączenie, gdy znajdzie połączenie USB.

Metody ręczne przy użyciu Wi-Fi

Wiem, że to nie jest USB - ale dla kompletności (i dając alternatywy) pomyślałem, że mógłbym również dodać te:

bawienie się systemem i łatanie go

Dostępnych jest także kilka metod ręcznych (opisanych np. Na XDA ) - ale są one w większości skomplikowane technicznie i oczekują łatania plików systemowych; nie dla codziennego użytkownika, ale raczej dla maniaka techniki.

Terminal i idź

Jednak inna fajna metoda powinna obejmować 3 linie w terminalu i została opisana w poście tutaj , aby połączyć się z siecią Wi-Fi ad-hoc. Zasadniczo powinno to wyglądać następująco:

su
ifconfig wlan0 up
iwconfig mode auto;
iwconfig wlan0 essid "your SSID" channel 11 mode auto
ifconfig wlan0 10.0.0.x netmask 255.255.255.0

manipulowanie jakimś plikiem konfiguracyjnym

Opisano tu także inną dość łatwą metodę , która polega na wpa_supplicant.confjednorazowej edycji pliku (ręczne dodanie sieci Wi-Fi ad-hoc).

Metoda Easy-Peasy

Czy naprawdę muszę powiedzieć? Użyj routera Wi-Fi. Istnieją nawet małe „routery podróżne” za mniej niż 50 USD. A następnie podłącz telefon tak, jak używasz go do innych sieci Wi-Fi ...

Izzy
źródło
7

Hej! jest na to aplikacja

Przekazywanie portów USB dla systemu Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Jestem trochę zdezorientowany, jak go używać, proszę poinformować, jeśli działa idealnie.

LifeH2O
źródło
1
To najwyraźniej wymaga serwera proxy innego niż sam komputer i obsługuje tylko przeglądanie stron internetowych?
endolith,
1
Mówi, że używa portu 8080, co niekoniecznie ogranicza go do przeglądania stron internetowych, prawda? Myślałem, że Market może to wykorzystać, jednak Market używa postu 5228.
Steve,
2

Znalazłem dobre narzędzie do odwrotnego tetheringu na forum XDA-Developers. Nazywa się to Android Tethering odwrotny . Działa z systemem Windows i wymaga zrootowanego telefonu.
Działa dobrze na moim telefonie HTC Desire HD z MIUI v4.

Ebrahim Byagowi
źródło
Korzystam z tego oprogramowania, które działa idealnie dobrze na mt galaxy s duosgts7562. Jestem w stanie korzystać ze wszystkich rzeczy związanych z Internetem poprzez tethering wsteczny.
Jasser,
Aby korzystać z YouTube i innych takich aplikacji, musisz kliknąć przycisk instalowania hacka, a następnie jesteś gotowy do pracy.
Jasser,
2

Android tethering wsteczny:

Uwaga: Działa tylko w zrootowanym telefonie z Androidem.

  1. Podłącz urządzenie z Androidem przez USB.
  2. Włącz tethering przez USB. Aby to zrobić, przejdź do Ustawienia → Więcej ... → Tethering i mobilny punkt dostępu → Tethering przez USB .

  3. Na komputerze hosta połączenie modemu USB może zostać wykryte przez menedżera sieci.
    Jego nazwa będzie przypominać „Połączenie przewodowe 2” (lub 3).
    Musisz edytować „IPV4 / Method” na „Shared to other computers”.

3.1 Bez menedżera sieci musisz to zrobić ręcznie:

    $ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Teraz, jak wyjaśniono tutaj na końcu kroku 1 , musisz zmodyfikować za iptablespomocą sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Ale ... wolę pozwolić menedżerowi sieci to zrobić, jeśli to możliwe.

  1. Na urządzeniu z Androidem możesz wydawać te polecenia za pomocą terminalu sulub z komputera hosta za pomocą ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Jeśli nie otrzyma adresu IP lub jeśli używasz aplikacji, w której pożądany jest statyczny adres IP, np. Aplikacji „Webkey for Android”, przypisz go ręcznie:

    $ adb shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
    $ adb shell su -c "route add default gw 10.42.0.1 dev rndis0"
    

Teraz internet będzie działał na telefonie z Androidem.

Aby sprawdzić w adb shellterminalu Android lub Android, spróbuj wykonać polecenie ping www.google.com.

Mi to pasuje.

DreamCoder
źródło
1
Netcfg mojego urządzenia wydaje się być bardziej ograniczony, a ręczna wersja kroku 4 kończy się niepowodzeniem: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Read
1
@MatthewCzytaj, że polecenie jest nieprawidłowe, tak naprawdę ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, btw, aby zobaczyć, że wszystkie interfejsy są netcfgsame. podobne instrukcje są wyszczególnione tutaj
Aquarius Power
2

Dla nieukorzenionych urządzeń

Wiem, że to późna odpowiedź, ale ponieważ wszystkie istniejące odpowiedzi sugerują, że odwrotne tethering przez USB jest możliwe tylko wtedy, gdy twoje urządzenie jest zrootowane lub ma systemową obsługę odwrotnego tetheringu, pomyślałem, że warto wskazać jeszcze jedną opcję:

Szukałem rozwiązania do odwrotnego tetheringu, które działałoby na moich nierootowanych urządzeniach i na MacBooku, ale nic nie znalazłem. W końcu zacząłem opracowywać własne rozwiązanie. Rezultatem jest aplikacja, która działa na urządzeniach z Androidem 4.0 lub nowszym po stronie klienta oraz na wszystkich głównych systemach operacyjnych po stronie hosta.

Aplikacja ReverseTethering NoRoot

Aplikacja jest dostępna w Google Play: ReverseTethering NoRoot

FD_
źródło
1
Nie mogłem tego połączyć z Windows lub Ubuntu, ale wydawało się, że działa na OSX.
Matthew Read
@MatthewRead Wyślij mi e-mail, a dam z siebie wszystko, aby pomóc w pracy z systemem Windows i Ubuntu.
FD_
2

Wiem, że to odpowiedź jest jeszcze późniejsza, ale warto o tym wspomnieć.

Nie wymaga rootowania!

Nie wymaga instalacji aplikacji! * Nie jest to nawet możliwe, jeśli nie masz innego połączenia z Internetem.

Istnieje projekt o nazwie gnirehtet .

  1. Zainstaluj adb na komputerze głównym (Windows / Linux / Mac)
  2. Pobierz plik zip gnirehtet na hosta
  3. Rozpakuj to
  4. Uruchom polecenie

Otóż ​​to! Aby uzyskać więcej informacji, przeczytaj plik readme gnirehtet na ich stronie internetowej.

* = Za kulisami zainstaluje plik apk na twoim urządzeniu przez połączenie USB.

ffonz
źródło
Tylko pełna, działająca, niekomercyjna, wieloplatformowa odpowiedź tutaj. Nawet Google Play łączy się (Android 9 Pie).
cdlvcdlv