instant-thinking.de

just enough to get you started and leave you confused

iTunes over SSH

| Kommentare

Update, 03.06.2010:

Ich habe den Kommentar von Yann aufgegriffen und über das vorgeschlagene Vorgehen einen neuen Artikel geschrieben. Die hier beschriebene Methode funktioniert nach wie vor, ist aber etwas umständlicher.

Update Ende

Man kennt das.

Man ist mit seinem shiny Apple-Laptop weitab von Zuhause unterwegs und hat Zugang zum Interweb. Man sitzt also dort (Schule, Uni, Freunde, Arbeit, Kunden, …) und hat dank dem Web Zugang zu seinen Mails, zu seinem Blog, dem Kalender und, und, und. Es ist ja so viel online verfügbar.

Nur, ein wenig Musik wäre nicht schlecht.

Natürlich ist die interne Festplatte von Notebooks oftmals zu klein um die gesamte Musiksammlung aufnehmen zu können (Hi Maren!) und gerade der Song, dem man so gerne lauschen möchte, ist unter Garantie nicht dabei sondern schlummert zuhause auf einer großen Festplatte gemeinsam mit Dutzenden Gigabytes an anderen, im Moment nicht verfügbaren, Musikdateien.

Unhaltbare Zustände wenn ihr mich fragt.

Um unterwegs auf den vollen Umfang der daheim liegenden Musiksammlung zugreifen zu können, braucht man aber eigentlich nur einige Zutaten:

  1. Ein Apple Notebook (Sorry, ihr mobilen Windows-/Linux-Leute) mit iTunes drauf um die Musik von Zuhause abzuspielen
  2. Eine zum Bersten mit Musik vollgestopfte DAAP-Quelle Zuhause (Das kann ein Mac mit iTunes oder auch ein Linux-PC (oder sogar eine NSLU2) mit installiertem Firefly Media Server sein. Im Prinzip sollte auch ein Windows-PC mit iTunes und installiertem SSH-Server funktionieren, das habe ich aber nicht ausprobiert…)
  3. Eine feste IP oder einen DynDNS-Eintrag (Ich nutze dyndns.com, aber es gibt einige Anbieter…) für das Heimnetz
  4. Ein Internet zwischen den beiden Computern das Zugang per ssh bietet (Advanced Users kommen aber sicherlich auch mit einem gesperrten Port 22 oder Proxyserver klar…)
  5. Network Beacon als ZeroConf Proxy auf dem Apple Notebook (Wenn es ein Pendant zu diesem Programm für Windows oder Linux gibt (Vielleicht Rendezvous Proxy?), kann man auch auf der Client Seite auf Apple Hardware verzichten. Aber wer will das schon…)

Alles da? Dann weiter nach dem Klick…

Das ganze ist wirklich nicht sehr schwierig einzurichten, im Prinzip läuft es auf die folgenden Schritte hinaus:

  1. Das Heim-Netz (z.B. per DynDNS) erreichbar machen (das ist auch für undendlich viele andere Sachen gut)
  2. Einen Computer mit Musik füllen und iTunes oder Firefly installieren
  3. Eine Port 22 Weiterleitung auf den Computer einrichten, der die Musik vorhält
  4. Vom Notebook aus einen SSH-Tunnel nach Hause aufbauen
  5. Auf dem Notebook die neue Musikquelle per Network Beacon Umleitung bekannt machen
  6. Press Play, enjoy some Music

Ich erkläre hier der Einfachheit halber mein Setup und lasse die ersten drei Schritte als exercise for the reader stehen. Wer Probleme mit einem der Schritte hat, kann sich aber gerne per Kommentar oder Mail melden, ich schau dann ob ich helfen kann…

Setup:

Zuhause steht mein Cube auf dem iTunes läuft. Der Port 22 wird von meinem Router an den Cube durchgereicht, der Router ist per DynDNS aus dem Internet erreichbar.

