Anubis 配置安装指南:为你的网站加上 PoW 护盾
757 字
4 分钟
Anubis 配置安装指南:为你的网站加上 PoW 护盾
Anubis 是一个通过工作量证明来防御 AI 爬虫的开源工具。如果你正在寻找它的安装方法,这篇教程就是为你准备的。
安装方式
这只是我的安装方式,你也可以选择其他方式安装
mkdir -p ~/anubis/{anubis-data}cd ~/anubisopenssl rand -hex 32 > anubis.keytouch botPolicy.yaml docker-compose.ymlchowm -R 1000:1000 anubis-data anubis.keychmod 600 anubis.keychmod -R 700 anubis-datachmod 755 botPolicy.yaml编写Anubus相关配置文件
# ============================================# 机器人规则配置# ============================================bots: - name: example-rule # 规则名称(示例规则) user_agent_regex: ".*bot.*" # 匹配User-Agent中包含"bot"的请求(不区分大小写) action: DENY # 对该类请求执行的操作:DENY(拒绝访问)
# ============================================# 数据存储配置# ============================================store: backend: bbolt # 使用bbolt作为后端存储(嵌入式键值数据库) parameters: path: /data/anubis.bdb # 数据库文件存储路径(持久化数据)
# ============================================# 挑战阈值规则配置# ============================================thresholds: - name: challenge-everyone # 规则名称:对所有用户进行挑战 expression: # 触发条件表达式 all: # 所有条件都必须满足(逻辑与) - weight >= 0 # 权重大于等于0(实际上所有请求都满足) action: CHALLENGE # 触发动作:CHALLENGE(发起挑战验证) challenge: algorithm: fast # 挑战算法:fast(快速哈希计算) difficulty: 5 # 难度级别:5(数值越高计算越复杂,建议范围3-6)
# ============================================# 日志配置# ============================================logging: sink: stdio # 日志输出目标:stdio(标准输入输出,控制台) level: INFO # 日志级别:INFO(信息级,记录一般操作信息)
# ============================================# HTTP状态码配置# ============================================status_codes: CHALLENGE: 200 # 挑战响应状态码:200(正常响应,页面包含挑战内容) DENY: 403 # 拒绝响应状态码:403(禁止访问)
# ============================================# DNS黑名单配置# ============================================dnsbl: false # DNS黑名单功能:禁用(false表示不启用DNSBL检查)
# ============================================# DNS缓存TTL配置# ============================================dns_ttl: forward: 300 # 正向DNS解析缓存时间:300秒(5分钟) reverse: 300 # 反向DNS解析缓存时间:300秒(5分钟)
# ============================================# Open Graph元标签配置# ============================================openGraph: enabled: false # Open Graph支持:禁用(不生成OG元标签,用于社交媒体分享)services: anubis: image: ghcr.io/techarohq/anubis:latest container_name: anubis environment: BIND: ":8923" TARGET: " " POLICY_FNAME: "/config/botPolicy.yaml" ED25519_PRIVATE_KEY_HEX_FILE: "/secrets/anubis.key" SLOG_LEVEL: "INFO" AUTH_REQUEST_MODE: "true" healthcheck: test: ["CMD", "anubis", "--healthcheck"] interval: 5s timeout: 30s retries: 5 start_period: 500ms volumes: - "./botPolicy.yaml:/config/botPolicy.yaml:ro" - "./anubis.key:/secrets/anubis.key:ro" - "./anubis-data:/data" networks: - 1panel-network restart: unless-stopped
networks: 1panel-network: external: true配置 Nginx,添加相关配置项
8 collapsed lines
server { listen 80 ; listen 443 ssl ; server_name xomu.ren; index index.php index.html index.htm default.php default.htm default.html; access_log /www/sites/xomu.ren/log/access.log main; error_log /www/sites/xomu.ren/log/error.log;
location /.within.website/ { proxy_pass http://anubis:8923; # 需要确保 nginx 和 docker 在同一网络 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass_request_body off; proxy_set_header Content-Length ""; auth_request off; }12 collapsed lines
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md) { return 404; } location ^~ /.well-known/acme-challenge { allow all; root /usr/share/nginx/html; } if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) { return 403; }
location @redirect_to_anubis { return 307 /.within.website/?redir=$scheme://$host$request_uri; auth_request off; } location / { auth_request /.within.website/x/cmd/anubis/api/check; error_page 401 403 = @redirect_to_anubis; }17 collapsed lines
root /www/sites/xomu.ren/index; error_page 404 /404.html; http2 on; if ($scheme = http) { return 301 https://$host$request_uri; } ssl_certificate /www/sites/xomu.ren/ssl/fullchain.pem; ssl_certificate_key /www/sites/xomu.ren/ssl/privkey.pem; ssl_protocols TLSv1.3 TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:!aNULL:!eNULL:!EXPORT:!DSS:!DES:!RC4:!3DES:!MD5:!PSK:!KRB5:!SRP:!CAMELLIA:!SEED; ssl_prefer_server_ciphers off; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; proxy_set_header X-Forwarded-Proto https; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";}启动服务
docker compose up -d # 启动 Anubisdocker restart nginx # 重启 Nginx
相关链接
Waiting for api.github.com...
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
Anubis 配置安装指南:为你的网站加上 PoW 护盾
https://memo.moieo.net/2026/08/21/133000/相关文章智能推荐
1
Vibe Coding 实战:用 AI 从零写了一个短链接平台
前端2026-05-23
2
Astro & Fuwari优化配置
前端2025-09-21
3
Arch Linux UEFI 安装指南:Btrfs 子卷 + GNOME 桌面环境
Linux2025-05-26
4
ArchLinux Plasma 6 开启Samba服务(文件共享)
Linux2025-04-24
5
ArchLinux安装过程
Linux2025-04-23
随机文章随机推荐


