Internet Verbindung soll nur mit OpenVPN starten, aber wie?
-
- Member
- Beiträge: 108
- Registriert: 28 Jan 2016 21:48
- Receiver 1: Mutant HD66se
- Hat gedankt: 9 Mal
- Hat Dank erhalten: 23 Mal
Sorry Pik mein Fehler.
Hier das Log und die 'openvpn' von openpli häng ich auch mit an,da die etwas anders als bei openatv ist.
Was mich irritiert,daß das selbe Script bei einem Aufruf (Telnet) funktioniert bei (cron) nicht.
Auch wenn 'OpenVPN Start Versuch 1 erfolgreich' im Log steht ist VPN nicht gestartet.
Wie gesagt beim Aufruf perTelnet ist VPN sofort da.
Übrigens hab ich bei openpli 'busybox-cron ' durch 'cronie' ersetzt.
[ATTACH]97496[/ATTACH]
Hier das Log und die 'openvpn' von openpli häng ich auch mit an,da die etwas anders als bei openatv ist.
Was mich irritiert,daß das selbe Script bei einem Aufruf (Telnet) funktioniert bei (cron) nicht.
Auch wenn 'OpenVPN Start Versuch 1 erfolgreich' im Log steht ist VPN nicht gestartet.
Wie gesagt beim Aufruf perTelnet ist VPN sofort da.
Übrigens hab ich bei openpli 'busybox-cron ' durch 'cronie' ersetzt.
[ATTACH]97496[/ATTACH]
- Dateianhänge
-
- vpn_emergency_restart.zip
- (1.79 KiB) 28-mal heruntergeladen
- Pike_Bishop
- Moderator
- Beiträge: 2783
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 727 Mal
- Hat Dank erhalten: 1610 Mal
- Geschlecht:
Also ich seh da zwei Fehler,. erstmal das;
ps: invalid option -- 'a'
also das busybox ps im PLI kennt mal wieder nen Parameter nicht in dem Fall das a und die weiteren vermutlich eh auch nicht.
und;
Starting openvpn:/etc/init.d/openvpn: line 26: start-stop-daemon: command not found
Gegen das erste Poblem mit ps mit Parameter a mach mal das;
EDIT !
Hat etwas gedauert rauszufinden wie das abläuft damit das auch mal korrekt gestartet wird (ich verwende ja sonst immer nur den VPN Manager) also wenn man openvpn allein verwendet braucht es klar erstmal das Paket openvpn welches installiert sein muss (im PLI ist das nicht der Fall also nachinstallieren).
Dann muss man seine config Dateien in das Verzeichnis /etc/openvpn kopieren und zwar einmal eine client.conf also z.b: man hat von NordVPN ne Datei mit Namen;
at149.nordvpn.com.tcp.ovpn
dann diese in client.conf umbenennen.
In dieser client.conf (nur mit nem Linuxtauglichen Editor) die Zeile;
auth-user-pass
zu;
auth-user-pass /etc/openvpn/auth.txt
ändern, und dann eine Datei mit Namen auth.txt erstellen und da in Zeile 1 den User und in Zeile 2 das Passwort eintragen (wieder nur mit Linuxtauglichem Editor).
Diese Datei kommt ebenfalls in das Verzeichnis /etc/openvpn.
Nun sollte man openvpn via Telnet Befehl;
starten können, wenn in der Ausgabe in telnet sowas zu sehen ist;
Initialization Sequence Completed
sollte das passen.
Nun findet das Script hier erstmals auch ne PID via;
ps aux | grep [o]penvpn | awk '{print $2}'
Also so sollte das Script nun erstmal korrekt funktionieren, jedenfalls manuell ausgeführt.
Ok also das Script hat zuvor bei dir via telnet nur geklappt weil die PID immer leer war, aber es hätte egal ob openvpn schon gestartet ist oder nicht das openvpn bei jeder
Ausführung vom Script wieder gestartet, also nicht gut.
Relevant ist da erstmal das erste Problem (siehe oben) der Rest sind nur Folgefehler, also installier mal wie oben eh geschrieben das Paket procps-ps nach
womöglich passt es dann schon auch via cronjob.
Wenn der cronjob korrekt ist sollte es das auch, also am Besten den cronjob mal löschen und so wie folgt neu erstellen;
Es ist dabei egal ob du den busybox-cron oder cronie verwendest (Im PLI bei cronie kanns sein das die cronjobs unter /etc/cron usw.. zu finden sind statt wie beim busybox-cron unter /var/spool usw.. aber das ändert nichts am Befehl oben um den cronjob zu erstellen.
EDIT 2 !
So hab es nun selbst im PLI-Devel getestet, und hat via cronjob tadelllos funktioniert. hab dazu einfach openvpn via;
gestoppt dann das Script nach /usr/script kopiert und wie oben den cronjob eingetragen. habe sogar noch das Modul tun via;
entladen und nun kurz gewartet. Hat sich alles wieder komplett selbstständig aktiviert, also das Modul tun war wieder geladen und openvpn PID war da, das Log dazu sieht so aus;
Einziger Unterschied ich hab den busybox-cron verwendet.
Problem sollte also nun gelöst sein bei dir wenn du das alles hier befolgst, also eh nur procps-ps nachinstallieren und cronjob wie oben neu erstellen, mehr is es nicht.
Ich geh mal davon aus das du die Konfigurationsdateien bereits korrekt angelegt hast unter /etc/openvpn (ansonsten steht das ja nun auch in diesem Post mit dabei wie das geht).
Grüsse
Pike
ps: invalid option -- 'a'
also das busybox ps im PLI kennt mal wieder nen Parameter nicht in dem Fall das a und die weiteren vermutlich eh auch nicht.
und;
Starting openvpn:/etc/init.d/openvpn: line 26: start-stop-daemon: command not found
Gegen das erste Poblem mit ps mit Parameter a mach mal das;
Code: Alles auswählen
opkg update
opkg install procps-ps
EDIT !
Hat etwas gedauert rauszufinden wie das abläuft damit das auch mal korrekt gestartet wird (ich verwende ja sonst immer nur den VPN Manager) also wenn man openvpn allein verwendet braucht es klar erstmal das Paket openvpn welches installiert sein muss (im PLI ist das nicht der Fall also nachinstallieren).
Dann muss man seine config Dateien in das Verzeichnis /etc/openvpn kopieren und zwar einmal eine client.conf also z.b: man hat von NordVPN ne Datei mit Namen;
at149.nordvpn.com.tcp.ovpn
dann diese in client.conf umbenennen.
In dieser client.conf (nur mit nem Linuxtauglichen Editor) die Zeile;
auth-user-pass
zu;
auth-user-pass /etc/openvpn/auth.txt
ändern, und dann eine Datei mit Namen auth.txt erstellen und da in Zeile 1 den User und in Zeile 2 das Passwort eintragen (wieder nur mit Linuxtauglichem Editor).
Diese Datei kommt ebenfalls in das Verzeichnis /etc/openvpn.
Nun sollte man openvpn via Telnet Befehl;
Code: Alles auswählen
openvpn --config /etc/openvpn/client.conf
starten können, wenn in der Ausgabe in telnet sowas zu sehen ist;
Initialization Sequence Completed
sollte das passen.
Nun findet das Script hier erstmals auch ne PID via;
ps aux | grep [o]penvpn | awk '{print $2}'
Also so sollte das Script nun erstmal korrekt funktionieren, jedenfalls manuell ausgeführt.
Ok also das Script hat zuvor bei dir via telnet nur geklappt weil die PID immer leer war, aber es hätte egal ob openvpn schon gestartet ist oder nicht das openvpn bei jeder
Ausführung vom Script wieder gestartet, also nicht gut.
Relevant ist da erstmal das erste Problem (siehe oben) der Rest sind nur Folgefehler, also installier mal wie oben eh geschrieben das Paket procps-ps nach
womöglich passt es dann schon auch via cronjob.
Wenn der cronjob korrekt ist sollte es das auch, also am Besten den cronjob mal löschen und so wie folgt neu erstellen;
Code: Alles auswählen
(crontab -l 2>/dev/null; echo "* * * * * sh /usr/script/vpn_emergency_restart.sh") | crontab -
Es ist dabei egal ob du den busybox-cron oder cronie verwendest (Im PLI bei cronie kanns sein das die cronjobs unter /etc/cron usw.. zu finden sind statt wie beim busybox-cron unter /var/spool usw.. aber das ändert nichts am Befehl oben um den cronjob zu erstellen.
EDIT 2 !
So hab es nun selbst im PLI-Devel getestet, und hat via cronjob tadelllos funktioniert. hab dazu einfach openvpn via;
Code: Alles auswählen
/etc/init.d/openvpn stop
gestoppt dann das Script nach /usr/script kopiert und wie oben den cronjob eingetragen. habe sogar noch das Modul tun via;
Code: Alles auswählen
rmmod tun
entladen und nun kurz gewartet. Hat sich alles wieder komplett selbstständig aktiviert, also das Modul tun war wieder geladen und openvpn PID war da, das Log dazu sieht so aus;
Code: Alles auswählen
Datum + Uhrzeit = Tue.11.Jun.2024-12:17
OpenVPN (wg. Zwangstrennung ?) nicht aktiv.
OpenVPN Start Versuch 1 ...
Starting openvpn: client.
OpenVPN Start Versuch 1 erfolgreich.
Einziger Unterschied ich hab den busybox-cron verwendet.
Problem sollte also nun gelöst sein bei dir wenn du das alles hier befolgst, also eh nur procps-ps nachinstallieren und cronjob wie oben neu erstellen, mehr is es nicht.
Ich geh mal davon aus das du die Konfigurationsdateien bereits korrekt angelegt hast unter /etc/openvpn (ansonsten steht das ja nun auch in diesem Post mit dabei wie das geht).
Grüsse
Pike
Scripte
*********************
*********************
Keine Antwort auf PN Anfragen welche ins Forum gehören.
*********************

Keine Antwort auf PN Anfragen welche ins Forum gehören.
-
- Member
- Beiträge: 108
- Registriert: 28 Jan 2016 21:48
- Receiver 1: Mutant HD66se
- Hat gedankt: 9 Mal
- Hat Dank erhalten: 23 Mal
Hallo Pike
Ich hab 'procps-ps' nachinstalliert.
Der Start per cron hat weiterhin Fehler wohingegend der Start per Telnet geht.
Ich hab spaßeshalber mal 'openvpn' von openatv genommen.
Da kommt auch der 'start-stop-daemon: Fehler' nur in einer anderen Zeile.
Ich häng das LOG an. Die ersten beiden Startversuche sind per cron der dritte funktionierende per telnet.
[ATTACH]97499[/ATTACH]
Ich hab 'procps-ps' nachinstalliert.
Der Start per cron hat weiterhin Fehler wohingegend der Start per Telnet geht.
Ich hab spaßeshalber mal 'openvpn' von openatv genommen.
Da kommt auch der 'start-stop-daemon: Fehler' nur in einer anderen Zeile.
Ich häng das LOG an. Die ersten beiden Startversuche sind per cron der dritte funktionierende per telnet.
[ATTACH]97499[/ATTACH]
- Dateianhänge
-
- vpn_emergency_restart.log
- (842 Bytes) 30-mal heruntergeladen
- RickX
- Member
- Beiträge: 446
- Registriert: 30 Mai 2022 10:02
- Wohnort: NRW
- Receiver 1: Nvidia Shield (waipu.tv)
- Receiver 2: waipu.tv Stick
- Receiver 3: Vu+ Uno 4K SE (VTI 15)
- Hat gedankt: 176 Mal
- Hat Dank erhalten: 212 Mal
Laut Fehlermeldung wird ein Kommando bzw. Programm nicht gefunden:
Was soll denn in Zeile 26 aufgerufen werden?
Dass es mit Telnet funktioniert und aus cron nicht, könnte am fehlenden PATH beim Aufruf durch cron liegen.
Dann muss in das Script nur der absolute Pfad eingetragen werden.
Code: Alles auswählen
Starting openvpn:/etc/init.d/openvpn: line 26: start-stop-daemon: command not found
Was soll denn in Zeile 26 aufgerufen werden?
Dass es mit Telnet funktioniert und aus cron nicht, könnte am fehlenden PATH beim Aufruf durch cron liegen.
Dann muss in das Script nur der absolute Pfad eingetragen werden.
-
- Member
- Beiträge: 108
- Registriert: 28 Jan 2016 21:48
- Receiver 1: Mutant HD66se
- Hat gedankt: 9 Mal
- Hat Dank erhalten: 23 Mal
In der Zeile 26 steht dies start-stop-daemon --start --quiet --pidfile /var/run/openvpn.$NAME.pid \
Ich hatte zur Fehlersuche in der angehängten ('vpn_emergency_restart.zip') das ('openvpn' von openpli) mit eingefügt.
Der Fehler kommt auch bei der ('openvpn' von openatv) bei dieser Zeile.
Wenn openvpn gestoppt ist, existiert der Pfad /var/run/openvpn.$NAME.pid doch nicht mehr. Warum wird das beim telnetaufruf
ignoriert,da doch auch hier (etc/init.d/ openvpn) gestartet wird oder sehe ich das falsch.
Auch der direkte VPN-Start mit (/etc/init.d/openvpn start) funktioniert ja.
Ich hoffe Ihr Profis habt noch ne Idee.
Ich hatte zur Fehlersuche in der angehängten ('vpn_emergency_restart.zip') das ('openvpn' von openpli) mit eingefügt.
Der Fehler kommt auch bei der ('openvpn' von openatv) bei dieser Zeile.
Wenn openvpn gestoppt ist, existiert der Pfad /var/run/openvpn.$NAME.pid doch nicht mehr. Warum wird das beim telnetaufruf
ignoriert,da doch auch hier (etc/init.d/ openvpn) gestartet wird oder sehe ich das falsch.
Auch der direkte VPN-Start mit (/etc/init.d/openvpn start) funktioniert ja.
Ich hoffe Ihr Profis habt noch ne Idee.
- Pike_Bishop
- Moderator
- Beiträge: 2783
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 727 Mal
- Hat Dank erhalten: 1610 Mal
- Geschlecht:
Hi,
Is nur komisch das es bei mir funktioniert, aber ich hatte sowas eh schonmal bei nem anderen User, trag mal das;
im Script ein und zwar in Zeile 9 (aber nur mit nem linuxtauglichen Editor) also sollte dann so aussehen das ganze Script (hab die Zeile orange markiert);
Deine openvpn configs sind ja hoffentlich in Ordnung?
Denn sollte es nun noch immer nicht klappen muss man mal gucken ob da alles ok ist (also Schritt für Schritt von vorne)
Grüsse
Pike
Is nur komisch das es bei mir funktioniert, aber ich hatte sowas eh schonmal bei nem anderen User, trag mal das;
Code: Alles auswählen
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin
im Script ein und zwar in Zeile 9 (aber nur mit nem linuxtauglichen Editor) also sollte dann so aussehen das ganze Script (hab die Zeile orange markiert);
Code: Alles auswählen
#!/bin/sh
## Variables ##
OPENVPN=/etc/init.d/openvpn
LOGDIR=/home/root
LOGFILE=$LOGDIR/vpn_emergency_restart.log
LOGLINELIMIT=500
[B][color=#FF8C00]PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin[/color][/B]
# Logfile Begrenzung auf ca. 500-510 Zeilen
# Bei Ueberschreitung wird ein neues angelegt
if [ -e $LOGFILE ] ; then
LOGLINES="$(wc -l $LOGFILE | cut -d" " -f1)"
if [ "$LOGLINES" -gt "$LOGLINELIMIT" ] ; then
rm -f $LOGFILE
fi
fi
# Generelles Logging
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>>$LOGFILE 2>&1
ONE_TIMES=0
message_one_times_enough() {
ONE_TIMES=$((ONE_TIMES+1))
if [ "$ONE_TIMES" -eq "1" ] ; then
echo -e "\nDatum + Uhrzeit = $DATE\n"
fi
}
OPENVPN_PID="$(ps aux | grep [o]penvpn | awk '{print $2}')"
COUNT=0
while [ -z $OPENVPN_PID ]
do
COUNT=$(( $COUNT + 1 ))
if [ "$COUNT" -gt "3" ] ; then
COUNT=$(( $COUNT - 1 ))
echo -e "\n! OpenVPN Start Versuch $COUNT fehlgeschlagen !"
echo -e "Start der naechsten 3 Versuche in einer Minute ...\n"
break
else
DATE="$(date +%a.%d.%b.%Y-%H:%M)"
message_one_times_enough
echo -e "\nOpenVPN (wg. Zwangstrennung ?) nicht aktiv.\nOpenVPN Start Versuch $COUNT ..."
$OPENVPN start
fi
if [ "$?" = "0" ] ; then
echo -e "OpenVPN Start Versuch $COUNT erfolgreich.\n" && exit
else
echo -e "\n! OpenVPN Start Versuch $COUNT fehlgeschlagen !\nNaechster Start Versuch -> in drei Sekunden ...\n"
sleep 3
fi
done
exit
Deine openvpn configs sind ja hoffentlich in Ordnung?
Denn sollte es nun noch immer nicht klappen muss man mal gucken ob da alles ok ist (also Schritt für Schritt von vorne)
Grüsse
Pike
Scripte
*********************
*********************
Keine Antwort auf PN Anfragen welche ins Forum gehören.
*********************

Keine Antwort auf PN Anfragen welche ins Forum gehören.
- Pike_Bishop
- Moderator
- Beiträge: 2783
- Registriert: 11 Feb 2020 22:06
- Wohnort: here and there
- Receiver 1: Mutant HD2400
- Receiver 2: VU Ultimo 4K
- Receiver 3: Octagon SF8008
- Receiver 4: Gigablue Quad 4K
- Receiver 5: VDR
- Hat gedankt: 727 Mal
- Hat Dank erhalten: 1610 Mal
- Geschlecht:
Damit gibst du im Script quasi die Pfade zu den binarys bekannt also wo das überall liegen kann in dem Fall also der start-stop-daemon der an der Box nach /sbin gelinkt ist
und auf /bin/busybox.nosuid verweist.
Der Befehl;
zeigt das;
Hauptsache es klappt nun, aber da sieht man den Unterschied, ich brauch die Zeile hier nicht und es klappt auch via cronjob.
Die Zeile stört aber auch nicht weiter im Script, könnte man also auch standardmässig ins Script schreiben, bin aber zu faul und wenig Zeit derzeit.
Müsste ja dann ein neues Script hochladen auch.
Grüsse
Pike
und auf /bin/busybox.nosuid verweist.
Der Befehl;
Code: Alles auswählen
ls -l /sbin | grep start-stop*
zeigt das;
Code: Alles auswählen
lrwxrwxrwx 1 root root 19 Apr 20 12:27 start-stop-daemon -> /bin/busybox.nosuid
Hauptsache es klappt nun, aber da sieht man den Unterschied, ich brauch die Zeile hier nicht und es klappt auch via cronjob.
Die Zeile stört aber auch nicht weiter im Script, könnte man also auch standardmässig ins Script schreiben, bin aber zu faul und wenig Zeit derzeit.
Müsste ja dann ein neues Script hochladen auch.
Grüsse
Pike
Scripte
*********************
*********************
Keine Antwort auf PN Anfragen welche ins Forum gehören.
*********************

Keine Antwort auf PN Anfragen welche ins Forum gehören.