Je souhaite utiliser le Raspberry Pi comme passerelle VPN. Le RPi se connecte à mon réseau domestique et Internet via wlan0, and
n'importe quel appareil branché eth0
obtient une connexion VPN. J'utilise pptp-linux
pour établir la connexion VPN et tout a bien fonctionné pendant ma phase de prototypage. Cependant, pour terminer le projet, j'ai mis la connexion VPN dans le /etc/rc.local
script afin qu'elle démarre au démarrage. Maintenant, il échoue 50% du temps. Je soupçonne qu'il tente la connexion VPN avant que je ne soit correctement connecté à Internet via wlan0
. Si c'est le problème, j'ai besoin d'un test pour une connexion Internet valide au début rc.local
avant de continuer avec le reste du script. Des idées sur la façon dont je pourrais faire cela?
8
sleep 20
avant votre script. Ou mieux, insérez votre script/etc/network/if-up.d
. De cette façon, le script est exécuté une fois que l'interface réseau monte.Réponses:
De cette réponse StackOverflow ;
la source
tout en haut de ma tête:
cingler votre routeur
ping google.com
ifconfig
sortie grep pour passerelle valide et / ou adresse IP validela source
grep
des pings pour une réponse valide. Dans une boucle de temps jusqu'à ce que toutes les conditions soient remplies. Pingler ne fera pas grand chose. Jivings a cité une bonne ligne de code.grep
, ping utilise des codes de sortie pour vous informer des résultats, quelque chose commeping -qc 1 192.168.1.1 && echo ok || echo error
Basé sur un exemple de code Jivings et une partie de ma propre logique.
La bonne façon serait de créer une fonction qui renvoie un booléen sur le comparateur while. mais voici à quoi devrait ressembler la logique du shell.
la source
Debian utilise désormais upstart. C'est probablement une façon beaucoup plus simple de le faire que les scripts init.d.
Vous devrez peut-être essayer quelques services différents pour attendre, mais
networking
(si c'est le cas) ounetwork-manager
peut-être les bons à essayer en premier.C'est pour Ubuntu, mais vous ne devriez pas trouver trop de différences http://upstart.ubuntu.com/cookbook/
la source