iTunnel


Original: http://www.cs.toronto.edu/~jingsu/itunnel/
Copyright:

Aktualizacja: 2009-listopad-01

  • Opis
  • Pobierz
  • Ustawienie
  • Problemy i (potencjalnie) rozwiązania problemów

Status

2010 27 września –
Artykuł z Anton Borysowa z powodzeniem w użyciu iTunnel do podłączenia iPoda Touch na netbooku MIPS.
http://linuxgazette.net/177/borisov.html

+2.009 01 listopada –
WAŻNE! Dla ludzi, którzy nadal używają iTunnel, należy rozważyć przeniesienie do usbmuxd projektu, który obecnie zawiera funkcjonalność, która zastępuje iTunnel. Oto fragment z listu Martin S. Mnie posłał.

Chciałem tylko, aby wziąć pamiętać, że składniki oprogramowania na całym
libiphone nie dość rozwinięte i funkcjonalność iTunnel został włączony
od.

Nasza usbmuxd realizacja daemon [1], z odpowiedników pod Linuksem i Mac
OS X, wiązki narzędzie o nazwie „iproxy“, który pozwala TCP tunelowania jak
iTunnel jest jednak bardziej zaawansowany protokół mądry.

Pozwala to na wielokrotne połączenia kilka urządzeń w tym samym czasie, jest
dostępne dla wielu dystrybucji [2] i prace (jeśli kompilowany) na
Win / Mac / Linux wydzielone z bandą a inne nowe funkcje (wsparcie dla nowych
usbmux protokół itp.).

[1]
http://marcansoft.com/blog/iphonelinux/usbmuxd/
[2]
http://matt.colyer.name/projects/iphone-linux/index.php?title=Main_Page

Mam nadzieję, że wszyscy z was są w stanie migrować do nowego programu iproxy i doświadczyć jeszcze lepiej i szybciej modemu! 🙂

+2.009 11 października – rozwój zatrzymał się na chwilę
Witam wszystkich. Po pierwsze, chcę podziękować wszystkim ludziom, którzy znaleźli ten mały narzędzie przydatne. I pierwotnie napisał to tylko na własny użytek, a to niesamowicie cudowne znaleźć, że inni przekonują, że przydatne.

Ostatnio, mój wierny Thinkpad zmarł w męczarniach, aw rezultacie musiałem kupić nową maszynę. Po dwóch tygodniach męczeńskiej self-debata, postanowiłem wziąć nurkowania i kupić komputer Mac. Zamierzam do podwójnego rozruchu maszyny, wykorzystując zarówno OSX oraz Linux na jej temat. Jednak, jak byłem zajęty w szkole niedawno, prawdopodobnie nie będzie obejść się stworzyć dual-boot do Bożego Narodzenia. Tak więc, w chwili obecnej prace nad iTunnel zostaną wstrzymane na chwilę, ponieważ nie działa pod OSX. Mam nadzieję, że się dostać mój garść wkrótce przy świątecznym.

+2.009 01. września – problem z połączeniem iTunnel
iTunnel wciąż cierpi z powodu problemów spadek połączenia podczas przesyłania dużych ilości danych przez łącze USB. Nie miałem czasu, aby zbadała tę sprawę, ale jest na mojej liście zadań rzeczy wypracować.

aktualizacja, 2009 Septmber 1 – 3GS wsparcie dodaje. Moje najszczersze przeprosiny za tak reaguje na wiele z was, którzy mnie pocztą elektroniczną z informacjami o otrzymanie pomocy na 3GS. Grad szkoła została kopać mój tyłek, i będzie nadal to robić przez najbliższe kilka miesięcy. Nowa poprawiona wersja została wydana, które powinny wspierać 3GS. Wielkie podziękowania dla: Jan Chaloupecky, Andrew Kwasik, Wong hang, Andre Kuhn i Riccardo Varotto.

Aktualizacja 2009 09 lipiec – I zostały zaktualizowane mojego telefonu do pracy (Iphone 3G) do firmware 3.0. iTunnel wydaje się działać. Tu jest procesem, w którym zrobiłem upgrade:
uaktualnienie firmware 3.0 za pomocą przywracania jabłko podane IPSW
używany PwnageTool pakować niestandardowego IPSW
używane iTunes do przywrócenia za pomocą niestandardowego IPSW
restart telefonu po to został uruchomiony ponownie
przywrócić ostatnią kopię zapasową
użyj Cydia aby ponownie zainstalować OpenSSH
zrestartować telefon ponownie
usunąć ~ / .ssh / labphone_known_hosts (zależnie od konfiguracji) plik, inaczej dostaniesz paskudny błąd identyfikacyjny hosta.
w terminalu przyjmującego uruchomić itunnel
w innym terminalu przyjmującego, uruchom ssh
po 3 minutowym opóźnieniem na telefon do obliczenia nowego klucza hosta, SSH prawidłowo podłączony.
Stałe współdziałanie SSH z linii poleceń wydaje się działać dobrze. Jednak pliki SCP’ing wydaje się być problematyczne. Zobacz poniżej.

