Jak udostępnić przewodowe połączenie internetowe telefonowi z Androidem (tethering wsteczny)?

26

Próbowałem udostępnić moje przewodowe połączenie internetowe mojemu telefonowi z Androidem. Jednak nie udało mi się tego zrobić. Czy ktokolwiek z was kiedykolwiek odniósł sukces? Systemy operacyjne, których używam, są następujące:

  • Ubuntu 10.10
  • Android 2.3
Erdem
źródło
1
Od pewnego czasu próbuję znaleźć rozwiązanie tego problemu i próbowałem wielu rzeczy, ale bez powodzenia. Myślę, że najlepszą opcją byłoby utworzenie sieci bezprzewodowej na Ubuntu, która NIE jest siecią Wi-Fi Adhoc (ponieważ Android nie wykrywa takich połączeń). Istnieją instrukcje, jak to zrobić, ale uważam je za zbyt skomplikowane lub po prostu nie działają. Mile widziane byłoby więc krok po kroku, jak to zrobić.
geoffrey
Prawdopodobnie będziesz musiał podać nazwę sieci na swoim urządzeniu z Androidem.
Jo-Erlend Schinstad
Nadal nie ma zadowalającej odpowiedzi po okresie nagród, więc przypuszczam, że odpowiedź na to pytanie brzmi: to naprawdę trudne! Przyznałem nagrodę za najbardziej „zagłosowaną” odpowiedź, pomocną odpowiedź, nawet jeśli nie rozwiązanie, którego szukałem.
geoffrey
@ Jo-ErlendSchinstad Dzięki, próbowałem tego, ale to nie pomaga.
geoffrey

Odpowiedzi:

10

Tak to mozliwe. Mam system Ubuntu 11.04, NetworkManager 0.8.4, Android Nexus One z systemem Cyanogenmod 7.

Zgodnie z opisem Romana kliknij prawym przyciskiem myszy ikonę NetworkManager i wybierz „Utwórz nową sieć bezprzewodową”. Zdecydowałem się pozostawić połączenie szeroko otwarte (bez WPA, bez WEP). Mój telefon od razu widział sieć i połączyłem się bez problemu. Mostkowanie zostało wykonane automatycznie, więc mogłem przeglądać internet bez konfigurowania czegokolwiek dodatkowego.

Powodem problemów z powyższą metodą jest to, że podstawowy system Android 2.3 nie obsługuje sieci ad-hoc. Mówiąc ściślej, wpa_supplicant Androida nie wyświetla sieci ad-hoc. Istnieje wiele sposobów rozwiązania tego problemu. Szukaj Google i poluj na forach XDA-Developers. Prawdopodobnie będziesz musiał zhakować telefon, który wykracza poza zakres tej odpowiedzi.

Moja osobista rekomendacja: jeśli twój telefon obsługuje Cyanogenmod, możesz go zainstalować, aby uzyskać wsparcie ad-hoc i inne zachwycające przysmaki. Musisz zrootować telefon, co może, ale nie musi, być w twoim guście.

Inną alternatywą jest wypróbowanie „trybu infrastruktury”. Po skonfigurowaniu sieci bezprzewodowej ad-hoc zgodnie z powyższym opisem kliknij ikonę NetworkManager, wybierz „Edytuj połączenia”. Kliknij kartę sieci bezprzewodowej i edytuj właśnie utworzoną sieć ad-hoc. W trybie wybierz „Infrastruktura”. Nie jestem pewien, czy to zadziała, ponieważ nie mam standardowego telefonu z Androidem do przetestowania. Myślę, że jeśli problem stanowi tryb ad-hoc, rozwiązaniem może być inny tryb.

Powodzenia!

naukowiec
źródło
Dzięki! Rozumiem, że zrootowanie Wildfire S nie jest takie proste, więc dla mnie to nie zadziała. „Tryb infrastruktury” brzmi interesująco, ale jak dotąd nie udało mi się go uruchomić - po prostu się nie łączy. Spróbuję googlować w poszukiwaniu rozwiązań tego problemu ...
Geoffrey
3

Po pierwsze, jak wszyscy wiemy, standardowa pamięć ROM systemu Android, tj. Ta, która jest dostarczana z telefonem, nie obsługuje trybu ad-hoc (zaskakująco), a nawet Ice-Cream Sandwich (Android 4.0) nie obsługuje trybu ad-hoc.

Musimy więc utworzyć punkt dostępu za pomocą Ubuntu, do którego można łatwo podłączyć każdy telefon z Androidem. W Windows możesz użyć Connectify, aby to zrobić i działa idealnie dobrze, ale z Ubuntu możesz mieć pewne problemy, w zależności od tego, czy twoja karta Wi-Fi obsługuje tryb punktu dostępu (tryb główny), czy nie.

