1、账号密码
| 用户名 | welin |
| 密码 | M@!we1!n0S |
M@!we1!n0S
2、OpenVPN配置
2.1、拆分配置文件 client.ovpn
2.2、网页配置
2.3、终端修改
2.3.1、修改openvpn配置文件
vi /etc/config/openvpn
删除 option comp_lzo ‘no’ 并添加 option reneg_sec ‘0’
option reneg_sec '0'
2.3.2、修改/etc/config/network
vi /etc/config/network
找到 config interface ‘jk’
option proto ‘tun’
这两行,并在后面加上
option ifname 'tun-jk'
2.3.3、修改/etc/init.d/network文件
vi /etc/init.d/network
将 #[ -x “/etc/init.d/ipsec” ] && /etc/init.d/ipsec restart
修改为(注意删去前面的#号)
[ -x "/etc/init.d/openvpn" ] && /etc/init.d/openvpn restart
2.4 、自动检测并添加路由脚本
创建addroute.sh文件
vi addroute.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| #!/bin/bash
TARGET_IP="120.55.44.29"
DEVICE="wwan0"
if ip route show | grep -q "^$TARGET_IP dev $DEVICE\>"; then
echo "路由已存在:$TARGET_IP dev $DEVICE,无需操作。"
else
echo "路由不存在,正在添加..."
ip route add $TARGET_IP dev $DEVICE
echo "路由添加完成。"
fi
TARGET_IP2="202.120.2.101"
DEVICE="wwan0"
if ip route show | grep -q "^$TARGET_IP2 dev $DEVICE\>"; then
echo "路由已存在:$TARGET_IP2 dev $DEVICE,无需操作。"
else
echo "路由不存在,正在添加..."
ip route add $TARGET_IP2 dev $DEVICE
echo "路由添加完成。"
fi
TARGET_IP3="223.5.5.5"
DEVICE="wwan0"
if ip route show | grep -q "^$TARGET_IP3 dev $DEVICE\>"; then
echo "路由已存在:$TARGET_IP3 dev $DEVICE,无需操作。"
else
echo "路由不存在,正在添加..."
ip route add $TARGET_IP3 dev $DEVICE
echo "路由添加完成。"
fi
|
2.5 、自动重启恢复脚本
创建network_monitor.sh文件
vi network_monitor.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
LOG_FILE="/root/pinglog.log" PING_COUNT=3 PING_TIMEOUT=2 REBOOT_FLAG="/tmp/reboot_scheduled"
MIN_UPTIME_FOR_REBOOT=300
log_msg() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_FILE" }
get_uptime() { cat /proc/uptime | awk '{print int($1)}' }
check_log_size() { if [ ! -f "$LOG_FILE" ]; then touch "$LOG_FILE" return fi size=$(wc -c < "$LOG_FILE" 2>/dev/null) if [ -n "$size" ] && [ "$size" -gt 2097152 ]; then tail -n 1000 "$LOG_FILE" > "${LOG_FILE}.tmp" mv "${LOG_FILE}.tmp" "$LOG_FILE" log_msg "日志文件超过 2MB,已清理(保留最后 1000 行)。" fi }
handle_reboot() { uptime_sec=$(get_uptime) if [ "$uptime_sec" -lt "$MIN_UPTIME_FOR_REBOOT" ]; then log_msg "223.5.5.5 不可达,但系统已运行时间 ${uptime_sec} 秒 < ${MIN_UPTIME_FOR_REBOOT} 秒,认为是网络尚未恢复,跳过重启。" return 1 fi
if [ -f "$REBOOT_FLAG" ]; then now=$(date +%s) file_time=$(stat -c %Y "$REBOOT_FLAG" 2>/dev/null) if [ -n "$file_time" ] && [ $((now - file_time)) -lt 300 ]; then log_msg "已有重启计划(5 分钟内),退出脚本。" exit 0 else rm -f "$REBOOT_FLAG" fi fi
touch "$REBOOT_FLAG" log_msg "223.5.5.5 不可达,将在 5 分钟后重启系统。" (sleep 300; rm -f "$REBOOT_FLAG"; reboot) & exit 0 }
main() { if ping -c $PING_COUNT -W $PING_TIMEOUT 223.5.5.5 >/dev/null 2>&1; then log_msg "223.5.5.5 可达。"
if ping -c $PING_COUNT -W $PING_TIMEOUT 10.201.11.108 >/dev/null 2>&1; then log_msg "10.201.11.108 可达。" else log_msg "10.201.11.108 不通,将重启 openvpn。" /etc/init.d/openvpn restart >> "$LOG_FILE" 2>&1 log_msg "openvpn 重启执行完成。" fi
check_log_size else log_msg "223.5.5.5 不可达,准备处理重启(检查 uptime)。" handle_reboot fi }
main
|