+2.009 09 lipca – problem scp
I został uaktualniony mój iPhone 1st Gen i 3G Firmware 3.0, i iTunnel wydaje się działać w ograniczonej pojemności. SCP’ing plików z iPhone do komputera wydaje się działać dobrze, ale SCP’ing z komputera do iPhone daje złe błędy długość pakietu. Ja to dochodzenie w tej chwili.
Opis

iTunnel jest prosty Linux Program linii poleceń który zapewnia tunelowaniu SSH przez kabel USB do jailbroken iPhone. Napisałem ten mały narzędzie, bo zmęczył konieczności SSH do mojego iPhone’a przez WiFi Link. SSH proxy, ssh, scp i wszystko działa świetnie.

Prądu i najnowsza wersja iTunnel obsługuje tylko jeden klient połączenia SSH na raz. To sprawia, że ​​kod znacznie prostszy w obsłudze. Jednak nadal można mieć wiele sesji SSH udających się do iPhone’a za pomocą SSH na kanały multipleksu przez jednego połączenia.

Wiele z iPhone’a Kod połączenia dla tego projektu pochodzi z iFuse projektu. Nie robiłem ten link program dynamicznie do libiphone biblioteki ponieważ potrzebowałem kilka zmian i nie chcą F‘-up, co pracuje.

Kod tutaj nie jest ani ładna, ani skuteczne. :. (Ale to rodzaj robót Aktualizacje się jak naprawić rzeczy lub dokonać udoskonalenia własnego gustu Zapraszam do mnie e-mail do błędów lub wniosków fabularnych Przepraszam z wyprzedzeniem na nie odpowiedzi od razu (lub wcale) jingsu… w cs Toronto.
Pobierz
iTunnel jest LGPL.

wersja 0.0.9, źródło + binary – zmiany:

Jest to niewielka aktualizacja który zawiera wsparcie dla 3GS.

wersja 0.0.5, źródło + binary – zmiany:

Jest to niewielka aktualizacja gdzie dodałem opcję NIE zresetować połączenie USB po każdej kolejnej SSH podłączyć / zamknąć. Teraz możesz dać-noreset opcji wiersza polecenia, aby wyciszyć reset. W przeciwnym razie, wszystko inne jest takie samo.

wersja 0.0.4, źródło + binary – zmiany:

Dzięki Lance Kajdan mam Stripped iTunnel się być jednym klient serwer, co pozwala znacznie uprościć kod. Nadal można zrobić wiele połączeń SSH poprzez kanał tunelowaniu SSH opisana w sekcji Ustawienia.
Poprawiono kod tak, że serwer resetuje połączenie USB po każdym zakończeniu połączenia głównego. Mam nadzieję, że to rozwiązuje problem, gdy po pierwszych zamyka połączenie, kolejne połączenia nie uda się połączyć.
TODO: to nadal używa kod zaczerpnięty z libiphone projektu, zamiast po prostu link do libiphone. Mam nadzieję, że będę miał to wszystko posprzątać szybko.

Lance Kajdan mod, source + binary tgz

Kajdan Lance Poprawiono stabilność programu z wersji 0.0.2, a także znacznie upraszcza kod itunnel. To zmodyfikowana wersja opiera się na gałęzi rozwojowej git z libiphone i obsługuje tylko jedno połączenie SSH. Nie miałem szansy, aby połączyć się z wersji Lance jest tutaj tak dać to zastrzyk, jeśli masz problemy z obecnej wersji używam.

wersja 0.0.2, źródło + binary tgz

korzystać z tej wersji, jeśli naprawdę potrzebujesz itunnel obsługiwać wiele połączeń SSH.

Ustawienie

  • uruchomienie tunelu
  • Binarny jest bardzo prosty:
  • itunnel [port]

W zależności od ustawień systemu, być może trzeba będzie uruchomić itunnel jako użytkownik root. Parametr port jest opcjonalny i domyślnie 3023.

Aby zatrzymać tunelu, zamknąć wszystkie połączenia klientów i naciśnij „Ctrl-C“. Tunel powinien oczyścić i zamknąć.
SOCKS proxy SSH

Najpierw uruchom tunelu. Następnie otwórz połączenia SSH poprzez wywołanie ssh na localhost na port serwera itunnel. Można (należy) uruchomić to jako zwykłe konto użytkownika. Podajemy również proxy SOCKS flagę i określić port SOCKS.

ssh-D 9000-p 3.023 127.0.0.1

9000 reprezentuje port SOCKS, można zmienić na cokolwiek chcesz. 3023 jest domyślny port nasłuchujący dla iTunnel, możesz zmienić na co chcesz, jak również, tak długo, jak również zmienić go jako argument wiersza polecenia po uruchomieniu itunnel.

Edytuj preferencje firefox połączenia sieciowego z:
SOCKS proxy: 127.0.0.1 port: 9000
pamiętaj, aby pozostawić wszystkie inne opcje proxy pusty.

Wreszcie, trzeba dokonać Firefox wysyłać zapytania DNS za pośrednictwem serwera proxy.
W about: config, zestaw: network.proxy.socks_remote_dns = true.

done!
konfiguracji SSH dla wygody
Dla wygody, można skonfigurować domyślne ustawienia w pliku ~ / .ssh / config pliku. Ponieważ jestem naprawdę zły z opisywania rzeczy, pokażę na przykładzie zamiast. Oto przykładowy wpis z mojego config:

MyPhone Host
HostName 127.0.0.1
Port 3023
Użytkownik mobilny
Auto ControlMaster
ControlPath / tmp/master-% r @% h:% s.
ServerAliveInterval 300
UserKnownHostsFile ~ / .ssh / myphone_known_hosts
RemoteForward 2202 localhost: 22

Labphone Host
HostName 127.0.0.1
Port 3023
Użytkownik mobilny
Auto ControlMaster
ControlPath / tmp/master-% r @% h:% s.
ServerAliveInterval 300
UserKnownHostsFile ~ / .ssh / labphone_known_hosts

Tutaj mam dwa wpisy dla dwóch iPhone’ów, że pracują. Jednym z nich jest mój osobisty telefon (myphone), a drugi to mój telefon działa co zrobić pewien rozwój i eksperymentów w ust labphone). Ponieważ oboje polecić SSH aby połączyć się z localhost na porcie 3023, SSH może dać ostrzeżenia o różnych kluczy hosta. UserKnownHostsFile instruuje SSH, aby zapisać wiadomo klucze hosta do innego pliku, aby tych dwóch nazw, tak że nie dostanę tego błędu. Po prostu tak długo jak pamiętam, aby zadzwonić do odpowiedniej nazwy w zależności od urządzenia i podłączyć.

