目录

Windows系统自动连接openvpn

注意
本文最后更新于 2021-10-29,文中内容可能已过时。

在公司想连接线上服务器步骤:打开openvpn软件,输入静态密码,掏出手机,解锁,打开totp软件,输入totp软件的开启密码,记下6位数动态密码,输入到电脑里,完成连接,锁定手机。非常麻烦 而且因为时间同步问题,可能还有10秒就刷新动态密码了,还需要等待刷新后再输入新的密码,更麻烦的是openvpn会修改系统的路由,导致有些公司内部网站上不了,就会出现连接vpn—做A事情,断开vpn做B事情。

这里提供一个脚本,一键连接openvpn,适用于windows

1. 安装openvpn软件

软件安装到默认位置,需要安装tap driver 打开一次软件(为了生成配置文件目录),以后就可以不用启动

脚本内容

start.py

import pyotp
import subprocess

totp = pyotp.TOTP('<TOTP seed>')  # 这里要填写的totp的seed,一般解析一下二维码就能获得
password = "<你的固定密码>" + totp.now()         # 固定密码


with open(r"C:\Users\iuxt\OpenVPN\config\password.txt", "w") as f:   # 这里是password.txt文件位置
    f.write("<这里写你的用户名>\n%s" % password)
    
subprocess.run([r"C:\Program Files\OpenVPN\bin\openvpn.exe", r"C:\Users\iuxt\OpenVPN\config\win.ovpn"])  # vpn可执行位置和vpn配置文件位置

start.bat

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
rem 上面这段是获取管理员权限👆

python start.py

2. 脚本拷贝到配置文件目录

start.py start.bat win.ovpn 拷贝到配置文件目录C:\Users\iuxt\OpenVPN\config

start.py需要修改一下注释位置

win.ovpn需要修改auth-user-pass C:\\Users\\iuxt\\OpenVPN\\config\\password.txt需要和start.py里面路径保持一致

3. 启动和关闭

双击start.bat即可自动连接

ctrl + c 即可关闭

如果有隐藏cmd窗口的需求,可以看看这篇隐藏cmd窗口