面板端
WebSocket 丝滑:删除了手动指定的 Upgrade 头,让 Caddy 自动与 EdgeOne 协商,彻底解决了“WebSocket 连接中”的卡顿。
登录无忧:显式指定了 Origin 和 Access-Control-Allow-Origin,绕过了 CDN 环境下最常见的 CSRF 登录拦截。
IP 精准:通过 nz-realip 配合你哪吒后台的设置,能准确记录每个访客的真实 IP。
Agent 端
gRPC 路径保护:通过 @grpcProto 精确匹配 Agent 通讯路径,确保受控端能正常上报数据。
黑洞防御:handle { abort } 像一堵墙,把所有尝试通过浏览器访问该域名的嗅探请求直接掐断,极大地保护了面板服务器的真实 IP 不被扫描器抓取。
# 面板域名(走 腾讯EO CDN)
nezha.maotao.net {
encode gzip zstd
# 反向代理配置
reverse_proxy localhost:8008 {
# 1. 核心:由 Caddy 自动处理 WebSocket 握手,不再手动指定 Upgrade/Connection
# 2. 传递 Host 和 Origin
header_up Host {host}
# 显式指定 Origin,确保与浏览器访问的地址完全一致
header_up Origin "https://nezha.maotao.net"
# 3. 传递真实 IP
# 推荐直接使用 X-Forwarded-For 的第一个值
header_up nz-realip {header.X-Forwarded-For}
# 如果哪吒后台“前端真实IP请求头”填的是 X-Forwarded-For,
# 那么其实这里不需要 header_up nz-realip,Caddy 默认就会透传 X-Forwarded-For。
# 增加跨域支持(针对某些版本的哪吒登录校验)
header_down Access-Control-Allow-Origin "https://nezha.maotao.net"
}
}
# ==========================================
# 2. Agent 域名(加入安全屏蔽)
# ==========================================
qqbb.za.net {
# 定义 gRPC 路径匹配
@grpcProto {
path /proto.NezhaService/*
}
# 仅允许 gRPC 流量(Agent 通讯)
handle @grpcProto {
reverse_proxy localhost:8008 {
header_up Host {host}
header_up nz-realip {remote_host}
transport http {
versions h2c
read_buffer 4096
}
}
}
# 其他所有请求(如浏览器直接打开该域名)全部拦截
# 这样可以防止别人扫描发现你的 Agent 直连域名
handle {
abort
}
}
毛桃博客








评论前必须登录!
注册