Zum Hauptinhalt springen

Linux: Serielle Schnittstelle durch TCP tunneln

·1 min
Michael Hönnig
Autor
Michael Hönnig
Bis Herbst 2027 nur für Beratungsaufträge mit geringem Stundenumfang verfügbar – remote, auf Deutsch und Englisch.

Das UNIX-Programm socat ist ein mächtiges Werkzeug, mit dem Daten zwischen verschiedensten Protokollen umgesetzt werden können. In diesem Beispiel, um zwei serielle Schnittstelle über einen TCP-Tunnel zu verbinden.

  1. auf beiden Maschinen socat installieren, mit Debian und ähnlichen Distributionen z.B. so:

    # apt-get install socat
  2. auf der einen Tunnel-Maschine socat als Server starten, z.B.:

    > socat TCP4-LISTEN:7777,bind=SERVERIP,reuseaddr,fork /dev/ttyS0,raw,echo=0,crnl

    Dabei ist SERVERIP die zu verwendende IP-Nummer bzw. der Hostname dieser ersten Tunnel-Maschine.

  3. auf der anderen Tunnel-Maschine socat als Client starten, z.B.:

    > socat /dev/ttyS1,raw,echo=0,crnl TCP4:SERVERIP:7777

Das im Beispiel an /dev/ttyS0 der ersten Maschine angeschlossene serielle Gerät steht nun unter /dev/ttyS1 auf der zweiten Maschine zur Verfügung. D.h. ein dort angeschlossenes serielles Gerät kommuniziert über den TCP-Tunnel mit dem an der ersten Maschine angeschlossenen seriellen Gerät.