scaleway的ipv6机失联的解决办法-附上详细教程

scaleway的ipv6鸡失联的解决办法-附上详细教程

scaleway的ipv6机失联 是warp的原因,设置一个计划任务脚本就可以解决,在gemini帮助一下,写了这个脚本,已经测试成功运行了如图所示

图片[1]-scaleway的ipv6机失联的解决办法-附上详细教程-VPS SO

把搭建的过程发出来,给有需要的人使用。

Debian 12 下 Cloudflare WARP 连接自动守护教程

一、 概述

本教程旨在为一台纯IPv6环境的Debian 12服务器,在使用 fscarmen/warp 脚本或其他方式配置了Cloudflare WARP以获取IPv4访问能力后,部署一套健壮的自动化监控与重启机制。该机制能有效解决因WARP连接不稳定(假死、路由黑洞)导致的整机IPv4网络中断问题。

核心原理: 通过cron定时任务,周期性地运行一个检查脚本。该脚本通过ping一个稳定的外部IPv4地址来判断网络连通性。一旦发现网络中断,脚本将自动执行wg-quick downwg-quick up命令,以干净、彻底的方式重建WARP隧道和路由,从而恢复网络。

二、 前提条件

  1. 一台Debian 12服务器。
  2. 已通过fscarmen/warp或其他方式安装并配置好Cloudflare WARP,且当前可以访问IPv4网络。
  3. 拥有服务器的root权限或sudo权限。
  4. 确认你的WireGuard接口名。通常,fscarmen/warp脚本创建的接口名为warp
    • 验证方法 #1: ls -l /etc/wireguard/,查找名为warp.conf的文件。
    • 验证方法 #2: sudo wg show,查看interface:字段显示的名称。

三、 部署步骤

步骤 1:创建核心检查脚本 (check_warp.sh)

这是整个自动化系统的“大脑”。我们将使用cat <<'EOF'这种最可靠的方式创建文件,以杜绝任何格式错误。

  1. 在你的终端中,粘贴并执行以下整行命令。它会开始一个“Here Document”输入模式。sudo tee /usr/local/bin/check_warp.sh > /dev/null <<'EOF'
  2. 立即粘贴以下完整的脚本代码到终端中。
    #!/bin/bash
    
    # ================================================================= #
    
    # check_warp.sh - 检查并自动重启Cloudflare WARP连接的守护脚本   #
    
    # 版本: 1.3 - 最终救援版                                          #
    
    # ================================================================= #
    
    # --- 配置区 ---
    
    CHECK_IP="8.8.8.8"
    
    INTERFACE_NAME="warp"
    
    LOG_FILE="/var/log/warp_check.log"
    
    # --- 内部函数 ---
    
    log_message() {
    
        echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a ${LOG_FILE}
    
    }
    
    # --- 主逻辑开始 ---
    
    log_message "任务启动:开始执行WARP网络连通性检查..."
    
    if ping -c 1 -W 2 ${CHECK_IP} >/dev/null 2>&1; then
    
        log_message "状态正常:IPv4网络通畅 (ping ${CHECK_IP} 成功)。无需任何操作。"
    
    else
    
        log_message "故障告警:IPv4网络中断 (ping ${CHECK_IP} 失败)!"
    
        log_message "执行修复:准备重启 '${INTERFACE_NAME}' 接口..."
    
        
    
        log_message "--> 正在关闭接口: wg-quick down ${INTERFACE_NAME}"
    
        /usr/bin/wg-quick down ${INTERFACE_NAME} >> ${LOG_FILE} 2>&1
    
        
    
        sleep 5
    
        
    
        log_message "--> 正在启动接口: wg-quick up ${INTERFACE_NAME}"
    
        /usr/bin/wg-quick up ${INTERFACE_NAME} >> ${LOG_FILE} 2>&1
    
        
    
        log_message "修复操作完成。等待5秒后进行验证..."
    
        sleep 5
    
        
    
        if ping -c 1 -W 3 ${CHECK_IP} >/dev/null 2>&1; then
    
            log_message "验证成功:WARP服务重启后,IPv4网络已恢复!"
    
        else
    
            log_message "验证失败:重启后IPv4网络仍未恢复!请手动登录服务器检查!"
    
        fi
    
    fi
    
    log_message "任务结束。"
    
    echo "------------------------------------------------------" | tee -a ${LOG_FILE}
    
    exit 0

     

  3. 粘贴完毕后,按一下回车,然后输入大写的EOF,再按一次回车,以结束输入并创建文件。
  4. 为新创建的脚本赋予执行权限。

步骤 2:设置 Cron 定时任务

这是命令系统定时执行脚本的步骤。

  1. root用户身份打开crontab编辑器。sudo crontab -e

    如果是首次打开,系统会提示选择编辑器,推荐选择nano(通常是选项1),因为它最简单易用。

  2. 在打开的文件的最底部,添加以下这行规则。
    
    */5 * * * * /usr/local/bin/check_warp.sh
    
    

    规则解释: */5 * * * * 意为“每5分钟执行一次”。/usr/local/bin/check_warp.sh 是要执行的命令的绝对路径。

  3. 保存并退出编辑器。
    • Nano 编辑器: 按 Ctrl + X,然后按 Y,最后按 Enter
    • Vim 编辑器: 按 Esc,然后输入 :wq,最后按 Enter

    成功退出后,系统会提示 crontab: installing new crontab,表示任务已成功安装。

四、 验证与监控

部署完成后,必须验证其是否正常工作。

  1. 手动执行测试:立即手动运行一次脚本,确保脚本本身没有语法或权限错误。sudo /usr/local/bin/check_warp.sh你应该能在屏幕上看到清晰的、无错误的日志输出。
  2. 检查 Cron 执行日志:等待超过5分钟,让cron至少有一次执行机会。然后,通过查看日志文件来确认cron是否已按时执行脚本。tail -n 20 /var/log/warp_check.log你应该能看到多个时间戳相隔约5分钟的日志块,这证明自动化任务已在后台正常运行。
  3. 系统日志排错(备用):如果warp_check.log没有按时更新,可以查看系统日志中cron的活动记录来排查问题。sudo grep -i 'cron\|check_warp' /var/log/syslog
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享