ACHTUNG:
bitte vorher auf die Übersichtsseite zum Thema iPhone & Linux schauen. Es gibt mittlerweile die Möglichkeit das native iPhone OS 3 Tethering auf einem 2G zu aktivieren und es unter Linux zu nutzen, per Bluetooth und per USB!
Seit iPhone OS 3.0 gibt es die Möglichkeit des “Tetherings”, auf gut deutsch: die Nutzung des iPhones als UMTS-Modem. Wie das nun genau funktioniert, und ob es überhaupt mit Linux funktioniert kann ich leider nicht testen, da ich noch das iPhone Classic besitze, welches aus marketing “technischen” Gründen diese Funktion nicht besitzt.
Wie dem auch sei, es muss eine Lösung her! Bislang bin ich über ein altes Nokia 6300 unterwegs ins Internet gegangen, MultiSim sei dank. Aber richtig prickelnd ist das nicht. Besser wäre es, das iPhone dafür zu benutzen. Ausserdem sollte es nicht WLAN-basierend sein, sondern über das USB-Kabel funktionieren, damit sich das iPhone vom Laptop mit Strom versorgen kann und nicht in 2 Stunden leer gesaugt ist.
Zum Glück ist das Internet groß und voller Informationen, so dass man das Rad nicht neu erfinden muss. Daher geht der ganze Dank für diesen Artikel auch an snap_b, der hier den Großteil der Anleitung auf English veröffentlicht hat.
Ziel ist es, eine PPP-Verbindung über SSH aufzubauen.
Ich werde nun im Folgenden den Artikel übersetzen und mit einem kleinem Script am Ende versehen, damit das Ganze etwas komfortabler wird.
Alle Befehle müssen als Root ausgeführt werden!
Schritt 1: iTunnel
iTunnel ermöglicht es, eine SSH-Verbindung aufs iPhone über das USB-Kabel herzustellen. Man läd es hier runter und entpackt es nach /opt/itunnel
Eine Installation ist nicht notwendig.
Nun wird iTunnel kurz getestet (als Root!):
/opt/itunnel/itunnel
Es sollte folgendes zu sehen sein:
get_iPhone() success - successfully got device server waiting for ssh connection
Auf einer zweiten Konsole stellt man nun eine SSH-Verbindung her:
ssh -p 3023 localhost
Wie man sieht, stellt iTunnel eine SSH-Verbindung auf localhost mit Port 3023 bereit. Nun sollte man in der Konsole des iPhones sein.
Schritt 2: Passwortloser Zugriff
Damit man nicht jedesmal sein Passwort eingeben muss, werden nun SSH-Keys ausgetauscht. Dazu wird zuerst ein Key auf dem Host erstellt:
ssh-keygendabei können alle Abfragen einfach mit Enter bestätigt werden!
als nächstes muss auf dem iPhone etwas getan werden:
ssh -p 3023 localhost mkdir /var/root/.ssh
normalerweise würde jetzt einfach der SSH-Key mit scp kopiert werden, da es leider mit der Firmware 3.0 des iPhones und der aktuellen iTunnel Version ein Problem gibt, ist es nicht Möglich etwas vom Host auf das iPhone per scp zu kopieren. Deswegen habe ich den “Umweg” über iFuse genommen. Wie das geht steht hier.
Hat man das iPhone über iFuse eingebunden, zum Beispiel unter /media/iPhone dann kann man nun die Keys kopieren.
cp /var/root/.ssh/id_rsa.pub /media/iPhone/private/var/root/.ssh/
Nun wieder zurück zum iTunnel und ab aufs iPhone. Dort dann folgendes Copy&Pasten:
mv /var/root/.ssh/id_rsa.pub /var/root/.ssh/authorized_keys2 chmod 755 /var/root chmod 700 /var/root/.ssh chmod 644 /var/root/.ssh/authorized_keys2 exit
Nun sollte man sich mit:
ssh -p 3023 localhost
auf sein iPhone einloggen können, ohne das ein Passwort verlangt wird.
Schritt 3: slirp und terminal
Auf iPhone Seite braucht man zum einen das Programm slirp welches eine PPP-Verbindung über eine SSH-Verbindung erstellen kann und zum anderen das Programm Terminal, damit man slirp auch starten kann
Beide sind über Cydia erhältlich.
Schritt 4: Das PPP-Script
Das Script für die PPP-Verbindung erstellen:
touch /usr/local/bin/itether
und folgendes reinschreiben:
#!/bin/sh IP="10.0.2.15:10.0.2.2" NETMASK="255.255.255.0" BAUD="115200" DEBUG="debug logfile /tmp/ppp.log" COMPRESS="" PTY="env SSH_AUTH_SOCK=/tmp/501/SSHKeychain.socket ssh -t root@localhost -p 3023 /usr/bin/slirp -P -b $BAUD" pppd $IP netmask $NETMASK $BAUD local noauth defaultroute $DEBUG usepeerdns pty "$PTY"
Schritt 4: Die Start und Stop-Scripte:
Das Script für den Verbindungsaufbau erstellen:
touch /usr/local/bin/istart
und folgendes reinschreiben:
#!/bin/bash /opt/itunnel/itunnel& sleep 2 itether& sleep 4 echo "nameserver 208.67.222.222" > /etc/resolv.conf while [ TRUE ] do sleep 5 done
Das Script für den Verbindungsabbau:
touch /usr/local/bin/istop
und folgendes reinschreiben:
#!/bin/bash killall pppd && killall itunnel
Schritt 5: Die Verbindung herstellen
Zuerst wird auf dem iPhone slirp gestartet. Dazu einfach die Terminal App öffnen, slirp eingeben, enter drücken und Terminal App wieder schließen. Slirp bleibt solange gestartet, bis es beendet wird, oder das iPhone neustartet.
Wie sich herausgestellt hat, ist es nicht nötig auf dem iPhone zuerst slirp zu starten! Allerdings gibt es das Problem, dass das istart Script erst beim zweiten mal funktioniert, wenn das iPhone oder der PC nach der letzten Verbindung neugestartet wurden… Jemand eine Idee warum?
Nun braucht nur noch das Script istart als Root aufgerufen werden und nach ca 10 Sekunden sollte man über das iPhone online sein!
50 Kommentare zum Artikel
Simon
19.7.2009 um 13:21Nette Anleitung. Vorher hatte ich das immer mit einem Ad-Hock WLAN-Netz gelöst – sprich, auf dem Laptop ein WLAN-Netz erstellt, das iPhone darauf connected, dann SSH-Tunnel auf das iPhone… umständlich, aber es ging.
Die Möglichkeit auf das iPhone per SSH mittels USB-Kabel zu connecten erleichtert das ganze gefrickel natürlich um Welten, vielen Dank.
Werde ich mir auf jedenfall mal ansehen.
Gruß, Simon
Jan
19.7.2009 um 13:25joa, das problem hatte ich auch, vor allem da meine Intel Karte kein Ad-Hoc WLAN hinbekommt…
Außerdem, wer will schon nen Socks 5 proxy
nob
25.7.2009 um 16:23mm, schön und gut, aber warum sollte ich jetzt OS3 draufmachen, nur um dann festzustellen, dass ich keine Musik mehr auf das Telefon kriegen kann (mittels Amarok o.Ä.)? Oder wurde das inzwischen gelöst?
Jan
25.7.2009 um 16:32@nob nein, das wurde leider noch nicht gelöst.
Und warum du die 3.0 draufmachen solltest? Fangen wir an, bei den vielen Bugfixes und geschlossenen Sicherheitslücken, gehen über zu den Unmengen an neuen Funktion (Google mal nach “iPhone OS 3.0 neue Funktionen”) bis hin zur, für mich größten Neuerung, dem Push-Notification-Service! Ich will, trotz der nicht mehr funktionierenden Musiksynchronisation, die 3.0 nicht mehr missen!
Und mal ganz nebenbei: Für die obige Anleitung wird iPhone OS 3.0 nicht gebraucht!
laughingBuddha
30.7.2009 um 15:12Ich bekomme immer folgende Fehlermeldung in /tmp/ppp.log:
using channel 9
Using interface ppp0
Connect: ppp0 /dev/pts/5
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
Waiting for 1 child processes…
script env SSH_AUTH_SOCK=/tmp/501/SSHKeychain.socket ssh -t root@localhost -p 3023 /usr/bin/slirp -P -b 115200, pid 3879
sending SIGTERM to process 3879
Kann mir evtl. jmd weiterhelfen, wie ich das Modem zu laufen kriege?
Jan
30.7.2009 um 15:36@laughingBuddha:
welche Distribution? Und hast du vorher “slirp” auf dem iPhone gestartet?
laughingBuddha
30.7.2009 um 16:05Meine Distribution ist sidux. Und das Iphone ist ein 3G mit OS 3.0. Ja, ich habe slirp auf dem Iphone gestartet.
laughingBuddha
31.7.2009 um 03:21Mein System: Sidux Aethir
Iphone: 3G mit OS 3.0
Weiss nicht genau wieso, aber ich bekomme nun keine Fehlermeldung mehr, aber eine Verbindung krieg ich immer noch nicht hin.Versuche ich eine Webseite aufzustarten kommt immer die Fehlermeldung ‘Address Not Found’ in iceweasel. In ifconfig sehe ich auch keine ppp-Verbindung. Speziell ist auch, dass ich trotz der Übertragung und Umbennung von ‘id_rsa.pub’ das Passwort eingeben muss. Eröffne ich einen Tunnel mit ‘itunnel’ und stelle eine Verbindung mit dem iphone her mit ’ssh -D 9000 -p 3023 root@127.0.0.1′, dann muss ich das Passwort nicht eingeben und es ist möglich mit iceweasel (über proxy socks) ins Internet zu gehen.
Das tether-script ist wie oben beschrieben, ich habe auch versucht ‘local’ wegzulassen wie von snap_b beschrieben. Habe auch das Original-Script, auf welches sich snap_b stützt ausprobiert. Das Resultat war immer das gleiche!
Ein paar Infos mehr:
xxx@laughingBuddha:~$ more /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
__________________________________
xxx@laughingBuddha:~$ sudo itunnel
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:5
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client thread fd(5) running, server port 3023 , peer port 55604
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
__________________________________
xxx@laughingBuddha:~$ more /tmp/ppp.log
using channel 1
Using interface ppp0
Connect: ppp0 /dev/pts/4
__________________________________
xxx@laughingBuddha:~$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:23:8b:0a:4a:95
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 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:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28 Base address:0×2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:771 errors:0 dropped:0 overruns:0 frame:0
TX packets:771 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:203259 (198.4 KiB) TX bytes:203259 (198.4 KiB)
wlan0 Link encap:Ethernet HWaddr 00:23:4e:14:fe:e6
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:112 errors:0 dropped:0 overruns:0 frame:0
TX packets:312 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24026 (23.4 KiB) TX bytes:51612 (50.4 KiB)
wmaster0 Link encap:UNSPEC HWaddr 00-23-4E-14-FE-E6-6C-6F-00-00-00-00-00-00-00-00
UP RUNNING MTU:0 Metric:1
RX packets:0 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:0 (0.0 B) TX bytes:0 (0.0 B)
Sieht jmd einen Fehler, den ich gemacht habe?
laughingBuddha
31.7.2009 um 03:28Mein System: Sidux Aethir
Iphone: 3G mit OS 3.0
Den oben erwähnten Fehler habe ich zwar nicht mehr, aber ich kann immer noch keine Internetseite aufrufen. Bekomme immer die Fehlermeldung ‘Address Not Found’.
Das Tether-Script ist wie oben beschrieben, wobei ich auch versucht habe ‘local’ wegzulassen, wie von snap_b beschrieben. Versuchte auch das Original-Script zu verwenden, auf welches sich snap_b bezieht, aber immer mit dem selben Resultat.
Sonderbar ist auch, dass ich jedesmal das Passwort eingeben muss, obwohl ich meinen key auf das Iphone übertragen und umbenannt habe. Eröffne ich einen Tunnel mit ’sudo itunnel’ und dann ’ssh -D 9000 -p 3023 root@127.0.0.1′, dann kann ich mit iceweasel ins internet (mit den geeigneten proxy socks Einstellungen).
Ein paar weitere Infos:
xxx@laughingBuddha:~/downloads$ more /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
xxx@laughingBuddha:~$ sudo itunnel
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:5
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client thread fd(5) running, server port 3023 , peer port 55604
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
xxx@laughingBuddha:~$ more /tmp/ppp.log
using channel 1
Using interface ppp0
Connect: ppp0 /dev/pts/4
xxx@laughingBuddha:~$ sudo ifconfig
eth0 Link encap:Ethernet HWaddr 00:23:8b:0a:4a:95
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 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:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28 Base address:0×2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:771 errors:0 dropped:0 overruns:0 frame:0
TX packets:771 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:203259 (198.4 KiB) TX bytes:203259 (198.4 KiB)
wlan0 Link encap:Ethernet HWaddr 00:23:4e:14:fe:e6
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:112 errors:0 dropped:0 overruns:0 frame:0
TX packets:312 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:24026 (23.4 KiB) TX bytes:51612 (50.4 KiB)
@Jan: siehst Du einen Fehler, den ich gemacht habe?
Jan
31.7.2009 um 08:39@laughingBuddha so ad-hoc erstmal nicht. Ich finde es sehr komisch, dass du sagst, dass du dich mit PW einloggen musst…
Hast du mal versucht, istart direkt als root zu starten? Ohne sudo?
Abgesehen davon, sieht meine ppp-Logdatei ungefähr folgendermaßen aus nach der Verbindung:
using channel 3
Using interface ppp0
Connect: ppp0 < --> /dev/pts/2
sent [LCP ConfReq id=0x1
rcvd [LCP ConfReq id=0x1
sent [LCP ConfAck id=0x1
rcvd [LCP ConfAck id=0x1
kernel does not support PPP filtering
sent [CCP ConfReq id=0x1
sent [IPCP ConfReq id=0x1
rcvd [IPCP ConfReq id=0x1
sent [IPCP ConfNak id=0x1
rcvd [CCP ConfReq id=0x1]
sent [CCP ConfAck id=0x1]
rcvd [CCP ConfRej id=0x1
Received bad configure-rej: 12 06 00 00 00 00 1a 04 78 00 18 04 78 00
rcvd [IPCP ConfNak id=0x1
sent [IPCP ConfReq id=0x2
rcvd [IPCP ConfReq id=0x2
sent [IPCP ConfAck id=0x2
rcvd [IPCP ConfAck id=0x2
not replacing existing default route to wlan0 [192.168.178.1]
local IP address 10.0.2.15
remote IP address 10.0.2.2
primary DNS address 192.168.178.28
Script /etc/ppp/ip-up started (pid 20711)
Script /etc/ppp/ip-up finished (pid 20711), status = 0x0
sent [CCP ConfReq id=0x1
rcvd [CCP ConfRej id=0x1
daher würde ich mal auf ppp tippen?
laughingBuddha
31.7.2009 um 15:27@Jan Sorry, dass ich zweimal gepostet habe, hatte beim ersten Mal einen Verbindungsfehler und dachte, dass der Post nicht übermittelt wurde. Kannst es ja rauslöschen!
laughingBuddha
31.7.2009 um 15:48@Jan
Vielen Dank für Deinen Tipp!
Ich habe es nun zum Laufen gebracht, falls es jmd interessiert, poste ich es hier:
1. ssh-key als root und nicht mit sudo als user generiert.
2. den key auf das iphone übertragen.
3. itunnel und das itether-script als root gestartet und wie unter 1. nicht mit sudo als user.
Jetzt werde ich auch noch kurz das script von Jan schreiben, um das ganze zu vereinfachen!
Cool!
Jan
31.7.2009 um 16:00@laughingBuddha
Ich habe ja auch oben extra ganz groß drüber geschrieben, das alle Befehle als root ausgeführt werden sollen! Vom normalem User mit sudo Rechten war nie die Rede
Egal, schön das es bei dir jetzt funktioniert! Freut mich dir geholfen zu haben
laughingBuddha
1.8.2009 um 08:54@Jan
Du hast es super deutlich geschrieben… Ich kam eben eigentlich von snap_b und habe Dein Tutorial ziemlich schnell überflogen… so geht es manchmal… und ein bisschen logisch überlegen hätte es auch getan. Jedenfalls habe ich wieder viel gelernt! Vor allem interessiert mich das fuse Projekt, muss mich da mal ein bisschen reinhängen. Ich kopiere den key per wireless ssh auf mein Iphone. Habe Deinen Ansatz kurz ausprobiert, aber mir noch nicht genügend Zeit genommen. Zwar konnte ich das iphone ohne Probleme mounten, kam aber nicht ins root directory runter. Aber wie gesagt, muss das einmal genauer studieren.
Noch eine kleine Anmerkung:
slirp muss – sofern ich das itether script richtig verstehe – nicht erst auf dem Iphone gestartet werden, weil das itether script ja genau das macht, oder liege ich falsch? Brandon Bielstein mit seinem Mac OS X hat einen ganz anderen Ansatz, weshalb er es erst starten muss. Ich jedenfalls muss es für meine siduxbox nicht erst starten.
Habe übrigens auch ein tutorial für die sidux Leute in den sidux wikis geschrieben. Selbstverständlich habe ich Dich zitiert.
Gruss und nochmals vielen Dank!
Jan
1.8.2009 um 10:19@laughingBuddha
Hab gerade deinen Wikieintrag gelesen und gesehen, das du es nach einem neustart erst beim zweiten mal mit istart hinbekommst. Kurz bei mir probiert: du hast Recht! Das werde ich mir nun mal genauer anschauen…
Aber beim zweiten mal geht’s dann ja! Sehr schön
Ich dachte auch von Anfang an, dass es eigentlich ohne gehen müsste, zumal es ja auch bei snap_b nicht erwähnt wird… Aber es ging halt irgendwie nicht.. Egal, nun geht’s
Vielen dank für den Hinweis dafür!
Felix Metke
1.8.2009 um 23:24moin moin,
ich habe alle scripte wie oben beschrieben, als root, ausgeführt, trotzdem komme ich nicht über das iPhone ins internet. Das script istart läuft nicht durch, heißt es bleibt hängen, weiß nicht ob das so sein soll
Ausgabe des scripts:
root@ASUS-X50:/home/fgm# bash istart
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:6
client thread fd(6) running, server port 3023 , peer port 46045
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
LG Felix
Jan
1.8.2009 um 23:28@Felix
Das ist richtig so! poste doch bitte mal “ifconfig” und den Inhalt von /tmp/ppp.log!
Was ich vielleicht noch erwähnen sollte: bei mir ist es so, dass wenn der Networkmanager noch läuft und ich WLAN aktiv habe, dann setzt er die Route nicht übers iPhone weil er das WLAN priorisiert.
Felix Metke
1.8.2009 um 23:35@Jan
Ausgabe von ifconfig:
fgm@ASUS-X50:~$ ifconfig
ath0 Link encap:Ethernet Hardware Adresse 00:15:af:31:2d:59
inet Adresse:192.168.178.22 Bcast:192.168.178.255 Maske:255.255.255.0
inet6-Adresse: fe80::215:afff:fe31:2d59/64 Gültigkeitsbereich:Verbindung
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:134 errors:0 dropped:0 overruns:0 frame:0
TX packets:83 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:55906 (55.9 KB) TX bytes:14824 (14.8 KB)
eth0 Link encap:Ethernet Hardware Adresse 00:1d:60:0e:de:50
UP BROADCAST MULTICAST MTU:1500 Metrik:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:253 Basisadresse:0xe000
lo Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:105 errors:0 dropped:0 overruns:0 frame:0
TX packets:105 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:12100 (12.1 KB) TX bytes:12100 (12.1 KB)
wifi0 Link encap:UNSPEC Hardware Adresse 00-15-AF-31-2D-59-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
RX packets:998 errors:0 dropped:0 overruns:0 frame:62
TX packets:195 errors:77 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:280
RX bytes:233828 (233.8 KB) TX bytes:24669 (24.6 KB)
Interrupt:19
Inhalt /tmp/ppp.log:
using channel 1
Using interface ppp0
Connect: ppp0 /dev/pts/2
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
sent [LCP ConfReq id=0x1 ]
LCP: timeout sending Config-Requests
Connection terminated.
Modem hangup
Waiting for 1 child processes…
script env SSH_AUTH_SOCK=/tmp/501/SSHKeychain.socket ssh -t root@localhost -p 3023 /usr/bin/slirp -P -b 115200, pid 3837
sending SIGTERM to process 3837
Jan
1.8.2009 um 23:45ich habe am Ende des Artikels gerade was erneuert:
Man braucht slirp auf dem iPhone nicht starten. Allerdings kommt es vor, das beim ersten Aufruf von istart es nicht klappt. Einfach mal istop hinterher und nochmal istart!
Ansonsten wäre da noch die Frage, hast du alles als Root gemacht? Oder mit sudo? Weiter oben in den Kommentaren hatte laughingBuddha ein Problem mit sudo. Es muss in einer Root-konsole gemacht werden! (unter KDE geht es auch im krunner mit “kdesu istart” (nicht “kdesudo”!))
Felix Metke
1.8.2009 um 23:49@Jan
Ich habe alles in der Konsole als root gemacht. Ich habe istart mit ctrl+c abgebrochen und istop ausgeführt:
root@ASUS-X50:/home/fgm# bash istop
pppd: Kein Prozess beendet
Jan
1.8.2009 um 23:54istart brauchst du nicht mit Ctrl+c abbrechen, das istop Script beendet alles für dich!
Gut, aber das bringt uns erstmal nicht weiter… Deine Fehlerbeschreibung klingt nach der gleichen wie die von laughingBuddha.
Und du hast alles (auch das Übetragen der keys für den passwortlosen Zugriff, das starten des istart Scriptes) als Root und nicht als sudo gemacht? *nochmalnachfrag*
Felix Metke
2.8.2009 um 00:24Ja ich hab es als Root gemacht
ich bin ratlos
Felix Metke
2.8.2009 um 12:52moin,
ich habe es auf dem Desktop noch mal probier, geht aber auch nicht, benötigt man irgendwelche besondere Pakete?
Jan
2.8.2009 um 12:54eigentlich nur das, was oben angegeben ist… vielleicht irgendetwas “kaputtgejailbreaked”?
Felix Metke
2.8.2009 um 13:07Wie meinst du das?
Gibts es noch eine andere Möglichkeit, oder kann ich es irgendwie testen, an was es liegt (iPhone oder PC)?
Jan
2.8.2009 um 13:11wenn du slirp auf dem iPhone direkt startest, wie ist denn dann die Ausgabe? Startet es korrekt? Ansonsten hab ich leider keine Ahnung warum es nicht klappt…
Felix Metke
2.8.2009 um 13:15Ausgabe von slirp auf dem iPhone:
iPhone:~ root# slirp
Slirp v1.0.17 (BETA)
Copyright (c) 1995,1996 Danny Gasparovski and others.
All rights reserved.
This program is copyrighted, free software.
Please read the file COPYRIGHT that came with the Slirp
package for the terms and conditions of the copyright.
Error: Slirp Could not determine the address of this host.
Some programs may not work without knowing this address.
It is recommended you use the “host address aaa.bbb.ccc.ddd
” option in your ~/.slirprc config file (where aaa.bbb.ccc.ddd
is the IP address of the host Slirp is running on).
[none found]
Your address is 10.0.2.15
(or anything else you want)
Type five zeroes (0) to exit.
[autodetect SLIP/CSLIP, MTU 1500, MRU 1500, 115200 baud]
SLiRP Ready …
laughingBuddha
2.8.2009 um 16:32@mike
mach doch einmal mit Deinem Iphone und Deiner Linuxbox einen reboot. Dann führe istart aus, warte ca. 10 bis 20 sec. und schaue dir mit
$ more /tmp/ppp.log
die Logdatei von pppd an.
Falls das Modem wieder aufgehängt hat, führe in einer anderen Konsole
# istop
aus.
Schau dir den Terminal an, in welchem Du istart ausgeführt hast, wenn itunnel ganz beendet wurde, starte das istart script erneut, sonst beende zuerst den itunnel ganz, indem Du nocheinmal ctrl-c drückst.
Warte wieder zehn bis zwanzig Sekunden und schau Dir nocheinmal die Logdatei von pppd an. Verbindung hingekriegt?
laughingBuddha
2.8.2009 um 18:12… meinte natürlich
@ Felix
….
Felix Metke
2.8.2009 um 18:36@laughingBuddha
hi,
jetzt sieht es so aus, wenn ich istart mache:
root@ASUS-X50:/usr/share/apmd# bash istart
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:6
client thread fd(6) running, server port 3023 , peer port 43507
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
client thread fd(6) terminating
client thread fd(6) reader ended.
server waiting for client thread join… ok.
get_iPhone() success
- successfully got device
server waiting for ssh connection
das log sieht so aus:
http://pastebin.com/m4140ad59
Jan
2.8.2009 um 18:45das sieht besser aus! Wir sind kurz davor. Dein jetziges problem ist ein Bug, der aber behoben werden kann. Schau mal hier:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=245735
Felix Metke
2.8.2009 um 18:49also soll es an makedev liegen?
was soll ich jetzt tun?
ich bin am verzweifeln :-/
Jan
2.8.2009 um 18:51Steht doch im Bugbericht… Lesen und nicht verzweifeln
Felix Metke
2.8.2009 um 18:56Soo..
bash istart:
root@ASUS-X50:/usr/share/apmd# bash istart
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:6
client thread fd(6) running, server port 3023 , peer port 55013
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
client thread fd(6) terminating
client thread fd(6) reader ended.
ppp.log:
http://pastebin.com/d14e05d02
Jan
2.8.2009 um 19:01versuch evtl mal “sudo chmod 666 /dev/tty*”
Ansonsten google mal nach dem ask-pass Fehler, da gibt es einige Ergebnisse.
laughingBuddha
2.8.2009 um 19:07@Felix
Du musst ssh-askpass installieren!
# apt-get install ssh-askpass
Danach sollte es funktionieren!
laughingBuddha
2.8.2009 um 19:12und mach mal noch kurz (bevor Du wieder einen Verbindungsversuch machst)
# echo “” > /tmp/ppp.log
danach wird Dein Log-File wieder ein bisschen übersichtlicher…
Felix Metke
2.8.2009 um 19:26Und noch mal, es geht nocht nicht, bin aber zuversichtlich
Ausgabe1:
root@ASUS-X50:/home/fgm# apt-get install ssh-askpass
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut
Lese Status-Informationen ein… Fertig
ssh-askpass ist schon die neueste Version.
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 5 nicht aktualisiert.
1 nicht vollständig installiert oder entfernt.
Nach dieser Operation werden 0B Plattenplatz zusätzlich benutzt.
Richte ipppd ein (1:3.12.20071127-0ubuntu5) …
Note: running MAKEDEV to create ISDN devices in /dev…
/var/lib/dpkg/info/ipppd.postinst: 112: ./MAKEDEV: not found
dpkg: Fehler beim Bearbeiten von ipppd (–configure):
Unterprozess post-installation script gab den Fehlerwert 127 zurück
Fehler traten auf beim Bearbeiten von:
ipppd
E: Sub-process /usr/bin/dpkg returned an error code (1)
Ausgabe2:
root@ASUS-X50:/home/fgm# bash istart
get_iPhone() success
- successfully got device
server waiting for ssh connection
server accepted connection, clientfd:6
client thread fd(6) running, server port 3023 , peer port 53971
tunnel now running.
SSH to localhost port 3023 to get to iPhone.
(use ssh -D to create SOCKS tunnel.)
do Ctrl+C to quit the server (can take a few seconds).
client is still waiting for handshake.
yes, got syn+ack ; replying with ack.
client thread fd(6) terminating
client thread fd(6) reader ended.
Ausgabe3:
using channel 1
Using interface ppp0
Connect: ppp0 /dev/pts/2
No protocol specified
Error: Can’t open display: :0.0
Permission denied, please try again.
No protocol specified
Error: Can’t open display: :0.0
Permission denied, please try again.
No protocol specified
Error: Can’t open display: :0.0
Permission denied (publickey,password,keyboard-interactive).
Script env SSH_AUTH_SOCK=/tmp/501/SSHKeychain.socket ssh -t root@localhost -p 3023 /usr/bin/slirp -P -b 115200 finished (pid 4136), status = 0xff
Modem hangup
Connection terminated.
Felix Metke
2.8.2009 um 19:31ach PS.: Ausgabe3 ist die ppp.log
laughingBuddha
2.8.2009 um 22:31phu… ok… Ich kann Dir leider momentan nicht weiterhelfen. Frag doch mal in einem Forum Deiner Distribution nach!
Felix Metke
2.8.2009 um 23:24also, dass ipppd geht jetzt, ich komme mit den scrupten auf das iphone, aber internet geht nicht.
Jan
2.8.2009 um 23:28@Felix
Was heißt du kommst drauf? Hast du unter “ifconfig” ein ppp0 device?
Felix Metke
2.8.2009 um 23:38nein, in ifconfig ist nichts mit ppp0, wie soll ich das machen, dass das da ist?
Jan
2.8.2009 um 23:46das sollte dort alleine auftauchen, wenn das itether script funktioniert. Ich denke du bist besser in einem Forum aufgehoben, wo dir mehr Leute helfen können, wie laughingBuddha schon sagte…
laughingBuddha
3.8.2009 um 19:27@Felix
Ich verstehe auch nicht, warum Du ipppd brauchst?
Jan
3.8.2009 um 19:29@laughingBuddha
wir haben das ganze gestern nochmal Schritt für Schritt per jabber durchgespielt und nun klappt es bei ihm. Keine Ahnung woran es lag
laughingBuddha
3.8.2009 um 23:13Kamui
26.8.2009 um 15:58Hallo,
ich habe jetzt endlich die meisten Fehler ausgemerzt (incl. dem mit dem sudo und root) und endlich alle Skipte erstellt, bei welchen ich allerdings noch die Zugriffsrechte ändern musste.
Allerdings bockt jetzt mein Phone und /opt/itunnel/itunnel gibt folgendes aus:
- iphone get device error: -5
ERROR: failed to connect to iphone. quitting.
quit ok.
Habe jetzt spontan keine Lösung für dieses Problem gefunden, auch diverse Neustarts von iPhone und Netbook führen zu keiner Änderung.
Ich bin für Hilfe sehr dankbar!
Viele Grüße,
Kamui
Markus
5.2.2010 um 16:17Hi!
Ich habe dein Anleitung komplett durchgearbeitet, inclusive root (sudo -s), bekomme jedoch keine verbindung ins internet…
ppp.log:
using channel 28
Using interface ppp0
Connect: ppp0 /dev/pts/3
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfReq id=0x1 ]
sent [LCP ConfAck id=0x1 ]
rcvd [LCP ConfAck id=0x1 ]
sent [LCP EchoReq id=0x0 magic=0x9b1496]
sent [CCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
rcvd [LCP EchoRep id=0x0 magic=0x949db101]
rcvd [IPCP ConfReq id=0x1 ]
sent [IPCP ConfNak id=0x1 ]
rcvd [CCP ConfReq id=0x1]
sent [CCP ConfAck id=0x1]
rcvd [CCP ConfRej id=0x1 ]
sent [CCP ConfReq id=0x2 ]
rcvd [IPCP ConfRej id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x2 ]
sent [IPCP ConfAck id=0x2 ]
rcvd [CCP ConfNak id=0x2 ]
sent [CCP ConfReq id=0x3 ]
rcvd [IPCP ConfAck id=0x2 ]
Cannot determine ethernet address for proxy ARP
local IP address 10.0.2.15
remote IP address 10.0.2.2
Script /etc/ppp/ip-up started (pid 15824)
Script /etc/ppp/ip-up finished (pid 15824), status = 0×0
rcvd [CCP ConfNak id=0x3 ]
sent [CCP ConfReq id=0x4 ]
rcvd [CCP ConfNak id=0x4 ]
sent [CCP ConfReq id=0x5 ]
rcvd [CCP ConfNak id=0x5 ]
sent [CCP ConfReq id=0x6 ]
rcvd [CCP ConfNak id=0x6 ]
sent [CCP ConfReq id=0x7 ]
rcvd [CCP ConfRej id=0x7 ]
sent [CCP ConfReq id=0x8]
rcvd [CCP ConfAck id=0x8]
ifconfig:
ppp0 Link encap:Punkt-zu-Punkt-Verbindung
inet Adresse:10.0.2.15 P-z-P:10.0.2.2 Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metrik:1
RX packets:13 errors:1 dropped:0 overruns:0 frame:0
TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:126 (126.0 B) TX bytes:135 (135.0 B)
Mein iPhone hat die firmware 3.1.2 und ich nutze ubuntu 9.10
hoffe du kannst mir helfen…
Jan
5.2.2010 um 16:55@Markus:
müsste ich am Wochenende mal näher anschauen, ABER: Warum benutzt du diese veraltete Methode? Schau doch mal hier:
http://www.virtualpixel.de/das-iphone-und-linux-aktueller-stand/
Trackbacks: