ProbeDeck

安装

反向代理

先配好反向代理,再加探针。安装命令里的地址取自你访问面板时的地址。用 http://IP:17986 的话 SECRET 会明文过公网。

方案一:Cloudflare 隧道

不需要公网 IP、不需要开端口、自带 HTTPS。NAT 小鸡首选。

# 面板所在机器上
docker run -d --name cloudflared --restart unless-stopped \
  --network host cloudflare/cloudflared:latest \
  tunnel --no-autoupdate run --token <你的 TUNNEL TOKEN>
bash

在 Cloudflare Zero Trust 后台创建 Tunnel,把 probedeck.你的域名 指到 http://127.0.0.1:17986。

优点:不用管证书、端口、防火墙。缺点:多一跳,延迟略高。

方案二:Caddy

自动申请证书,一行搞定。适合有域名和公网 IP 的机器。

probedeck.example.com {
    reverse_proxy 127.0.0.1:17986
    # WSS 长连接需要关掉缓冲
    flush_interval -1
}
caddyfile
caddy run
bash

方案三:Nginx

server {
    listen 443 ssl http2;
    server_name probedeck.example.com;
 
    ssl_certificate     /etc/letsencrypt/live/probedeck.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/probedeck.example.com/privkey.pem;
 
    location / {
        proxy_pass http://127.0.0.1:17986;
        proxy_http_version 1.1;
 
        # WebSocket 升级:实时推送依赖它,缺了会退化成轮询
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";
 
        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
 
        # 长连接不要被过早掐断
        proxy_read_timeout 300s;
        proxy_send_timeout 300s;
        proxy_buffering    off;
    }
}
nginx

四项必需:proxy_http_version 1.1、Upgrade / Connection 头、proxy_buffering off、足够长的 proxy_read_timeout。少任何一项,页面能开但实时数据不刷新,或连接几十秒后掉线。

验证

# 1. 面板能通
curl -I https://probedeck.example.com/
 
# 2. API 正常
curl -s https://probedeck.example.com/api/config | head -c 200
 
# 3. HTTPS 没降级、没被代理改成 http
curl -sI https://probedeck.example.com/ | grep -i strict-transport
bash

浏览器打开面板,指标应该每秒跳动。不跳就是 WebSocket 没通,回看上面四项。

在 GitHub 上修改这一页最后更新 2026-09-25