Tunnelblick Mac 脚本

Tunnelblick Mac 脚本

我想在 OpenVPN 连接时在我的 Mac 上运行一个脚本。我检查了 Mac 上的配置,没有看到任何可以运行脚本的地方。我正在运行最新的 Tunnelblick (3.7.0)。

我可以在哪里设置 Mac 版 Tunnelblick 上的脚本?

答案1

这个答案有点晚了,但 Tunnelblick 中实际上有一些钩子,您只需将正确命名的脚本放在某些目录中即可使用。

此文档阅读(或付诸实践)并不是那么有趣,因此这里有一个总结*:

  1. 根据您的需要创建、、pre-connect.shpost-tun-tap-load.sh/或。connected.shreconnecting.shpost-disconnect.sh
  2. 以 root 身份将这些文件放入/Library/Application Support/Tunnelblick/Shared/<gateway>.tblk/Contents/Resources,其中<gateway>.tblk是一个以您之前导入 Tunnelblick 的 OpenVPN 配置命名的目录。
  3. 更改所有权和 ACL:

    bash$ sudo chown root:wheel reconnecting.sh bash$ sudo chmod 700 reconnecting.sh

*请注意,我所引用的目录可能与您的设置不同 - 我正在运行 macOS 10.12.6,并且这些步骤假设您已将 OpenVPN 配置导入 Tunnelblick。

答案2

根据其他(优秀)答案对于这个问题,我根据一个简单的例子写了这篇Tunnelblick 3.8.1 build 5400文章macOS Mojave 10.14.6

  1. 打开终端。

  2. sudo -s
    
  3. cd /Users/<user>/Library/Application Support/Tunnelblick/Configurations/<profile>.tblk/Contents/Resources
    

    <user>您的 Mac 用户名在哪里?<profile>您导入 Tunnelblick 的 VPN 配置文件配置在哪里?

    完整路径类似于

    /Users/andrea/Library/Application Support/Tunnelblick/Configurations/vpncorporate.tblk/Contents/Resources
    


  1. 已连接文件

    nano connected.sh
    

    例如,如果您想在连接时添加路由规则,请粘贴以下行

    #!/bin/sh
    
    route add -host 172.16.10.7/32 -gateway 192.168.0.244
    

    参考:路线手册页


  1. 断开连接后

    nano post-disconnect.sh
    

    例如,如果您想删除之前添加的规则,请粘贴以下几行

    #!/bin/sh
    
    route delete -host 172.16.10.7/32 -gateway 192.168.0.244
    

    参考:路线手册页


  1. 设置正确的权限

    chmod 700 connected.sh
    chmod 700 post-disconnect.sh
    

    就我而言

    -rwx------  1 root            admin    63 23 Ott 11:47 connected.sh
    -rwx------  1 root            admin    66 23 Ott 13:43 post-disconnect.sh
    


有关connected.sh和post-disconnect.sh的一个更有用和更复杂的例子可能是以下内容

这个想法是获取默认网关并通过该网关为特定 IP 进行路由。

  1. 已连接文件

    #!/bin/sh
    
    DEFAULTGATEWAY="$(netstat -nar | sed -n -e '/^default/p' | head -1 | awk '{print $2}')"
    
    route add -host 172.16.10.7/32 -gateway $DEFAULTGATEWAY
    
  2. 断开连接后

    #!/bin/sh
    
    route delete -host 172.16.10.7/32 
    

相关内容