如何在Windows中使用命令行来使用OpenVPN?

10

我一直在寻找一种与Windows下的Openvpn进行交互的方式。 我发现了openvpn.exe,但没有命令可以使用配置文件连接到VPN服务器。 顺便说一下,我正在使用NordVPN,具体是加拿大的TCP服务器。 我看到有些人建议使用openvpn-gui.exe来运行程序,但这违背了初衷。我想要完全通过命令行来操作。 其次,我需要命令行工作,因为我想将Openvopn集成到一个脚本中,用来下载网络上的东西。 有人知道怎么做吗?

6个回答

22

对于任何在2021年想了解此事的人,请看下面的连接和断开。

连接

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command connect yourconfigfile.ovpn

断开连接

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect yourconfigfile.ovpn

对于Windows用户... 这两个命令可以放在.bat文件中,并使用任务计划程序自动化,效果非常好。


6

另一个CMD示例:

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

将“config.ovpn”替换为您的配置文件。您可能还有另一条路径到< strong>openvpn-gui.exe。

如果您没有正确安装openVPN,因此无法从cmd运行openvpn-gui ...,则它将起作用。


3

你实际上可以使用配置文件与 openvpn.exe 一起使用,但需要提供完整的路径,不像 openvpn-gui.exe 那样:

openvpn.exe --config "path/to/config.ovpn"

2
所以我找到了解决问题的方法。 在Windows命令行中控制openvpn的方法如下:
  1. 设置环境变量,这样您就可以从命令行访问openvpn-gui.exe。
  2. 键入此命令:openvpn-gui --connect [配置文件]。(您需要配置文件,所以请从VPN提供商下载)

如果您不想每次运行脚本时都输入密码,请编辑配置文件以从.txt文件中读取用户名和密码。以下链接可以帮助您完成此操作:https://help.vpntunnel.com/support/solutions/articles/5000613671-how-do-i-save-my-username-password-in-openvpn-for-automatic-login-


1

操作指南

步骤 1. 进入 x64 系统的正确位置:

cd "%ProgramFiles%\OpenVPN Connect" 注意:如果您在 64 位操作系统上安装了 32 位程序,请用 %ProgramFiles(x86)% 替换 %ProgramFiles%。

步骤 2. 安装系统服务:

ovpnconnector.exe install

步骤 3. 指定要使用的连接配置文件(可选):

ovpnconnector.exe set-config profile <FULL_PATH_AND_FILENAME_TO_PROFILE.OVPN> 注意:如果您从 Access Server 或 OpenVPN Cloud 下载 OpenVPN Connect 安装文件并附带自动登录的连接配置文件,则可以跳过第三步。它将默认使用捆绑的连接配置文件。该文件名为“ovpnconnector.ovpn”,可在程序位置找到。

步骤 4. 指定记录文件的路径(可选):

ovpnconnector.exe set-config log <FULL_PATH_AND_FILENAME_TO_LOGFILE.LOG> 注意:如果您跳过第4步,则服务将使用名称为“ovpnconnector.log”的默认日志文件在程序位置写入。

第5步。 启动服务:

ovpnconnector.exe start 服务现在将启动VPN连接并将输出记录到日志文件中。

注意:启动服务后,您将不会收到连接是否成功的反馈。您可以检查日志文件或使用ping命令来验证连接是否已经建立并运行。

重要提示:OpenVPN Connect客户端不应该在运行,否则服务启动将会中止。


0
你可以使用两种不同的解决方案来从命令行运行OpenVPN客户端。如果你不想将文件复制到"C:\Program Files\OpenVPN\config\"文件夹中,可以查看提供自定义配置文件夹的参数。 在没有Windows服务的情况下独立使用
以管理员或用户级别进程运行。OpenVPN状态将打印到当前的命令提示符控制台。这不需要一个服务进程来运行。
"c:\program files\openvpn\bin\openvpn.exe" --cd "c:/data/vpnconfig/" --config servicex.ovpn

使用gui+windows service
确保OpenVPN服务进程正在运行。OpenVPN状态将打印到托盘图形界面应用窗口。
sc start "OpenVPNServiceInteractive" | sc query "OpenVPNServiceInteractive" | sc stop "OpenVPNServiceInteractive"

"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --silent_connection 0 --show_script_window 1 --show_balloon 2 --config_dir "c:/data/vpnconfig/" --command connect "servicex.ovpn"

我的经验是两者都可以正常工作,但openvpn-gui.exe(+service)在处理自动重新连接方面更好。关于多个OpenVPN可执行文件。

OpenVPNServiceInteractive, autostart=yes
- allows openvpn-gui.exe non-privileged access(from user level app) to a privileged openvpn.
 C:\Program Files\OpenVPN\bin\openvpnserv.exe
OpenVPNService, autostart=no
- starts all config files at boot.
 C:\Program Files\OpenVPN\bin\openvpnserv2.exe
openvpn-gui.exe
- trayicon app, connects to a windows service.
openvpn.exe
- openvpn connection app
- started as a standalone app or gui+windows service.

Gui app arguments: https://community.openvpn.net/openvpn/wiki/OpenVPN-GUI-New

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接