Anubis 配置安装指南:为你的网站加上 PoW 护盾

757 字
4 分钟
Anubis 配置安装指南:为你的网站加上 PoW 护盾

Anubis 是一个通过工作量证明来防御 AI 爬虫的开源工具。如果你正在寻找它的安装方法,这篇教程就是为你准备的。

安装方式#

这只是我的安装方式,你也可以选择其他方式安装

创建相关文件/文件夹 并设置权限
mkdir -p ~/anubis/{anubis-data}
cd ~/anubis
openssl rand -hex 32 > anubis.key
touch botPolicy.yaml docker-compose.yml
chowm -R 1000:1000 anubis-data anubis.key
chmod 600 anubis.key
chmod -R 700 anubis-data
chmod 755 botPolicy.yaml

编写Anubus相关配置文件#

botPolicy.yaml
# ============================================
# 机器人规则配置
# ============================================
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元标签,用于社交媒体分享)
docker-compose.yml
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,添加相关配置项#

nginx.conf
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";
}

启动服务#

Terminal window
docker compose up -d # 启动 Anubis
docker restart nginx # 重启 Nginx

运行效果
运行效果

相关链接#

Anubis 官网

TecharoHQ
/
anubis
Waiting for api.github.com...
00K
0K
0K
Waiting...

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Anubis 配置安装指南:为你的网站加上 PoW 护盾
https://memo.moieo.net/2026/08/21/133000/
作者
Moieo
发布于
2026-08-21
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Moieo
Slow and steady wins the race.
公告
网站已于2026年8月15日升级完成,感谢大家的支持!
分类
标签
最新动态
站点统计
文章
15
分类
6
标签
41
总字数
10,672
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.15.10
文章许可
CC BY-NC-SA 4.0