Vorgehen:

Unterwegs öffne ich nun auf meinem MacBook ein Terminalfenster und baue den ssh-Tunnel nach Hause auf:

1
dennis@macbook:~$ ssh user_name@host_name -L 3689:127.0.0.1:3689

(Natürlich müssen user_name und host_name durch eigene, passende Werte ersetzt werden)

Nach der Eingabe des Passworts (Oder der Authentifizierung über Zertifikate, ganz nach Gusto) bindet dieser Befehl den lokalen Port 3689 des MacBooks an den gleichen Port auf dem entfernten Cube. Dieses Fenster kann jetzt minimiert (aber nicht geschlossen) werden.

Nun wird Network Beacon gestartet und ein neues Beacon konfiguriert. Die Daten können genau so wie sie sind, aus dem folgendem Screenshot übernommen werden.

Beacon Config

Nach einem Klick auf “Ok” sollte das Fenster dann so ausschauen wie auf dem Screenshot zur Rechten (für ein größeres Bild anklicken).Fertige Beacon Config

Jetzt kann iTunes gestartet werden. Unter “Gemeinsam genutzt” sollte jetzt der “daap-server-ssh” auftauchen und nach einem Klick darauf mit dem korrekten Namen der iTunes-Freigabe angezeigt werden.

daap in iTunes

Cube Music

Nach einer kurzen Wartezeit (je nach Qualität der Internet-Verbindung auch mal etwas länger, mit ein wenig Geduld und kleinen Anpassungen kann man sogar UMTS-Verbindungen nutzen) wird die eigene iTunes-Sammlung angezeigt und kann wie daheim benutzt werden.

Mögliche Fallstricke:

Vielleicht ist einfach die Freigabe im iTunes zuhause nicht eingerichtet? Oder das lokale iTunes sucht nicht nach anderen iTunes-Mediatheken?

Sonstige Probleme können vor allem in Firewall-Einstellungen begründet liegen. Sowohl der Cube als auch das MacBook müssen den Port 3689 (iTunes Sharing) frei gegeben haben. Der Cube muss ausserdem per Port 22 (SSH / entfernte Anmeldung) erreichbar sein, und auch der Router muss die Port-Weiterleitung korrekt konfiguriert haben.

Sollte der ssh Befehl nicht funktionieren kann man die Erreichbarkeit des Routers per ping testen.

Erhält man Antworten auf seinen Ping ist vielleicht die “Entfernte Anmeldung” auf dem Mac nicht aktiviert oder, OS-allgemeiner gesprochen, der sshd läuft nicht.

Um die Funktion des SSH-Tunnels und der ZeroConf-Weiterleitung zu testen kann man vor dem iTunes-Start zunächst die Erreichbarkeit des Ports via telnet testen:

1
2
3
4
5
6
7
8
9
10
11
dennis@macbook:~$ telnet localhost 3689
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.


HTTP/1.1 400 Bad Request
Date: Fri, 05 Oct 2007 12:46:48 GMT
DAAP-Server: iTunes/7.4.2 (Mac OS X)
Content-Type: application/x-dmap-tagged
Content-Length: 0

Wenn sich da kein iTunes (oder sonst ein DAAP-Server) meldet ist irgend etwas nicht ganz richtig in der Beacon-Config…

Erweiterungs-Möglichkeiten:

Man könnte das ganze mit dem Rendezvous Proxy wie gesagt auch mal ohne Apple-Hardware ausprobieren. Wer da Erfolg hat kann sich gerne per Kommentar melden…

Ausserdem fände ich es auch noch interessant, den gleichen Weg für iPhotos DPAP auf Port 8770 zu testen. Damit könnte man unterwegs (bei gewissen Bandbreiten) die heimischen Fotos herzeigen… Mal sehen wann Zeit dafür ist…

(Basierend auf diesem HowTo, via mobile macs)

Comments