分享个注册并获取warp配置的简单脚本

loganyoyo 2026-07-12 00:05 1

#!/bin/bash
# bash ~/generate_warp.sh

# 检查必要的系统命令依赖
for cmd in wg curl jq base64 od awk; do
if ! command -v $cmd &>/dev/null; then
echo "错误: 未找到命令 $cmd. 请在Debian/Ubuntu上执行 'apt install wireguard-tools curl jq' 安装依赖."
exit 1
fi
done

echo "正在生成WireGuard密钥对..."
PRIVATE_KEY=$(wg genkey)
PUBLIC_KEY=$(echo "${PRIVATE_KEY}" | wg pubkey)

echo "正在向Cloudflare API发起注册请求..."
API_URL="https://api.cloudflareclient.com/v0a884/reg"
RESPONSE=$(curl -s -X POST "${API_URL}" \
-H "User-Agent: okhttp/3.12.1" \
-H "CF-Client-Version: a-6.11-3306" \
-H "Content-Type: application/json" \
-d '{"key": "'"${PUBLIC_KEY}"'", "install_id": "", "fcm_token": "", "tos": "2019-11-22T10:00:00.000Z", "model": "Linux", "serial_number": "", "locale": "en_US"}')

# 验证API响应是否包含正确的IPv4地址字段
IPV4=$(echo "${RESPONSE}" | jq -r '.config.interface.addresses.v4 // empty')

if [ -z "${IPV4}" ]; then
echo "错误: 注册失败或API返回了意外的数据."
echo "响应内容: ${RESPONSE}"
exit 1
fi

echo "解析配置参数..."
IPV6=$(echo "${RESPONSE}" | jq -r '.config.interface.addresses.v6')
PEER_PUBKEY=$(echo "${RESPONSE}" | jq -r '.config.peers[0].public_key')
PEER_ENDPOINT=$(echo "${RESPONSE}" | jq -r '.config.peers[0].endpoint.host')
CLIENT_ID=$(echo "${RESPONSE}" | jq -r '.config.client_id')

# 解码Client ID并提取前3个字节转换为十进制数组
RESERVED=$(echo "${CLIENT_ID}" | base64 -d 2>/dev/null | head -c 3 | od -An -tu1 | awk '{print $1","$2","$3}')

echo ""
echo "========================================="
echo " Xray WARP 出站节点配置 "
echo "========================================="
echo ""

# 输出最终的JSON配置块
cat <<EOF
{
"tag": "warp",
"protocol": "wireguard",
"settings": {
"secretKey": "${PRIVATE_KEY}",
"address": [
"${IPV4}/32",
"${IPV6}/128"
],
"peers": [
{
"publicKey": "${PEER_PUBKEY}",
"endpoint": "${PEER_ENDPOINT}"
}
],
"mtu": 1420,
"reserved": [
${RESERVED}
]
}
}
EOF

echo ""
echo "========================================="
echo " loon格式 (可用于substore)"
echo "========================================="
echo ""

cat <<EOF
warp-node = wireguard,interface-ip=${IPV4},interface-ipV6=${IPV6},private-key="${PRIVATE_KEY}",mtu=1280,dns=1.1.1.1,dnsV6=2606:4700:4700::1111,keepalive=30,peers=[{public-key="${PEER_PUBKEY}",reserved=[${RESERVED}],allowed-ips="0.0.0.0/0,::/0",endpoint=${PEER_ENDPOINT}}],udp=true
EOF
echo ""

最新回复 (5)
  • qdua 07-12 00:07
    1

    wget -N https://gitlab.com/fscarmen/warp/-/raw/main/menu.sh && bash menu.sh

    ^-^

  • loganyoyo 楼主 07-12 00:10
    2

    @qdua #1


    太复杂的不想检查代码

  • sinstar 07-12 00:11
    3

    你是不是在找:


    https://gitlab.com/fscarmen/warp/

  • loganyoyo 楼主 07-12 00:14
    4

    @sinstar #3


    简单的获取一个warp配置,不需要这么多代码

  • LogicNova 07-12 07:41
    5

    直接上现成的吧

* 帖子来源NodeSeek
返回