Argumentos para conectar-se usando o cliente Windows Open Vpn

12

É possível iniciar um cliente Windows OpenVPN para conectá-lo usando uma configuração predefinida (.ovpn) fornecendo argumentos do programa usando o prompt de comando. Ou especificando os argumentos no atalho ao abrir a partir do atalho do Windows, etc.

Flowerking
fonte

Respostas:

18

Resolvido da seguinte forma:

no prompt de comando do Windows

insira a descrição da imagem aqui

Isso iniciará o cliente opn vpn gui que se conecta diretamente à conexão especificada na configuração.

Flowerking
fonte
3
Lembre-se de que se o openvpn-gui.exe já tiver sido iniciado acima, a resposta não funcionará.
Jan
9

Lembre-se de que, se as openvpn-gui.exerespostas já estiverem iniciadas acima, não funcionarão. Preste atenção à seção: run de um pequeno arquivo em lotes que criei para iniciar automaticamente a conexão openVPN quando não estiver em casa:

rem This script is fired from Task Scheduler (using Custom Event filter) when I am NOT at home (not connected to home network)
rem  so check if my home NAS is already pingable, because maybe old/previous OpenVPN connection is still open
rem    if not then start OpenVPN connection
rem    if yes than do nothing
ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt
IF ERRORLEVEL 1 goto run
rem do nothing because NAS is pingable
goto finished
:run
rem be sure to kill previous (closed) openvpn process so reconnecting actually works!
taskkill.exe /F /IM openvpn.exe
taskkill.exe /F /IM openvpn-gui.exe
timeout 1
start /b "" "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect nas_at_home.ovpn
:finished
Jan
fonte
1
Obrigado por uma resposta excelente, mas eu fui a etapa extra de exportar a minha tarefa de Windows em uma essência: gist.github.com/carlin-q-scott/77cbb064c3c2e332af011714fb2aa585
carlin.scott
4

Além da resposta de Flowerking, você pode especificar a pasta na qual seu arquivo ovpn reside, talvez para armazenar dados de chave privada no espaço do usuário. Para isso, use config_dir:

openvpn-gui.exe --connect "client.ovpn" --config_dir "C:\Users\Foo\Documents\protected_crypto_data"
Justin Brown
fonte
3

Aqui está um exemplo simples, se você deseja se conectar a mais VPNs do que uma:

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect vpn1.ovpn --connect vpn2.ovpn

Não funcionará se o openvpn-gui.exeestiver em execução.

Etmos
fonte
1

Não tenho certeza se isso foi adicionado recentemente, mas há uma opção "--command" que pode ser usada para enviar comandos para uma instância da GUI em execução.
Então agora você pode fazer
openvpn-gui.exe --command connect config.ovpn

Veja as opções do openvpn-gui.exe, acessando a linha de comandos e executando
openvpn-gui.exe --help

Jeff Rausch
fonte
1

Eu tive os mesmos problemas e também precisava do script para não reabrir a interface do usuário, se já estava conectada, e aguardar a conclusão da conexão.

Não consegui encontrar uma boa solução, então escrevi a minha. É aqui caso seja útil para outros:

https://www.pretentiousname.com/miscsoft/index.html#ConnectOpenVPN

Windows Vista e superior; livre; inclui código fonte C ++.

(Também há uma ferramenta semelhante e antiga para o cliente VPN interno do Windows.)

Exemplo de uso, com a opção / verbose que gera informações detalhadas sobre o que está fazendo:

C: \> ConnectOpenVPN.exe / connect / adaptador "OpenVPN" / config "MyVPN.ovpn"

ConnectOpenVPN: Verificando o estado do adaptador de rede "OpenVPN" ...
ConnectOpenVPN: O adaptador de rede "OpenVPN" não está conectado.
ConnectOpenVPN: Em execução: "C: \ Arquivos de Programas \ OpenVPN \ bin \ openvpn-gui.exe" - comando connect "MyVPN.ovpn"
ConnectOpenVPN: aguardando o OpenVPN GUI para aparecer ...
ConnectOpenVPN: GUI OpenVPN encontrada.
ConnectOpenVPN: aguardando o fechamento da OpenVPN GUI ...
ConnectOpenVPN: OpenVPN GUI fechado.
ConnectOpenVPN: aguardando / confirmando a conexão VPN existe ...
ConnectOpenVPN: conectado.
Ação ConnectOpenVPN: CONNECT finalizada.

Espero que seja útil para outras pessoas.

Leo Davidson
fonte
0

Você pode melhorar a resposta de @Jan alterando:

ping -n 1 192.168.10.100 > testping.txt
findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" testping.txt

para:

ping 192.168.10.100 -n 1 | findstr /r /c:"Reply from \d*.\d*.\d*.\d*.* bytes=\d*.*time[<=]\d*.* TTL=\d*" && goto :finished

Dessa forma, você não precisa criar um arquivo temporário.

M1n1_Z
fonte