Powyżej config także pokazuje, jak skonfigurować kanał tunelowanie za umożliwienie wielu połączeń (Dzięki Lance Kajdan za wskazanie tego do mnie). Mając to włączone możesz zadzwonić jak wiele połączeń SSH, jak chcesz, i będziemy wszystko automatycznie multipleks nad jedno połączenie.

Wreszcie określony zdalny naprzód w myphone config, co jest pomocne w okazji, jeśli chcesz scp plik z komputera z poziomu telefonu.
Problemy i (potencjalnie) rozwiązania problemów

Po podstawowym połączenia SSH zakończy, tunel nie w pełni zamknąć i reset.
Jest to znany błąd i pracuję do śledzenia go. Jednakże, jeśli na tunelu wyjścia widać, że połączenie klienta został zamknięty i nici klient zakończony ale z jakiegoś powodu serwer nie resetuje się, po prostu naciśnij CTRL-C na tunelu i czekać na to, aby zakończyć. Ponownie uruchomić terminal ponownie i powinno działać.

Po wciśnięciu klawisza CTRL-C, tunel nie kończy
Jest to również znany błąd, który wydaje się pop-up raz na jakiś czas i nie mam śledzone go jeszcze. Jeśli wyślesz tunelu ładny zabić, albo wysyłając mu sygnał KILL, czyli CZ, zabij% 1 w bash, należy prawidłowo oczyścić i zamknąć.

Po zamknięciu tunelu odłączeniem kabla USB powoduje ponowne uruchomienie iPhone
Nie byłem w stanie odtworzyć ten błąd. Jeśli wystąpi ten, wyślij mi kilka szczegółów na temat systemu, jak każdej nietypowej wyjściu dmesg, wersja kernela, wersji libusb, a ja zobaczę, czy mogę go wyśledzić.

TODO:

oczyścić tą stronę
dowiedzieć się, jak przerwać ładowanie USB, a na uwięzi przez USB

Comments are closed.