Teraz, nawet jeśli karta Wi-Fi obsługuje tryb punktu dostępu, następnym problemem jest to, czy sterownik karty Wi-Fi obsługuje tryb AP, czy nie, jeśli tak, problem zostanie rozwiązany, a jeśli nie, masz trzy opcje:

  1. Poczekaj, aż sterownik otrzyma aktualizację dla trybu AP. (wielu sterowników kart Wi-Fi jest wciąż w fazie przejściowej)

  2. Kup klucz WiFi i upewnij się, że obsługuje tryb AP na Ubuntu.

  3. Użyj systemu Windows, w którym Connectify wykona zadanie za Ciebie.

Jeśli jesteś zainteresowany, możesz opublikować nazwę sterownika karty WiFi, aby pomóc ci dalej. Użyj tego polecenia:

lshw -c network
adnan kamili
źródło
Działające rozwiązanie, kliknij ten link: superuser.com/questions/407371/…
adnan kamili
3

Znalazłem działające rozwiązanie do udostępniania mojego połączenia internetowego z telefonem przez odwrotne tethering przez USB, ale mój laptop używa do tego połączenia bezprzewodowego:

Internet -> Bezprzewodowy -> Laptop -> Kabel USB -> Telefon z Androidem

Więc jeśli byłoby to możliwe dla Ciebie lub jeśli masz drugą kartę Ethernet na swój komputer, powinieneś sprawdzić aplikację „Reverse Tether Trial” ze sklepu Play.

  1. Połącz swój komputer z Internetem jak zwykle
  2. Podłącz swój telefon z Androidem przez USB do komputera
  3. Aktywuj „Tethering przez USB” w „Ustawieniach androidów”
  4. Utwórz nowe połączenie przewodowe w menedżerze sieci Ubuntus, jak opisano tutaj
  5. Uruchom Odwróć Tether i postępuj zgodnie z instrukcjami
  6. Przeglądaj w telefonie :)
cień
źródło
2

Sprawdź ten link i powiedz mi, czy jest to mniej więcej to, czego szukasz.
https://help.ubuntu.com/community/WifiDocs/WirelessAccessPoint

Jeśli wygląda na to (lub jest blisko), czego szukasz, daj mi znać.
Jestem zainteresowany zrobieniem tego sam, tylko z niewielką modyfikacją kierowania ruchem przez ppp0. Które jest połączeniem na uwięzi.
Być może możemy dostosować te instrukcje, aby zrobić to, czego potrzebujemy.

Edycja: wygląda na to, że najlepiej działałoby na dedykowanym komputerze (zasadniczo czyniąc go routerem). Wciąż przeglądam konfiguracje, ale może to powodować pewne problemy z laptopem, którego można użyć do połączenia z różnymi lokalizacjami.
Ponadto wydaje się, że jest kilka kroków dotyczących komputera z systemem Windows, którego być może uda nam się pominąć.

Będziesz także chciał to zobaczyć. https://help.ubuntu.com/community/WifiDocs/MasterMode

Argusvision
źródło
Próbowałem też skonfigurować sieć bezprzewodową za pomocą Network Managera (jak sugeruje RocketScientist) bez żadnego prawdziwego sukcesu. To nie znaczy, że nie może działać, tak jak dla mnie. Może jest jeszcze inna zmienna, której nie mam. na przykład mosty.
Argusvision
dzięki, to brzmi interesująco (choć raczej skomplikowane). Niestety nie mam czasu, aby przyjrzeć się temu przed niedzielą, ale proszę zgłaszać wszelkie sukcesy z tym związane.
geoffrey
Mam nadzieję, że będę miał okazję się z tym pograć. Czy jest szansa, że ​​możesz przedłużyć nagrodę do poniedziałku rano, abym mógł pracować w ten weekend?
Argusvision
przepraszam, ale nie sądzę, żebym mógł przedłużyć nagrodę ...
Geoffrey
... ale okres „karencji” wynosi 24 godziny po zakończeniu nagrody, co daje ci kolejny dzień
Geoffrey
2

Działało dla mnie rozwiązanie z kablem USB na Kubuntu 15.10 i Android 4.2.2 na Samsung S3 mini

Wymagania

Android

  1. zainstalowana aplikacja busybox
  2. Kabel USB do komputera
  3. Debugowanie USB włączone na urządzeniu z Androidem (aby móc adbować z komputera)

Komputer

  1. W twoim / etc / network / interfaces musisz mieć te dwie linie, w przeciwnym razie pojawi się no such devicebłąd

    allow-hotplug usb0
    auto usb0
    
  2. zainstalowany adb ( apt-get install android-tools-adb)

