Isso não pode ser feito no Windows sem usar programas adicionais, arquivos em lote ou a linha de comando. Uma alternativa é obter uma máquina virtual (ou física) na qual você possa executar a VPN.
Parece estranho que algo tão facilmente explicável como isso seja tão difícil de alcançar. Quão difícil poderia ser apenas rotear o tráfego de um programa para a interface VPN e todos os outros programas para a interface NIC padrão? Por que precisaríamos configurar uma máquina virtual inteira para isso? E com o Linux é possível, mas sua solução também não é muito elegante.
É muito procurado também: me deparei com dezenas de tópicos sobre o mesmo assunto. Então eu só espero que alguém perceba o absurdo disso e faça algo sobre isso. (No Windows 8!)
Esta solução é de um arquivo em lote não atribuído . Foi ligeiramente adaptado.
Instruções para o Windows 7
O script se conectará e roteará o tráfego por meio de sua VPN até a reinicialização - você poderá substituir route add
por route -p add
para que a alteração persista, mas se você não tiver um IP persistente com sua VPN, ele será eventualmente pare de funcionar quando o seu IP VPN mudar.
- Abra o Centro de Rede e Compartilhamento
- Abra as propriedades da sua conexão VPN
- Clique na guia
Networking
- Para IPv4 e 6:
- Clique em
Properties
- Clique em
Advanced
- Desmarque
Use default gateway[...]
- Feche tudo o que foi aberto nas etapas anteriores
- Edite e salve o script em lote encontrado abaixo
- Execute como administrador
Você precisa substituir o seguinte no script:
-
<VPN>
com o nome da conexão VPN que você criou
-
<USER>
com o nome de usuário da VPN
-
<PASS>
com a senha da VPN
-
<TARGET>
com o endereço IP que você deseja rotear através da VPN (se você quiser rotear mais endereços, simplesmente duplique as três linhas onde o alvo é usado)
Observação: Se você não quiser salvar a senha no arquivo, substitua <PASS>
por %password%
e adicione o seguinte após a primeira linha do 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