适用场景: AWS EC2、Lightsail 等纯 IPv6 环境 (IPv6 Only) 的 Ubuntu 24.04/22.04 服务器。
核心功能: 自动修复 DNS 解析失败 + 安装 WARP 添加 IPv4 访问能力 + 配置“不死之身”守护进程 (重启/断网自动修复)。
🚀 第一步:创建脚本文件
在 SSH 终端中执行以下命令,打开编辑器:
nano setup-warp.sh
📜 第二步:粘贴脚本代码
复制下方完整的脚本代码,并在 SSH 窗口中粘贴(鼠标右键或 Ctrl+V):
#!/bin/bash
# =================================================================
# AWS IPv6 Only 专用:WARP 交互式安装与永久保活脚本 (V2.1)
# 流程:
# 1. 自动修复 DNS (确保能联网)
# 2. 启动 WARP 菜单 (您手动选择安装选项)
# 3. 退出菜单后,脚本自动配置三层守护 (Systemd + Crontab)
# =================================================================
# 字体颜色配置
GREEN="\033[32m"
RED="\033[31m"
YELLOW="\033[33m"
PLAIN="\033[0m"
# --- 1. 强制固化 IPv6 DNS (环境准备) ---
echo -e "${GREEN}>>> [1/4] 正在初始化环境与修复 DNS...${PLAIN}"
# 针对 Systemd Resolved 进行配置 (持久化)
mkdir -p /etc/systemd/resolved.conf.d/
cat <<EOF > /etc/systemd/resolved.conf.d/ipv6_dns.conf
[Resolve]
DNS=2001:4860:4860::8888 2606:4700:4700::1111
FallbackDNS=2001:4860:4860::8844
Domains=~.
EOF
systemctl restart systemd-resolved
# 临时写入以防万一
echo -e "nameserver 2001:4860:4860::8888\nnameserver 2606:4700:4700::1111" > /etc/resolv.conf
# 强制 apt 走 IPv6
echo 'Acquire::ForceIPv6 "true";' > /etc/apt/apt.conf.d/99force-ipv6
# 安装基础工具
apt-get update -y >/dev/null 2>&1
apt-get install -y wget curl nano sudo cron >/dev/null 2>&1
echo -e "${GREEN}✅ 环境修复完成。${PLAIN}"
# --- 2. 交互式安装 WARP ---
echo -e "${GREEN}>>> [2/4] 即将启动 WARP 安装菜单...${PLAIN}"
echo -e "${YELLOW}⚠️ 重要提示:${PLAIN}"
echo -e "${YELLOW}1. 请在菜单中选择安装 WARP (推荐 WARP-GO + 双栈/IPv4接口)${PLAIN}"
echo -e "${YELLOW}2. 安装成功显示 IP 后,请选择 [0] 退出脚本!${PLAIN}"
echo -e "${YELLOW}3. 只有退出菜单,后续的“保活配置”才会继续运行!${PLAIN}"
echo -e "-----------------------------------------------------"
read -p "按回车键继续..."
# 下载并运行 fscarmen 脚本 (使用 GitLab 源)
wget -N --no-check-certificate https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh
# --- 3. 配置自动保活 (检测用户刚才装了啥) ---
echo -e "${GREEN}>>> [3/4] 您已退出菜单,正在配置“不死之身”守护进程...${PLAIN}"
# 自动识别服务名称
if systemctl list-units --full -all | grep -q "wg-quick@wgcf.service"; then
SERVICE_NAME="wg-quick@wgcf"
elif systemctl list-units --full -all | grep -q "warp-go.service"; then
SERVICE_NAME="warp-go"
else
# 再次尝试模糊匹配
SERVICE_NAME=$(systemctl list-units --full -all | grep -oE "(warp-go|wg-quick@wgcf)" | head -n 1)
fi
if [ -z "$SERVICE_NAME" ]; then
echo -e "${RED}⚠️ 未检测到 WARP 服务!${PLAIN}"
echo -e "如果您刚才没有安装成功,请重新运行脚本。如果您刚才选择了卸载,请忽略此条。"
exit 0
fi
echo -e "${GREEN}✅ 检测到您安装的服务: $SERVICE_NAME${PLAIN}"
# 1. 配置 Systemd 强制重启策略
mkdir -p /etc/systemd/system/${SERVICE_NAME}.service.d/
cat <<CONF > /etc/systemd/system/${SERVICE_NAME}.service.d/override.conf
[Service]
Restart=always
RestartSec=5
StartLimitInterval=0
CONF
systemctl daemon-reload
systemctl enable $SERVICE_NAME >/dev/null 2>&1
# 2. 创建看门狗脚本
cat <<WATCHDOG > /root/warp_watchdog.sh
#!/bin/bash
# 尝试 Ping Cloudflare IPv4 DNS (1.1.1.1)
# 如果 2 秒不通,说明 WARP 挂了,立即重启
if ! ping -c 1 -W 2 1.1.1.1 > /dev/null 2>&1; then
echo "\$(date): IPv4 断连,正在重启 WARP..." >> /var/log/warp_watchdog.log
systemctl restart $SERVICE_NAME
fi
WATCHDOG
chmod +x /root/warp_watchdog.sh
# 3. 添加到 Crontab (每分钟执行)
if ! crontab -l 2>/dev/null | grep -q "warp_watchdog.sh"; then
(crontab -l 2>/dev/null; echo "* * * * * /root/warp_watchdog.sh") | crontab -
fi
# --- 4. 最终验证 ---
echo -e "${GREEN}>>> [4/4] 最终验证...${PLAIN}"
IP_V4=$(curl -s -4 ip.sb --max-time 10)
if [ -n "$IP_V4" ]; then
echo -e "${GREEN}🎉 配置全部完成!${PLAIN}"
echo -e "🌍 当前 IPv4: ${YELLOW}$IP_V4${PLAIN}"
echo -e "🛡️ 已启动双重守护,重启服务器也不会掉线。"
else
echo -e "${RED}⚠️ 守护配置已完成,但无法获取 IPv4。${PLAIN}"
echo -e "请检查您刚才在菜单中是否成功添加了 IPv4 接口。"
fi
💻 第三步:保存并运行
- 粘贴后,按
Ctrl + O然后按Enter保存文件。 - 按
Ctrl + X退出编辑器。 - 执行以下命令运行脚本:
chmod +x setup-warp.sh && ./setup-warp.sh
⚡ 关键操作提示:
- 脚本运行后会自动修好 DNS,然后进入 WARP 安装菜单。
- 在菜单中选择
1(安装 WARP-Go) -> 确认开启 IPv4 接口。 - 看到安装成功并显示 IP 后,务必输入
0退出菜单! - 只有退出菜单,脚本才会继续执行后续的“自动保活”配置。