一、树莓派反向代理

1. 安装 WireGuard

  • 原理:WireGuard VPN 让无公网IP的树莓派与云服务器内网互通
  • 权限设置:
    umask 077
    
  • 密钥生成(服务器 + 树莓派都要做):
    wg genkey
    
    私钥保存到 /etc/wireguard/private,记录公钥与私钥

2. 配置文件创建

云服务器配置

  • PrivateKey:服务器私钥
  • Address:10.0.0.1/24
  • ListenPort:51820(防火墙必须放行)
  • PostUp / PostDown:配置 NAT 转发
  • Peer:
    • PublicKey:树莓派公钥
    • AllowedIPs:10.0.0.2/32

树莓派配置

  • PrivateKey:树莓派私钥
  • Address:10.0.0.2/24
  • Peer:
    • PublicKey:云服务器公钥
    • Endpoint:云公网IP:51820
    • AllowedIPs:10.0.0.0/24
    • PersistentKeepalive:25(保活)

3. 反向代理创建

  • 网络互通测试:
    ping 10.0.0.1  # 树莓派 ping 服务器
    ping 10.0.0.2  # 服务器 ping 树莓派
    
  • 云服务器用 Nginx 做反向代理:
    • ServerName:云服务器公网IP
    • Location 代理到:http://10.0.0.2:8000

4. 网页服务启动

  1. 树莓派启动网页服务:
    python3 -m http.server 8000 --bind 0.0.0.0
    
  2. 云服务器重启 Nginx:
    systemctl restart nginx
    
  3. 验证:
    • 本地访问树莓派正常
    • 用云服务器公网IP可访问树莓派服务

二、知识小结

设备类型 核心功能 关键技术 网络配置 验证结果
树莓派 本地服务托管 WireGuard VPN 内网IP:10.0.0.2 连通云服务器
云服务器 反向代理服务 Nginx + WireGuard 放行51820、IP转发 代理可达
WireGuard 加密隧道 点对点VPN 密钥交换、25秒保活 双向ping通
网络架构 内网穿透 反向代理+VPN 云IP:51820 → 树莓派8000 公网可访问