Mam HTC Desire S z opcją połączenia przez USB i korzystania z połączenia internetowego komputera. Działa to dobrze w systemie Windows, ale mam problemy z konfiguracją w Ubuntu. Kiedy podłączam się i wybieram łącze internetowe z menu USB, urządzenie USB jest tworzone i mogę pingować jego adres IP. Próbowałem różnych konfiguracji iptables i konfiguracji nat, ale nie jestem pewien, czy robię to poprawnie, czy też potrzebuję dodatkowej konfiguracji ...
Dziękuję za wszelką pomoc.
linux
internet
reverse-tether
niebieski szary
źródło
źródło
Odpowiedzi:
Poniższe działa przez chwilę, ale tylko w przeglądarce.
Po podłączeniu telefonu za pomocą USB i wybraniu połączenia internetowego powinieneś otrzymać nowe urządzenie RNDIS (USB0 lub USB1). W przypadku Ubuntu edytuj / etc / network / interfaces i dodaj następujące linie:
Spowoduje to przypisanie adresu IP automatycznie po dodaniu urządzenia. Jeśli adres sieciowy nie jest przypisany automatycznie do usb0 lub usb1, musisz to zrobić ręcznie.
Następnie musisz skonfigurować NAT na swoim komputerze z linuksem. Coś jak:
Potrzebujesz także serwera DNS:
Działa to przez kilka minut, ale po chwili telefon rezygnuje z szukania HTC Sync i rozłącza się.
Do zrootowanych telefonów
Możesz połączyć się na stałe, jeśli masz zrootowany telefon (fre3vo działało dla mnie). Wykonaj następujące czynności za pomocą adb.
Włącz tryb usb dla sieci i adb:
Przypisz adres IP do urządzenia usb0 w telefonie:
Dodaj domyślną trasę. IP powinien być adresem IP przypisanym do usb0 w systemie Linux:
Ustaw serwer DNS. To jest otwarty serwer DNS Google'a, ale może to być adres IP twojego komputera z linuksem, jeśli masz serwer DNS:
źródło
phoneip=$(arp -n | grep usb | awk '{print $1}') echo -n -e "\x00\x02\x00\x00" | nc $phoneip 6000 > /dev/null
wartość szesnastkowa00 02 00 00
jest wszystkim, czego szuka.netsh interface ip show config
aby zobaczyć wszystkie nazwy interfejsów, a następnienetsh interface ip show config name="Local Area Connection #2"
uzyskać właśnie ten interfejs, gdzieLocal Area Connection #2
jest jakikolwiek nowy adapter się nazywa. Możesz zmienić nazwę tego dla wygody.Zrobiłem ten mały bash, aby zautomatyzować wszystko. Wystarczy podłączyć telefon w trybie ładowania do komputera i uruchomić ten bash.
źródło
Ponieważ sam nie mam dostępu do komputera z systemem Linux, nie mogę przetestować tego rozwiązania, ale możesz wypróbować kroki opisane tutaj (tłumaczenie Google z rosyjskiego) .
Komentarze do tłumaczenia:
Powodzenia!
źródło
Ok, oto dokładnie to, co zrobiłem, nie ma potrzeby rootowania HTC:
Skonfiguruj bind9 i NAT itp ...
Uwaga: 1: jeśli wykonasz sudo echo 1> / proc / sys / net / ipv4 / ip_forward, otrzymasz błąd uprawnień, więc oto skrypt dla procesu 2: Możesz sprecyzować iptables o tym, jak to robi dodawanie parametrów dla określonych urządzeń.
teraz podłącz telefon i wybierz „Internet pass through”
poczekaj na pojawienie się urządzenia:
ifconfig
sprawdź, czy jest również w:arp
Odkryłem, że muszę odłączyć urządzenie, a następnie podłączyć je ponownie, aby pojawiło się w arp, rzeczy nie działają poprawnie, jeśli arp nie pokazuje urządzenia.
Następnie urządzenie będzie siedzieć i czekać, aż HTC Sync wyśle mu wiadomość, więc musisz wyśmiewać wiadomość HTC Syncs:
Mogę napisać wersję tego za pomocą D-Bus, aby ta ostatnia część była wykonywana automatycznie po podłączeniu urządzenia itp.
Ok, oto moja praca w toku, nie mogłem znaleźć niczego „ogólnego” na d-bus, więc zdecydowałem się na trochę hackowania przy użyciu udev. To nie jest idealne, na przykład polecenie uruchamia się dwukrotnie, więc Będę musiał sprawdzić, czy mogę lepiej filtrować pasujące parametry, dodać także limit czasu na ostatnim skrypcie, po prostu zwiększyć i zobaczyć, czy mogę zastąpić arp czymś nieco lepszym, powiedzmy patrząc w / proc
tutaj.s mój plik .rules z /etc/udev/rules.d utworzyłem
Możesz nazwać to jak chcesz, ale NIE ROZPOCZNIJ GO NUMEREM, w ten sposób zostanie uruchomiony na końcu.
Dodaj następujące pliki do pliku jako sudo za pomocą edytora, który wybierzesz itp.
Zasadniczo, jeśli nie widzisz tych 3 'r,
Następnie będziesz potrzebować dwóch kolejnych plików, jednego do połączenia drugiego, ponieważ RUN z udev zablokuje wszystko inne (nawet jeśli jest uruchamiane jako ostatni !!) ... hmm ... w każdym razie:
Pliki w moim katalogu domowym utworzyłem na razie „/ home / olli /” ... więc pamiętaj, aby zastąpić bit „/ home / olli /” za każdym razem, gdy tworzysz pliki:
więc dla mnie cd do mojego katalogu domowego.
utwórz plik o nazwie
zawierający następujące elementy:
sprawiają, że jest wykonywalny
utwórz inny plik o nazwie
zawierający następujące
Spraw, by był wykonywalny:
Mam nadzieję, że powinienem mieć ładną uporządkowaną wersję, jak tylko pos. (prawdopodobnie jutro).
źródło
W przypadku odwrotnego tetheringu USB w systemach Android i Linux bez rootowania zobacz moją odpowiedź tutaj
źródło