Artur Södler Software-Qualität

Tunnel

Steuern des Programmes über Port 5052


Artur Södler Software Qualität  
Sie sollten eine laufende Instanz des Programmes mit dem Befehl commands gestartet haben. Falls nicht, holen Sie dies nun nach:
tunnel [self] commands
startet das Tunnel-Programm, um Befehle auf Port 5052 (Standard) entgegenzunehmen.

("Tunnel" erkennt selbstständig, ob es als laufende Instanz den Port 5052 entgegennehmen kann. Leider hat Linux die Eigenschaft, dies unter bestimmten Bedingungen eine Zeit lang zu blockieren. Ab Version 8 kann man mit dem Schlüsselwort self erzwingen, dass eine laufende Instanz erzeugt wird.)

Kontrollieren Sie bitte, dass das Programm läuft, und korrekt arbeitet:
tunnel grant 127.168.123.45 to patrick
tunnel list
In der Ausgabe erscheint unter "Berechtigungen:"
grant "127.168.123.45" to "..."

Erscheint unter "Berechtigungen:" keine solche Zeile, dann wurde "Tunnel" noch nicht gestartet, oder reagiert nicht auf Port 5052, oder die lokale Befehlsannahme wurde gesperrt. In diesem Fall können Sie
•  den Grundzustand wiederherstellen und erneut tunnel commands aufrufen, oder
•  die laufende Instanz des Programmes korrekt ansprechen, wenn Sie wissen, wie Sie sie gestartet haben.

Die laufende Instanz des Programmes adressieren:

Haben Sie "Tunnel" mit einer anderen Portnummer konfiguriert, oder läuft es auf einem anderen PC, müssen Sie in der Kommandozeile mitgeben, wohin die Befehle gehen sollen:
tunnel [<host>] [<port>] <command1> [<command2>... ]
<host>:IP-Adresse oder DNS-Name für den Computer, auf dem das anzusprechende Tunnel-Programm läuft. Geben Sie keinen host an, wird der host "localhost" verwendet. Der Name "localhost" sollte zu 127.0.0.1 und damit über das Interface "loopback" zu ihrem eigenen Computer führen.
<port>:Portnummer für das anzusprechende Tunnel-Programm. Geben Sie keine Portnummer an, wird die Vorgabe 5052 verwendet.

Befehle verketten:

Mehrere Befehle für "Tunnel" können Sie aneinander hängen. Es wird eine einzige TCP-Verbindung zur Steuerung aufgebaut, und die Befehle werden nacheinander über die gleiche Verbindung ausgeführt.

In manchen Fällen ist es wichtig, dass die Befehle über die gleiche Verbindung weitergereicht werden. Sehen wir uns ein Beispiel an:
tunnelcommands"Tunnel" wird gestartet und nimmt Befehle auf Port 5052 entgegen.
tunnelpassword jenniferDie lokale Arbeitsstation bekommt das Kennwort "jennifer".
tunneldisable localBefehle von der lokalen Arbeitsstation benötigen nun ein Login.
tunnelenable localfunktioniert nicht, wird verweigert (es wird ein Login benötigt)
tunnellogin jenniferDas login ist zwar richtig, aber es gilt nur für diese Verbindung (also für diese Kommandozeile)
tunnelenable localfunktioniert nicht, wird verweigert
tunnellogin jennifer enable local
Das login ist richtig, und weil enable local in der gleichen Kommandozeile steht (also mit der gleichen Verbindung kommt), ist es erlaubt.
Weil die obige Kommandozeile ein bisschen lang ist, wollen wir sie künftig in dieser Anleitung auch mehrzeilig schreiben.:
tunnellogin jennifer
enable local
Das login ist richtig, und weil enable local in der gleichen Kommandozeile steht (also mit der gleichen Verbindung kommt), ist es erlaubt.

Stapelverarbeitung von Befehlen:

