Cela ne peut être fait dans Windows sans utiliser des programmes supplémentaires, des fichiers batch ou la ligne de commande. Une alternative est d'obtenir une machine virtuelle (ou physique) sur laquelle vous pouvez exécuter le VPN.
Il semble étrange que quelque chose d'aussi facilement explicable soit si difficile à réaliser. Comment pourrait-il être difficile de simplement acheminer le trafic d'un programme vers l'interface VPN et de tous les autres programmes vers l'interface NIC par défaut ? Pourquoi aurions-nous besoin de configurer une machine virtuelle entière pour cela ? Avec Linux, c'est possible, mais sa solution n'est pas très élégante non plus.
Il est aussi très recherché : Je suis tombé sur des dizaines de fils de discussion sur le même sujet. J'espère seulement que quelqu'un se rendra compte du caractère ridicule de cette situation et fera quelque chose pour y remédier. (Sous Windows 8 !)
Cette solution provient d'un fichier batch non attribué . Il a été légèrement adapté.
Instructions pour Windows 7
Le script se connectera et acheminera le trafic à travers votre VPN jusqu'à un redémarrage - vous pouvez remplacer route add
con route -p add
pour que le changement soit persistant, mais si vous n'avez pas d'IP persistante avec votre VPN, il finira par ne plus fonctionner lorsque votre IP VPN changera.
- Ouvrez le Centre de réseau et de partage
- Ouvrez les propriétés de votre connexion VPN
- Cliquez sur le bouton
Networking
onglet
- Pour les deux IPv4 et 6 :
- Cliquez sur
Properties
- Cliquez sur
Advanced
- Décochez
Use default gateway[...]
- Fermez tout ce qui a été ouvert lors des étapes précédentes
- Editez et sauvegardez le lot script trouvé ci-dessous
- Exécutez-le en tant qu'administrateur
Vous devez remplacer ce qui suit dans le script :
-
<VPN>
avec le nom de la connexion VPN que vous avez créée.
-
<USER>
avec le nom d'utilisateur VPN
-
<PASS>
avec le mot de passe VPN
-
<TARGET>
avec l'adresse IP que vous voulez acheminer par le VPN (si vous voulez acheminer plus d'adresses, il suffit de dupliquer les trois lignes où la cible est utilisée)
Note : Si vous ne voulez pas sauvegarder le mot de passe dans le fichier, remplacez <PASS>
con %password%
et ajoutez ce qui suit après la première ligne du script : set password= Input password:
.
script
@echo off
@echo make sure to be disconnected!
rasdial <VPN> /d
@echo start to connect to vpn
rasdial <VPN> <USER> <PASS>
netsh interface ip show config name="<VPN>" | findstr "IP" > ip.dat
set /p ip= < ip.dat
del ip.dat
set ip=%ip:~-12%
@echo VPN IP is %ip%
set target=<TARGET>
@echo Add route for %target%
route add %target% mask 255.255.255.255 %ip%
timeout /T 3 > nul