shell脚本检查是否存在tun0虚拟网卡,若不不存在服务器更改port,并重启服务器,客户端修改port,并重新启动客户端
openvp 客户端 /home 目录下各脚本文件名
[root@jira home] # ls openvpn_server_restart.sh openvpn_tunnel_monitor.sh |
openvpn_tunnel_monitor.sh 为死循环脚本来检测 tun0 网卡是否存在,若不存在,对服务器端 openvpn server 进行操作,更换port并重启openvpn 服务,同时更改openvpn 客户端port端口对应服务器port端口,同时重新启动客户端
cat openvpn_tunnel_monitor.sh while [ 1 ] do tun0_route=` ifconfig | grep -ci "tun0" ` if [ $tun0_route - eq 0 ]; then echo "openvpn tunnel is down ,need do the restart operation." >> /tmp/openvpn_tunnel .log ssh root@47*****27 'bash -x -s' < /home/openvpn_server_restart .sh scp root@47******27: /etc/openvpn/server .conf /home server_port=` cat /home/server .conf| grep -i "port" | grep - v "^#" | awk '{print $2}' ` sed -i "s@remote.*@remote 47*******27 $server_port@" /etc/openvpn/fanqiang001 .conf PID=` ps -fe| grep fangqiang001| grep - v grep | awk '{print $2}' ` if [ "$PID" ]; then ps -fe| grep fangqiang001| grep - v grep | awk '{print $2}' | xargs kill -9 echo "old openvpn client process is killed" >> /tmp/openvpn_tunnel .log fi source /etc/profile cd /etc/openvpn nohup /usr/sbin/openvpn -- cd /etc/openvpn --config fanqiang001.conf --log-append /var/log/openvpn .log >> nohup .out 2>&1 & sleep 5 new_pid=` ps -fe| grep openvpn| grep - v grep | awk '{print $2}' ` echo $new_pid if [ "$new_pid" ]; then echo " openvpn client process started success !" >> /tmp/openvpn_tunnel .log fi fi sleep 600 done |
openvpn_server_restart.sh 脚本主要重新启动openvpn server端
#!/bin/bash server_port=` cat /etc/openvpn/server .conf| grep -i "port" | grep - v "^#" | awk '{print $2}' ` server_port=$((server_port+1)) sed -i "s@port.*@port $server_port@" /etc/openvpn/server .conf service openvpn restart |
配置后台运行脚本
sh openvpn_tunnel_monitor.sh & > /dev/null 2>&1 |
分类:
shell
, openvpn网络技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端