Forum d'entraide de la communauté Freedom-IP VPN
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Est-il possible de lancer automatiquement un script lorsque la connexion à un serveur échoue? Actuellement j'utilise la commande down qui me permet d'exécuter un script lorsque la connexion au serveur se termine mais ça ne marche que si la connexion était bien établie. Mon objectif est d'avoir une connexion "autonome" qui se relance si la connexion au serveur se termine (mon script tue le process et en relance un avec une connexion à un autre serveur). Cela marche très bien sauf dans le cas ou la connexion échoue. Savez-vous s'il y a une possibilité qui permette de lancer un script en cas d'échec de la connexion? Si ce n'est pas possible, avez-vous une autre idée? (J'ai écrit un script qui ping google régulièrement et qui tue et relance le vpn si le ping ne passe pas, comme je suis derrière un proxy ça marche mais ce n'est pas très élégant...)
D'avance merci pour votre aide, si vous êtes intéressés par les scripts dont je parle faites moi signe, je les partagerai avec plaisir!
Hors ligne
client
dev tun
script-security 3
remote-random
# NL1
<connection>
remote nl1.freedom-ip.com
port 80
proto tcp
</connection>
# NL2
<connection>
remote nl2.freedom-ip.com
port 443
proto tcp
</connection>
# NL3
<connection>
remote nl3.freedom-ip.com
port 8080
proto tcp
</connection>
resolv-retry infinite
ca ca.crt
tls-auth ta.key 1
auth-user-pass pass.txt
cipher AES-256-CBC
comp-lzo
verb 1
route-method exe
route-delay 2
nobind
ns-cert-type server
up up.bat
down down.bat
route-up is_ok.bat
Hors ligne
Bonjour et merci beaucoup pour cette réponse! Je n'avais pas pensé à l'utilisation de la table de routage pour vérifier si la connexion est fonctionnelle, je ferai des essais pour voir si ça me permet de faire ce que je souhaite.
Encore merci pour l'aide et bonne fin de weekend!
Hors ligne
Bonjour à nouveau, j'ai finalement trouvé une autre manière de résoudre mon problème, je la poste ici pour, peut-être, aider d'autres utilisateurs!
Le premier script est lancé quand la connexion VPN est UP ou DOWN :
VPN_up_down.bat
@echo off
set vpn=%config%
set vpn=%vpn:.ovpn=%
cd "C:\Program Files (x86)\OpenVPN\config\logs"
echo %date% %time:~0,8% - %vpn% %script_type% >> reco_log.txt
REM we try to reconnect only if the disconnection is not coming from the user to prevent unstoppable program
if "%signal%" == "sigterm" exit
setlocal ENABLEDELAYEDEXPANSION
if "%script_type%" == "down" (
REM if vpn is down, we try with another server
set /p vpnserver=<vpnserverlist.txt
more +1<vpnserverlist.txt>temp
echo !vpnserver!>>temp
move temp vpnserverlist.txt
taskkill /F /IM openvpn-gui.exe
taskkill /F /IM openvpn.exe
del "C:\Program Files (x86)\OpenVPN\log\*.log"
start "" "C:\Program Files (x86)\OpenVPN\bin\openvpn-gui.exe" --connect !vpnserver! --silent_connection 1 --show_balloon 0
echo %date% %time:~0,8% - reco !vpnserver! >> reco_log.txt
REM and we check if it is connected
cd "C:\Program Files (x86)\OpenVPN\config\scripts\"
set vpn_UP=!vpnserver!
set vpn_DOWN=%vpn%
start /B "" "VPNCheckUP.bat"
)
Et ce second script regarde dans le fichier de log pour voir si la connexion est OK, si ce n'est pas le cas il lance une connexion sur un autre serveur :
VPNCheckUP.bat
@echo off
set vpn=%vpn_UP%
set vpn=%vpn:.ovpn =%
ping -n 60 127.0.0.1>NUL
cd "C:\Program Files (x86)\OpenVPN\log"
copy %vpn%.log tmp.log
findstr "Initialization Sequence Completed" tmp.log
if %errorlevel%==0 (
REM if the VPN connected we log it
cd "C:\Program Files (x86)\OpenVPN\config\logs"
echo %date% %time:~0,8% - %vpn% Running >> reco_log.txt
exit
) else (
REM else (VPN not connected) we run it with another server
cd "C:\Program Files (x86)\OpenVPN\config\logs"
echo %date% %time:~0,8% - %vpn% Not Running >> reco_log.txt
setlocal ENABLEDELAYEDEXPANSION
set /p vpnserver=<vpnserverlist.txt
more +1<vpnserverlist.txt>temp
echo !vpnserver!>>temp
move temp vpnserverlist.txt
taskkill /F /IM openvpn-gui.exe
taskkill /F /IM openvpn.exe
del "C:\Program Files (x86)\OpenVPN\log\*.log"
start "" "C:\Program Files (x86)\OpenVPN\bin\openvpn-gui.exe" --connect !vpnserver! --silent_connection 1 --show_balloon 0
echo %date% %time:~0,8% - reco !vpnserver! >> reco_log.txt
REM And we check if it is connected
cd "C:\Program Files (x86)\OpenVPN\config\scripts\"
set vpn_UP=!vpnserver!
set vpn_DOWN=%vpn%
start /B "" "VPNCheckUP.bat"
)
Le fichier vpnserverlist.txt contient une liste de fichier de connexion ovpn :
server1.ovpn
server2.ovpn
...
En espérant que ça aide d'autres personnes!
NB : je ne suis pas un pro du script, il y a surement des commandes inutiles ou non optimales, n'hésitez pas à proposer des modifs et/ou à adapter ce code à vos envies!
Hors ligne
Pages : 1