所以我制作了一个脚本,通过在我的覆盆子pi中输入我的用户名和密码,自动登录我的学校vpn。现在我试图看看是否有一种方法可以在后台运行脚本,检测到我连接到我的VPN和本地wifi。如果它检测到没有连接,那么它将自动运行我的登录vpn的脚本。 下面是我用来自动登录我的vpn我的login.sh文件的脚本:
#!/usr/bin/expect
spawn sudo openconnect vpn.ucr.edu/engineering
expect -r "\[sudo] .*\: " {
send "pw_for_my_linux\n"
}
expect "Username:" {
send "my_vpn_username\n"
}
expect "Password:" {
send "vpn_password\n"
}
interact
答案 0 :(得分:0)
也许您可以使用ethtool并通过查看网络接口来检查连接状态。
ifconfig
(查看网络接口名称,选择已知与工作vpn相关联的网络接口)
sudo ethtool eth0
其中'eth0'被您的vpn软件正在使用的网络接口的名称替换
如果正在进行通信,OUTPUT应该看起来像这样(将示例网络接口名称eth0替换为您在ifconfig中可以看到的相关网络接口名称):
当前消息级别:0x00000007(7)
drv probe link检测到链接:是
如果按下输出?:
eth0的设置:
检测到链接:否
在您的bash代码中,您可以轮询“检测到链接”状态,解析答案以确定您是否尝试重新连接。警告,无法在vpn连接上测试这个 - 我必须使用除openconnect之外的特殊客户端,对我来说,如果我运行,我知道VPN已关闭
ifconfig | grep "tun0"
如果返回某些内容,VPN就会启动。如果我的网络接口名为tun0丢失,则VPN无法启动。
希望这能让你朝着正确的方向前进!