Połączenie

  1. W Androidzie włącz Ustawienia-> Połączenia-> Połączenia sieciowe-> Tethering i przenośny hotspot-> Tethering przez USB, spowoduje to utworzenie połączenia USB z komputerem, które możesz zobaczyć za pomocą ifconfigpolecenia na komputerze. Spójrz @ nazwa interfejsu, która enxf6759e7fbebdtym razem jest dla mnie .

    enxf6759e7fbebd Link encap:Ethernet  HWaddr a2:61:3c:83:1c:38  
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:6 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000 
        RX bytes:464 (464.0 B)  TX bytes:0 (0.0 B)
    
    eth0      Link encap:Ethernet  HWaddr 50:e5:49:47:f4:fd  
        inet addr:192.168.178.20  Bcast:192.168.178.255  Mask:255.255.255.0
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:40894966 errors:0 dropped:0 overruns:0 frame:0
        TX packets:86312833 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000 
        RX bytes:20969506400 (20.9 GB)  TX bytes:120329513606 (120.3 GB)
    
    lo        Link encap:Local Loopback  
        inet addr:127.0.0.1  Mask:255.0.0.0
        UP LOOPBACK RUNNING  MTU:65536  Metric:1
        RX packets:30521 errors:0 dropped:0 overruns:0 frame:0
        TX packets:30521 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0 
        RX bytes:10868749 (10.8 MB)  TX bytes:10868749 (10.8 MB)
    
  2. Przypisz adres IP do swojego komputera za pomocą tego interfejsu sieciowego, wykonując następującą komendę, sudo ifconfig enxf6759e7fbebd 192.168.42.135 netmask 255.255.255.0gdzie enxf6759e7fbebd to interfejs otrzymany w poprzednim kroku.

  3. Włącz przekazywanie adresów IP za pomocą

    sudo -- sh -c  'echo 1 > /proc/sys/net/ipv4/ip_forward'
    
  4. Włącz nat na swoim komputerze za pomocą

    sudo iptables -t nat -F
    sudo iptables -t nat -A POSTROUTING -j MASQUERADE
    
  5. Na komputerze połącz się z urządzeniem z Androidem za pomocą

    adb shell
    su
    
  6. już mając połączenie, możesz to sprawdzić za pomocą busybox ifconfig -apolecenia

    rndis0    Link encap:Ethernet  HWaddr FA:08:D6:1A:35:90  
        inet addr:192.168.42.129  Bcast:192.168.42.255  Mask:255.255.255.0
        inet6 addr: fe80::f808:d6ff:fe1a:3590/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000 
        RX bytes:0 (0.0 B)  TX bytes:564 (564.0 B)
    

możesz dodać domyślną trasę do adresu sieciowego komputera, który ustaliłeś w punkcie 2 za pomocą busybox route add default gw 192.168.42.135 dev rndis0i to wszystko (możesz sprawdzić swoje trasy za pomocą busybox routepolecenia)

Philippe Gachoud
źródło
1

Zakładając, że masz także kartę bezprzewodową w komputerze: W Menedżerze sieci kliknij menu i „Utwórz nową sieć bezprzewodową ...”. Później zobaczysz sieć na swoim Androidzie.

gpoo
źródło
1

Możesz utworzyć sieć bezprzewodową z menu Wi-Fi swoich komputerów. Kliknij prawym przyciskiem myszy ikonę Wi-Fi na pasku zadań i kliknij Utwórz nową sieć. Wypełnij opcje, a następnie połącz się z nim z telefonu. Upewnij się, że komputer jest również podłączony do przewodowego kabla sieciowego. Z mojego zrozumienia kabel powinien zostać automatycznie połączony z siecią bezprzewodową i wszystko powinno działać dobrze.

rzymski
źródło
Dziękuję za odpowiedź. Po utworzeniu nowej sieci bezprzewodowej nie widzę tej sieci w telefonie. Co zrobiłem źle?
Erdem,
To bardzo dziwne. Czy na pewno Twój komputer ma kartę Wi-Fi?
Rzym.
2
Android nie wykrywa sieci bezprzewodowej typu „adhoc” utworzonej przez menedżera sieci, więc to nie zadziała.
geoffrey,
0

To działa dla mnie

  • Ubuntu 12.04
  • Android 4.0.4

Zainstaluj hostapd

sudo apt-get install hostapd

Krótko mówiąc, hostapd pozwala na tworzenie punktów dostępu do Wi-Fi z oprogramowaniem, umożliwiając przyzwoitą liczbę opcji konfiguracji. W pozostałej części tego postu pokażę, jak utworzyć punkt dostępu do oprogramowania w systemie Linux za pomocą hostapd i udostępnić swój internet urządzeniom za jego pośrednictwem

Po zainstalowaniu hostapd zainstaluj serwer dhcp

sudo apt-get install dhcp3-server hostapd

Następnie otwórz program do geditedycji tekstu, na przykład Skopiuj do niego następujące elementy.

interface=wlan0
driver=nl80211
ssid=YOUR_SSID_NAME
hw_mode=g
channel=11
wpa=1
wpa_passphrase=YOUR_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_ptk_rekey=600

Zmień, aby wpisać nazwę sieci po ssid=, a także hasło po wpa_passphrase=.

zapisz plik jak hostapd.confw folderze domowym

Utwórz nową sieć bezprzewodową ad-hoc i podłącz ją.

Teraz otwórz terminal i wpisz:

sudo hostapd hostapd.conf

Włącz telefon wifi i znajdź swój identyfikator SSID.

Źródło z TUTAJ

Achu
źródło
To mnie przybliża, ale telefon utknął, próbując uzyskać adres IP.
DavidG