【Mac党的福利】一秒钟获取vpn密码(续二)

参考了文章【Mac党的福利】一秒钟获取VPN密码(续)以及@王佳文提及的https://github.com/phpfunk/alfred-tunnelblick,最近在动手实践的过程中,发现在配置文件中auth-user-pass后写上auth.txt的绝对路径,在tunnelblick 3.7.0的版本上是不需要复制auth.txt的。

相关软件版本

  • tunnelblick 3.7.0
  • python 2.7 + requests(需手动安装 pip install requests
  • alfred 3

使用说明

  • 导入vpn.alfredworkflow(点击下载)
  • 双击中间图片,修改用户名(邮箱前缀)密码(邮箱密码)以及auth.txt绝对路径(当前用户目录下任意文件夹下指定auth.txt, 例:/Users/{user}/work/vpn/auth.txt,其中{user}为当前用户名)

              

  • 使用编辑器打开~/Library/Application\ Support/Tunnelblick/Configurations/haitao_classb.tblk/Contents/Resources/config.ovpn,在auth-user-pass后加上auth.txt的绝对路径(注意,auth-user-pass与auth.txt绝对路径之间有且只能有一个空格)
  • 重复第三个步骤,修改~/Library/Application\ Support/Tunnelblick/Configurations/文件夹下的其他vpn配置文件
  • 唤起Alfred,输入vpn,上下选择相应的vpn并回车连接即可

异常处理

  • 选择vpn回车后无任何反应,请先检查mac是否打开了勿扰模式,关闭勿扰模式后,再次连接会提示部分异常情况(例如用户名密码错误,auth.txt路径问题)
  • 检查是否安装了requests这个python库,没有的话,pip install requests安装

workflow说明

  1. 不支持需要输入将军令的vpn
  2. 首先是输入vpn关键字,选择需要连接的vpn
  3. python脚本发出网络请求,获取vpn用户名和密码,写入auth.txt
  4. osascript脚本启动tunnelblick,连接选择的vpn(从auth.txt中读取用户名密码)

其他

下载好vpn配置文件.ovpn时,直接修改该文件,在auth-user-pass后添加auth.txt的绝对路径,在tunnelblick 3.7.0版本中,双击配置文件后,安装路径~/Library/Application\ Support/Tunnelblick/Configurations/haitao_classb.tblk/Contents/Resources/config.ovpn中auth-user-pass的路径依然是auth.txt的绝对路径。但是在3.7.2a(可能更早)以后版本,双击配置文件时,tunnelblick会将绝对路径的auth.txt复制到安装路径~/Library/Application\ Support/Tunnelblick/Configurations/haitao_classb.tblk/Contents/Resources/auth.txt.unkown,而安装路径下的config.ovpn中auth-user-pass后引用的是复制的auth.txt的相对路径,因此,在新版本下,安装vpn配置后第一次连接是可以成功的,但是过一段时间(到原auth.txt失效)后,再次连接时,便会出现身份验证出错的情况,原因就是安装路径下的config.ovpn引用的是初始时复制的auth.txt,这个auth.txt是一直没有更新的。解决办法简单粗暴,在下载完vpn配置文件后不修改文件,双击安装后,再到安装路径`~/Library/Application\ Support/Tunnelblick/Configurations/修改新安装的vpn的config.ovpn,将auth-user-pass后修改为auth.txt的绝对路径即可。


网易云新用户大礼包:https://www.163yun.com/gift

本文来自网易实践者社区,经作者陈跃芳授权发布。