在Ubuntu上设置vpn自动重连与发送ip到邮箱

学校的有线网需要通过l2tp协议连接,而且总是不稳定,所以写个自动重连脚本来保证断线重连。

而在DHCP动态IP分配下可能每次重连的ip地址不一样,所以每次重连后都发送ip到邮箱。

Ubuntu22.04中的L2TP连接

Ubuntu中没有默认的l2tp协议,要安装:

sudo apt install network-manager-l2tp network-manager-l2tp-gnome

然后就能在设置>网络>VPN>添加中看到。

选择添加L2TP协议,输入名称、网关、用户名密码。

⚠️注意:密码栏右侧可以选择一下为所有用户存储密码,这样脚本比较简单。

尝试连接,成功进入下一步。

重连脚本

通过ping 百度来测试网络是否正常(失败代表VPN断开连接了),用nmcli工具控制vpn连接,然后如果重连则用mail指令把ip以邮件发送到指定邮箱。

创建脚本reconnect_vpn.sh:

ping -c 1 www.baidu.com
if [ $? -eq 0 ]; then
    echo "success"
else
    echo "fail, reconnect vpn"
    echo [sudo 密码] | sudo -S nmcli con up id [vpn 名字]
    # 发送邮件指令
fi

如果只发送邮件不需要接收的话,使用mail指令即可,发送出去的邮件是匿名的。

安装mailutils:

sudo apt install mailutils

mail指令发送邮件示例:

echo "This is the mail body" | mail -s "Subject" 2daygeek@gmail.com

为了偷懒,直接将ip addr获取的内容一起发送哈哈哈哈

reconnect_vpn.sh最终内容:

ping -c 1 www.baidu.com
if [ $? -eq 0 ]; then
    echo "success"
else
    echo "fail, reconnect vpn"
    echo [sudo 密码] | sudo -S nmcli con up id [vpn 名字]
    # 发送邮件指令
    ip addr | mail -s "vpn reconnected" [邮箱地址]
fi

记得修改脚本权限为777

自动执行脚本

使用Ubuntu自带的crontab组件,可以最低以1分钟的频率运行命令。

确认crontab正在运行:

sudo systemctl status cron

看到正在运行就好,如果没在运行则用start或者restart开起来。

编辑cron自动作业:

crontab -e

在最下方添加:

* * * * * [重连脚本]

保存并退出即可。

如果要查看脚本的输出,可以将脚本的输出重定向到某个文件,用于保存输出,方便随时查看:

* * * * * [重连脚本]>[reconnect_vpn.out的位置] 2>&1

接下来就可以试试有没有问题啦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值