mirror of
https://github.com/hotyue/IP-Sentinel.git
synced 2026-05-10 17:52:41 +08:00
feat: V5.2 优化节点注册逻辑,引入安全授权机制破解 TG API 监听盲区
This commit is contained in:
@@ -24,14 +24,15 @@ AGENT_IP=$(curl -4 -s -m 5 api.ip.sb/ip)
|
||||
|
||||
if [ -n "$AGENT_IP" ]; then
|
||||
# 2. 向 Master 发送注册暗号 (借助 TG API)
|
||||
# 格式严格匹配 Master 端的正则: #REGISTER#|<NodeName>|<IP>|<Port>
|
||||
REG_MSG="#REGISTER#|${NODE_NAME}|${AGENT_IP}|${AGENT_PORT}"
|
||||
# 【升级点】利用 TG API 机制,引导用户充当“安全网关”手动转发授权
|
||||
REG_MSG="👋 **[边缘节点接入申请]**%0A节点: \`${NODE_NAME}\`%0A地址: \`${AGENT_IP}:${AGENT_PORT}\`%0A%0A⚠️ **安全验证**: 为防止非法节点接入,请长按复制下方代码,并**发送给我**以完成最终授权录入:%0A%0A\`#REGISTER#|${NODE_NAME}|${AGENT_IP}|${AGENT_PORT}\`"
|
||||
|
||||
curl -s -m 5 -X POST "https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \
|
||||
-d "chat_id=${CHAT_ID}" \
|
||||
-d "text=${REG_MSG}" > /dev/null
|
||||
-d "text=${REG_MSG}" \
|
||||
-d "parse_mode=Markdown" > /dev/null
|
||||
|
||||
echo "✅ [Agent] 已向司令部发送注册/续期请求: $NODE_NAME ($AGENT_IP:$AGENT_PORT)"
|
||||
echo "✅ [Agent] 已向司令部发送接入申请,请在 Telegram 手机端完成授权!"
|
||||
fi
|
||||
|
||||
# 3. 启动轻量级 Python3 Webhook 监听服务
|
||||
|
||||
@@ -49,10 +49,13 @@ while true; do
|
||||
# 格式: #REGISTER#|<NodeName>|<IP>|<Port>
|
||||
# ==========================================
|
||||
if [[ "$TEXT" == *"#REGISTER#"* ]]; then
|
||||
IFS='|' read -r MAGIC NODE_NAME AGENT_IP AGENT_PORT <<< "$TEXT"
|
||||
# UPSERT 逻辑: 如果节点存在则更新 IP/Port 和在线时间,不存在则插入
|
||||
# 提取包含暗号的那一行,并剔除可能误复制的反引号和空格
|
||||
REG_LINE=$(echo "$TEXT" | grep "#REGISTER#" | head -n 1 | tr -d '\` ')
|
||||
IFS='|' read -r MAGIC NODE_NAME AGENT_IP AGENT_PORT <<< "$REG_LINE"
|
||||
|
||||
# UPSERT 逻辑
|
||||
db_exec "INSERT INTO nodes (chat_id, node_name, agent_ip, agent_port, last_seen) VALUES ('$CHAT_ID', '$NODE_NAME', '$AGENT_IP', '$AGENT_PORT', CURRENT_TIMESTAMP) ON CONFLICT(chat_id, node_name) DO UPDATE SET agent_ip='$AGENT_IP', agent_port='$AGENT_PORT', last_seen=CURRENT_TIMESTAMP;"
|
||||
send_msg "$CHAT_ID" "✅ 节点注册成功/续期: \`$NODE_NAME\` ($AGENT_IP:$AGENT_PORT)"
|
||||
send_msg "$CHAT_ID" "✅ 司令部已确认!节点接入成功: \`$NODE_NAME\` ($AGENT_IP:$AGENT_PORT)"
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user