如何从命令行判断 OS X 是否已连接到 VPN 网络?

cwd*_*cwd 13 mac vpn script shell macos

如何从命令行判断 OS X 是否已连接到 VPN 网络?

通过ifconfig在连接时不带任何参数运行,我看到有一个utun0接口似乎是 VPN 连接。当我断开连接时它就会消失。

我相信我可以使用这样的东西来检查字符串utun0并计算出现次数:

ifconfig | grep -c utun0
Run Code Online (Sandbox Code Playgroud)

但是有没有更简单或更有效的方法来检查这一点?如果utun0是设备,甚至是伪设备,我不应该能够检查它是否存在,例如:

if [ -a '/dev/utun0' ]
Run Code Online (Sandbox Code Playgroud)

不幸的是,在连接和断开连接时,我没有看到该目录中有任何更改,我只是看穿/dev/tun0/dev/tun15cat即使sudo...

有没有更简单的方法来判断我是否有 VPN 连接?

enc*_*ded 11

从 Mountain Lion 1 开始,您还可以使用 scutil 命令。

例如:

$ scutil --nc list | grep Connected
Run Code Online (Sandbox Code Playgroud)

有关更详细的帮助,您可以查看手册页,或运行:

$ scutil --nc help
Run Code Online (Sandbox Code Playgroud)

脚注:

  1. 我不知道在 Mountain Lion 之前的 OSX 版本中存在这个命令,但我可能是错的。

  • 不适用于 macOS Monterey。 (2认同)