【问题标题】:Detecting that I am connected to a vpn/wifi and if not I automatically reconnect检测到我已连接到 vpn/wifi,如果没有,我会自动重新连接
【发布时间】:2017-08-09 20:32:04
【问题描述】:

所以我制作了一个脚本,通过在我的树莓派中输入我的用户名和密码来自动登录我的学校 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

【问题讨论】:

标签: linux bash ubuntu terminal


【解决方案1】:

也许您可以使用 ethtool 并通过查看网络接口来检查连接状态。

ifconfig 

(查看网络接口名称,选择已知与工作 vpn 关联的网络接口)

sudo ethtool eth0

其中 'eth0' 替换为您的 vpn 软件正在使用的网络接口的名称

如果正在通信,输出应该看起来像这样(将示例网络接口名称 eth0 替换为您可以在 ifconfig 中看到的相关名称):

当前消息级别:0x00000007 (7)

drv probe link 检测到链接:是

如果关闭则输出?:

eth0 的设置:

检测到链接:否

在您的 bash 代码中,您可以轮询“检测到链接”状态,解析出答案以确定您是否尝试重新连接。警告,无法在 vpn 连接上对此进行测试——我必须使用除 openconnect 之外的特殊客户端,而且对我而言,如果我运行,我知道 VPN 会关闭

ifconfig | grep "tun0"

如果返回某些内容,则 VPN 已启动。如果缺少名为 tun0 的网络接口,则 VPN 未启动。

希望这能让你朝着正确的方向前进!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2015-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2021-01-14
    相关资源
    最近更新 更多