Einstellungen für die Weiterleitung von Linux-SSH-Ports (Tunnel)

Ich habe die Möglichkeit, den Inhalt des Betreffs auf dem Linux-Server festzulegen. Beachten Sie, dass es einige Zeit gedauert hat. Und ich schrieb es in der Hoffnung, dass es jemandem nützlich sein würde.

Was ich machen wollte

-Installieren Sie einen Tunnel (lokal: 50000) auf dem Linux-Server (lokal) ・ Stellen Sie vom Linux-Server aus eine Verbindung zu RDS her (Schritt) -Verbinden Sie sich über einen Tunnel mit einem bestimmten Dienst (der auf einem Linux-Server (lokal) ausgeführt wird) mit RDS. ・ Daher ist es nicht Ihre Aufgabe, eine Verbindung herzustellen, sondern die Nutzung eines Dienstes.

Jede Information

Lokaler Server

・ Weiterleitung von Port 50000 an RDS-SSH-Port

Schritt Server

Host: "999.999.999.999" Benutzername: "fumidai" Zertifikat: "/etc/ssh/fumidai.pem" RDS Host: "RDS.com" Port: "3306"

Der Befehl, der schließlich zu mir kam

Basierend auf jeder der obigen Informationen ist es wie folgt. 「ssh -o ServerAliveInterval=30 -f -N -L 50000:RDS.com:3306 [email protected] -i /etc/ssh/fumidai.pem」

Einfache Befehlsbeschreibung

Option "-o"

Es scheint, dass Sie die in ssh_config beschriebenen Parameter festlegen können, indem Sie die Option "-o" festlegen. Zum Beispiel "-o XXXXX = 30".

Option "-f -N"

Erforderlich, wenn der Portweiterleitungsprozess (Tunnel) im Hintergrund ausgeführt werden soll. Es ist nutzlos, wenn es nicht zwei sind, und es ist unmöglich, wenn es nur "-f" ist.

Option "-L"

Wird verwendet, wenn der lokale Port des lokalen Servers angegeben wird. Im Fall von "-R" sieht es aus wie eine Fernbedienung. Ich habe nicht im Detail untersucht.

Option "-i"

Das Referenzziel des Zertifikats.

Es war schwer, zum Kommando zu gelangen.

Es ist eine grundlegende Sache, aber ich war oft verwirrt, weil es im Spiel einen Ort gab, an dem es herauskam.

Zertifizierungsstelle

ssh ist maßgebend. Wenn Sie es nicht richtig einstellen, wird keine Verbindung hergestellt. Referenzseite: "https://note.mokuzine.net/ssh-permission-denied/"

Der Prozess fällt von selbst

Egal, wo Sie sich die Site ansehen, wenn Sie eine Tunneleinstellung in den Hintergrund stellen und löschen möchten Finde einen Prozess und töte ihn. Ich möchte Ihnen jedoch verzeihen, dass Sie selbst fallen gelassen wurden.

Solange Sie es mit "-f -N" verschieben, wird es im Hintergrund verschoben. Ich habe es auch mit dem Befehl netstat bestätigt, aber es befindet sich ordnungsgemäß im Status Listen. Es fällt jedoch in etwa 2 Stunden und 15 Minuten. Wenn Sie den Dienst etwa 1 Stunde nach dem Start des Vorgangs kommunizieren lassen (als Abhören belassen), Die Kommunikation wird nicht richtig durchgeführt, wahrscheinlich weil ich sie für eine lange Zeit verlassen habe. Es scheitert auf dem Weg. Nun, es gab keine Kommunikation, also fragte ich mich, ob etwas passierte.

Wenn Sie genau hinschauen, Karnel? Es scheint, dass es abgeschnitten wird, wenn aufgrund der Spezifikationen oder Ähnlichem keine Kommunikation stattfindet. "Schreiben fehlgeschlagen: Pipe gebrochen" zu dem Zeitpunkt, zu dem der Prozess zu dem Terminal heruntergefahren wird, an dem der Prozess tatsächlich ausgeführt wurde Wurde angezeigt.

Referenzseite: "https://www.riscascape.net/archives/9570"       :「https://alpha-netzilla.blogspot.com/2011/12/tcp-keepalive.html」       :「https://qiita.com/kuni-nakaji/items/c07004c7d9e5bb683bc2」

Halte den Prozess irgendwie am Leben

Es gibt "ServerAliveInterval" usw. in ssh und es kommuniziert im angegebenen Zyklus und in der angegebenen Anzahl von Malen. Jetzt stirbst du nicht alleine. Die Kommunikation ist auch nach etwa einer Stunde möglich (belassen Sie diese als Hören). In den sshd-Einstellungen funktionieren die Einstellungen hier standardmäßig nicht als "0".

Referenzseite: "https://qiita.com/ysk24ok/items/2f4ced5edf306fdd9dfb"       :「http://www.koganemaru.co.jp/cgi-bin/mroff.cgi?sect=5&cmd=&lc=1&subdir=man&dir=jpman-11.2.2%2Fman&subdir=man&man=ssh_config」       :「https://tech.sv-cat.net/entry/2018/08/21/190127」

Zukünftige Aufgaben

Es reicht jedoch nicht aus, den Vorgang einmal zu starten. Vielleicht fällt es aus irgendeinem Grund. Wenn die Plattform oder der RDS des Kommunikationsziels ausfällt, wird der Prozess definitiv ausfallen. Daher ist ein Mechanismus erforderlich, um den Prozess in Erwartung eines unerwarteten Unfalls neu zu starten. Ich habe vor, es mit crond zu überwachen und umzudrehen. Ich dachte darüber nach, es zu einem Dienst mit systemd zu machen. Immerhin scheint es auf der Schale zu beruhen, also scheint crond gut zu sein.

Wenn Sie andere bessere Mittel haben, hoffen wir, dass es Ihnen gefällt.

Recommended Posts

Einstellungen für die Weiterleitung von Linux-SSH-Ports (Tunnel)
Beinhaltet Docker-Nginx-Port Forward unter AWS Linux 2
UDP-Portweiterleitung
[Linux] DNS-Einstellungen
[Linux] [Grundeinstellungen] Systemeinstellungen
[Linux] su, sudo Einstellungen
Linux, Windows Proxy-Einstellungen
Über WOL Port Forward
[Linux] [Grundeinstellung] Einführung
[Linux] [Grundeinstellungen] Installieren und deinstallieren
[Linux] [Grundeinstellung] [Flattern] Zusammenfassung
[Linux] [Grundeinstellungen] Backup & Recovery
Die Synchronisierung mit dem Server, der ssh auf localhost portiert hat, schlägt fehl. [Gelöst]