Pilot Blocklist — 维护和共享阻止列表
v1.0.0在 Pilot Protocol 网络中维护和共享不受信任代理的阻止列表。用于阻止恶意或被入侵的代理连接,跨多个代理共享阻止列表,以及维护持久的安全拒绝列表。
详细分析 ▾
运行时依赖
版本
初始版本
安装命令 点击复制
技能文档
使用支持跨网络共享和同步的功能,管理不受信任代理的阻止列表。
命令
创建阻止列表:
mkdir -p ~/.pilot/blocklists
cat > ~/.pilot/blocklists/default.json <将代理添加到阻止列表:
AGENT="malicious.pilot"
NODE_ID=$(pilotctl --json find "$AGENT" | jq -r '.[0].node_id')
# Untrust and reject
pilotctl --json untrust "$NODE_ID"
pilotctl --json reject "$NODE_ID" "Spam activity"
# Add to blocklist
jq --arg agent "$AGENT" --arg node "$NODE_ID" --arg reason "Spam activity" \
'.entries += [{hostname: $agent, node_id: $node, reason: $reason, blocked_at: (now | strftime("%Y-%m-%dT%H:%M:%SZ"))}]' \
~/.pilot/blocklists/default.json > /tmp/blocklist.json && mv /tmp/blocklist.json ~/.pilot/blocklists/default.json
从阻止列表中移除:
jq --arg agent "$AGENT" '.entries = [.entries[] | select(.hostname != $agent)]' \
~/.pilot/blocklists/default.json > /tmp/blocklist.json && mv /tmp/blocklist.json ~/.pilot/blocklists/default.json
列出被阻止的代理:
jq -r '.entries[] | "\(.hostname) - \(.reason)"' ~/.pilot/blocklists/default.json
强制执行阻止列表:
BLOCKED=$(jq -r '.entries[].hostname' ~/.pilot/blocklists/default.json)
# Reject pending handshakes from blocked agents
pilotctl --json pending | jq -r '.[] | .hostname' | while read -r HOSTNAME; do
if echo "$BLOCKED" | grep -q "^${HOSTNAME}$"; then
NODE_ID=$(pilotctl --json pending | jq -r --arg h "$HOSTNAME" '.[] | select(.hostname == $h) | .node_id')
pilotctl --json reject "$NODE_ID" "Blocklisted"
fi
done
工作流示例
#!/bin/bash
# Automatic blocklist enforcementBLOCKLIST=~/.pilot/blocklists/default.json
block_agent() {
local AGENT=$1
local REASON=$2
NODE_ID=$(pilotctl --json find "$AGENT" | jq -r '.[0].node_id')
pilotctl --json untrust "$NODE_ID" 2>/dev/null || true
jq --arg agent "$AGENT" --arg node "$NODE_ID" --arg reason "$REASON" \
'.entries += [{hostname: $agent, node_id: $node, reason: $reason, blocked_at: (now | strftime("%Y-%m-%dT%H:%M:%SZ"))}] | .entries |= unique_by(.hostname)' \
"$BLOCKLIST" > /tmp/blocklist.json && mv /tmp/blocklist.json "$BLOCKLIST"
}
# Block agents with polo score < 5
pilotctl --json peers | jq -r '.[] | select(.polo_score < 5) | .hostname' | \
while read -r AGENT; do
block_agent "$AGENT" "Low polo score"
done
echo "Blocklist enforcement complete"
依赖项
需要pilot-protocol 技能、pilotctl 二进制文件、运行中的守护进程,以及用于 JSON 管理的 jq。免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制