AWS IPv6 Only 服务器:WARP 一键安装与永久保活教程

适用场景: 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

💻 第三步:保存并运行

  1. 粘贴后,按 Ctrl + O 然后按 Enter 保存文件。
  2. Ctrl + X 退出编辑器。
  3. 执行以下命令运行脚本:
chmod +x setup-warp.sh && ./setup-warp.sh

⚡ 关键操作提示:

  • 脚本运行后会自动修好 DNS,然后进入 WARP 安装菜单。
  • 在菜单中选择 1 (安装 WARP-Go) -> 确认开启 IPv4 接口
  • 看到安装成功并显示 IP 后,务必输入 0 退出菜单
  • 只有退出菜单,脚本才会继续执行后续的“自动保活”配置。
滚动至顶部