OpenVPN meldet abgeschlossene Initialisierung: warum keine Eingabeaufforderung zurückkehrt
Die letzte Logzeile markiert das Ende des Starts, nicht das Ende des Programms. Entscheiden Sie zwischen Fehlersuche im Vordergrund, einer Diensteinheit und dem Daemon-Modus.
Nichts hängt, wenn das Terminal nach der letzten Logzeile still wird. Das ist die erwartete Form für einen Client im Vordergrund: Er ist mit dem Start fertig und sitzt nun da und überträgt Datenverkehr. Die Shell-Eingabeaufforderung ist nicht das Erfolgszeichen, nach dem sie aussieht.
Behandeln Sie die Meldung als die Grenze zwischen Start und stabilem Zustand, denn genau das markiert sie.
Die Meldung markiert das Ende des Starts, nicht das Ende des Prozesses
OpenVPN gibt diese Zeile aus, nachdem es das Gerät geöffnet, die Schnittstelle konfiguriert, Routen installiert und den TLS-Austausch mit dem Gegenüber abgeschlossen hat. Danach läuft der Prozess weiter, denn seine Aufgabe ist es, den Tunnel offen zu halten und Pakete weiterzuleiten. Ein Programm im Vordergrund kehrt nicht zur Eingabeaufforderung zurück, solange es diese Aufgabe noch erfüllt. Stille Ausgaben danach sind normal, da der Client nur spricht, wenn sich etwas ändert.
Tritt die Zeile auf und stirbt die Verbindung später, ist das ein anderes Ereignis, und das Log wird es im Nachhinein sagen.
Ctrl+C ist eine Entscheidung, keine Reparatur
Ein Druck auf Ctrl+C sendet einen Interrupt, den der Client als Aufforderung zum Herunterfahren behandelt. Die Eingabeaufforderung kommt zurück, der Tunnel verschwindet, und jede Sitzung, die ihn nutzt, endet. Das sieht nach Fortschritt aus und ist in Wahrheit das Gegenteil. Wenn das Ziel eine dauerhafte Verbindung ist, lautet die Antwort, den Prozess dorthin zu verschieben, wo er ohne Ihr Terminal weiterlaufen kann, und ihn nicht zu unterbrechen.
Ihn im Vordergrund zu lassen ist die richtige Wahl, während Sie debuggen, weil spätere Fehler im selben Fenster sichtbar bleiben. Eine stille Minute beweist nichts in die eine oder andere Richtung; testen Sie eine Ressource durch den Tunnel, statt auf Ausgaben zu warten.
Was die Meldung nicht beweist
Abschluss ist eine lokale Aussage über die eigene Einrichtung des Clients. Sie sagt nicht, dass die Gegenseite antwortet, dass die installierten Routen zu Ihrem Bedarf passen oder dass die Namensauflösung durch den Tunnel funktioniert. Ein Profil mit geteiltem Tunnel kann vollständig initialisiert sein, während eine Unternehmensfreigabe unerreichbar bleibt, weil die Route oder die DNS-Richtlinie sie nie abgedeckt hat. Instanzen auf der Serverseite geben eine ähnliche Zeile aus, wenn sie bereit sind, Clients anzunehmen, was nicht dasselbe ist wie ein verbundener Client.
„Der Server ist gestartet“ und „das Notebook kann die Freigabe öffnen“ sind Beobachtungen von zwei verschiedenen Orten, und ihre Verwechslung schickt Sie zur Fehlersuche am falschen Host.
Ohne Terminal betreiben
Für einen dauerhaften Betrieb nutzen Sie die Dienstlösung, die die Plattform unterstützt. Auf einem systemd-Host ist das eine openvpn-client@office-Instanz mit dem Profil in /etc/openvpn/client, gestartet und aktiviert, damit sie Neustarts übersteht. Community OpenVPN bietet außerdem --daemon zusammen mit --log oder --log-append, was den Prozess ablöst und die Ausgabe in eine Datei schreibt. Beide Wege ändern, wie der Prozess läuft; keiner repariert eine Route oder macht eine entfernte Anwendung gesund.
Prüfen Sie, dass Sie keine zweite Instanz neben einer starten, die bereits ein Dienst verwaltet. Zwei Clients, die dasselbe Profil beanspruchen, erzeugen verwirrende Logs und einen Tunnel, den Sie nicht beabsichtigt hatten.
Wählen Sie die Lösung, die zur Aufgabe passt
Vordergrund für die Diagnose, Dienst für alles, was die Sitzung überleben muss, Daemon-Modus, wenn kein Dienstmanager zum Anlehnen da ist. Diese drei decken die üblichen Fälle ab, und jeder hat einen klaren Grund zu existieren. Einen davon versehentlich zu wählen erzeugt den Bericht „läuft, bis das Fenster geschlossen wird“.
Wenn der Tunnel bleiben soll, bestätigen Sie danach, dass er nach einem Neustart zurückkommt und dass seine Logs dort landen, wo Sie nachsehen werden. Die Initialisierungszeile erscheint auch in diesen Logs, und dann muss niemand mehr dafür ein Terminal beobachten.