1. warp安装
首次运行
wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh
日常维护
warp
手动重连
wg-quick down warp &>/dev/null; sed -i "s/Endpoint.*/Endpoint = engage.cloudflareclient.com:4500/" /etc/wireguard/warp.conf; warp o
2. Warp 自动重连脚本部署
本指南将帮助您在 VPS 上部署一个脚本,以自动修复 Warp 的 IPv4 出口掉线问题
2.1 创建并编辑脚本文件
首先,在您的 VPS 上创建一个名为 reconnect_warp.sh 的文件
nano reconnect_warp.sh
打开编辑器后,将下面的完整脚本代码复制并粘贴进去。粘贴完成后,按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出。
完整脚本代码:
#!/bin/bash
# Warp 自动重启脚本
# 脚本会检查 IPv4 网络连通性,如果发现网络不通,就会自动修复 Warp。
# 尝试 ping 一个可靠的 IPv4 地址,只发送一个数据包,超时 3 秒。
ping -c 1 -w 3 8.8.8.8 > /dev/null 2>&1
# $? 不为 0 表示 ping 失败,执行修复逻辑。
if [ $? -ne 0 ]; then
echo "$(date): IPv4 network connection failed, repairing Warp..."
# 强制 Warp 隧道关闭
wg-quick down warp &>/dev/null
# 关键修复:使用 | 作为分隔符,确保 Endpoint 被正确替换为标准的 WireGuard 格式。
sed -i 's|Endpoint.*|Endpoint = engage.cloudflareclient.com:4500|' /etc/wireguard/warp.conf
# 重新连接 Warp
warp o
else
echo "$(date): IPv4 network connection is active. No action needed."
fi
或者一键脚本创建reconnect_warp.sh
cat > /root/reconnect_warp.sh <<'EOF'
#!/bin/bash
# Warp 自动重启脚本
# 脚本会检查 IPv4 网络连通性,如果发现网络不通,就会自动修复 Warp。
# 尝试 ping 一个可靠的 IPv4 地址,只发送一个数据包,超时 3 秒。
ping -c 1 -w 3 8.8.8.8 > /dev/null 2>&1
# $? 不为 0 表示 ping 失败,执行修复逻辑。
if [ $? -ne 0 ]; then
echo "$(date): IPv4 network connection failed, repairing Warp..."
# 强制 Warp 隧道关闭
wg-quick down warp &>/dev/null
# 关键修复:使用 | 作为分隔符,确保 Endpoint 被正确替换为标准的 WireGuard 格式。
sed -i 's|Endpoint.*|Endpoint = engage.cloudflareclient.com:4500|' /etc/wireguard/warp.conf
# 重新连接 Warp
warp o
else
echo "$(date): IPv4 network connection is active. No action needed."
fi
EOF
2.2 赋予脚本执行权限
接下来,您需要让系统知道这个文件是一个可执行的脚本。在终端中运行以下命令:
chmod +x reconnect_warp.sh
2.3 将脚本添加到定时任务 (Cron)
将脚本添加到定时任务 (Cron)
crontab -e
在打开的文件末尾,新开一行并添加以下命令。这会使脚本每 10 分钟自动运行一次
*/5 * * * * /root/reconnect_warp.sh
或
*/10 * * * * /bin/bash /root/reconnect_warp.sh
完成以上步骤后,即使您的 Warp 再次掉线,系统也会自动检测并修复它,您无需再手动干预。
3. 测试
3.1 手动断开warp连接
wg-quick down warp
3.2 运行脚本测试自动重连
/bin/bash /root/reconnect_warp.sh