Möchten Sie "Tunnel" umfassender konfigurieren, dann werden Sie wahrscheinlich bald auf Stapelverarbeitungsdateien (batches, scripts) zurückgreifen. Es wird zwar für jede Zeile das Programm "Tunnel" erneut aufgerufen, aber das Programm ist sehr klein, und es geht deshalb schnell.

Als Alternative bietet sich die Erweiterung der Kommandozeile an (früher auch "input file" oder "response file" genannt):
tunnel [<command1>...] @<file name> [--parse=commented] [<command2>...]
<file name>:Name der Datei, die weitere Befehle enthält
--parse:gibt an, wie die Datei zu interpretieren ist. Die einzig sinnvolle Variante für "Tunnel" ist commented: Zeilen, die mit "#", "//" oder ";" beginnen, werden als Kommentare überlesen.
Die Datei <file name> wird gelesen, und in die Kommandozeile an der gleichen Stelle eingefügt.

Auswertung der Kommandozeile:

Die Kommandozeile von Tunnel wird so ausgewertet:
1.Die Kommandozeile wird von links nach rechts ausgelesen und in Wörter zerlegt. Wörter sind durch Leerzeichen getrennt; sie dürfen in doppelten Anführungszeichen stehen:
"C:/Dokumente und Eintellungen/" Ein Wort darf Leerzeichen enthalten. Dann muss es von Anführungszeichen umschlossen sein.
"8 1/4""" Ist ein einfaches Anführungszeichen gemeint, geben Sie ein doppeltes Anführungszeichen ein.
"@tunnel config.txt"Stellen Sie nicht den Dateinamen "tunnel config.txt" in Anführungszeichen, sondern das "Wort" @<file name>.
""Wollen Sie "nichts" angeben, müssen Sie ebenfalls Anführungszeichen setzen. "nichts" ist dann auch ein ganzes "Wort".
Bitte beachten Sie: Unter Linux zerlegt bereits die Shell Ihre Kommandozeile in Wörter! Es liegt also nicht mehr in der Hand von "Tunnel".
2.Kommandozeilen-Erweiterungsdateien werden gelesen, wie oben beschrieben in Wörter zerlegt, und eingefügt. Sie dürfen sie auch verschachteln.
Bitte beachten Sie: Unter Linux übernimmt hier wieder "Tunnel" das Zerlegen in Wörter!
3.Die gesamte Kommandozeile wird von links nach rechts gelesen. Optionen (beginnend mit doppel-Minus, z.B. --help) werden ungeachtet ihrer Reihenfolge ausgelesen. Der Rest muss (Optional das Ziel <host> und <port> und) eine Liste von Befehlen sein.
Einige Befehle haben optionale Parameter. Deshalb wird das Ende eines Befehls in der Regel daran erkannt, dass ein neuer Befehl beginnt. Für viele Parameter ist es daher nicht zulässig, dass sie wie ein Befehl aussehen.
Heisst Ihr Server z.B. "server", werden Sie ihn so ansteuern müssen:
tunnel server. 5052 login monika list (Haben Sie den Punkt gesehen?)
4.Sind alle Befehle syntaktisch in Ordnung, wird eine TCP-Verbindung zur Steuerung aufgebaut. Alle Befehle werden nacheinander abgearbeitet:
sleep und timeoutwerden nicht über die Verbindung gereicht, sondern direkt ausgewertet.
alle anderen Befehlewerden über die Verbindung gereicht. Das Ergebnis muss "ok" oder "error" sein, evtl. gefolgt von weiteren Informationen.
5.Beim ersten Fehler bricht "Tunnel" ab und gibt einen Rückgabewert 1 (Windows: "ERRORLEVEL"). Lief alles glatt, gibt es einen Rückgabewert 0.

Siehe auch:Annahme von Befehlen konfigurierenAnnahme vom eigenen Computer konfigurieren
Valid HTML 4.01 TransitionalValid CSS