如何为P2WLAN配置HTTPS反向代理与TLS安全公网部署完整指南【免费下载链接】p2wlan跨平台 P2P 虚拟局域网(VirtualLAN)工具让异地设备像在同一局域网中互联。支持 NAT 穿透、IPv6 直连、房间组网与 Relay 回退覆盖 Windows / macOS / Linux / Android。项目地址: https://gitcode.com/gh_mirrors/p2/p2wlanP2WLAN 是一款跨平台 P2P 虚拟局域网VirtualLAN工具让 Windows / macOS / Linux / Android 上的异地设备像在同一局域网一样互联支持 NAT 穿透、IPv6 直连、房间组网与 Relay 回退。当你想把它部署到自己的公网服务器、供朋友或团队长期使用HTTPS 反向代理与 TLS 证书就是绕不开的一步官方架构要求 Control 控制面只监听本机回环地址公网流量必须经由可信的 HTTPS 反向代理进入。本文带你从零完成一次安全的公网部署。先看懂架构只有两个公网入口P2WLAN 的服务端由两个进程组成它们的公网暴露方式完全不同这也是 TLS 配置要分两处做的原因入口用途是否公开HTTPS 443Control API、WebSocket 信令、可选/admin/管理台✅ 公开TLS 18081或 Relay 机器的 443Relay 数据中继连接✅ 按需公开HTTP 18080Control 内部监听❌ 仅 loopbackHTTP 18082Relay metrics / readyz❌ 仅 loopback两个关键原则来自 docs/reference/networking.mdControl 的反向代理必须支持 WebSocket Upgrade否则信令长连接会失败Relay 的 TLS 入口不能用 Control 的普通 HTTP 代理规则代替它是独立的 TLS 端口证书、audience、region、ticket keyring 和撤权 feed 必须同时匹配。Control一键配置 HTTPS 反向代理Control 的 HTTP 监听默认只在 loopback公网通过可信 HTTPS 反向代理暴露见 docs/guides/self-hosting.md。以 Caddy 为例配置非常简单control.example.net { reverse_proxy 127.0.0.1:18080 # 需要 WebSocket 长连接时Caddy 默认已支持 Upgrade }如果你的反向代理是 Nginx请确保开启了Upgrade头透传。管理台入口位于 Control 同一可信 HTTPS origin 下的/admin/与 API 共用同一个反代无需额外 CORS 放行公网访问管理台时管理员令牌必须按敏感凭据处理不要写进 URL 或访问日志字段。Relay独立的 TLS 数据入口Relay 承担数据面回退转发业务数据在端点间加密Relay 只看到元数据。它的 TLS 证书直接由p2wlan-relay进程加载相关变量在 deploy/staging/relay.env.example 中有完整模板变量说明RELAY_TLS_CERT/RELAY_TLS_KEY匹配的完整证书链与私钥RELAY_AUDIENCE/RELAY_REGION必须与 Control catalog 中的某一项完全一致RELAY_REQUIRE_AUTH生产环境保持trueRELAY_ALLOW_INSECURE_PLAINTEXT生产环境禁止开启RELAY_REVOCATION_FEED_URL分机部署时必须使用 HTTPSControl 侧通过RELAY_CATALOG_JSON向客户端下发 Relay 目录端点必须使用tls://而非tcp://模板见 deploy/staging/control.env.exampleRELAY_CATALOG_JSON[{region:cn-1,audience:relay-1, endpoint:tls://relay.example.net:18081}]部署完成后用 Relay 页可以看到每台设备的直连/中继路径与延迟这就是数据面跑在 TLS 中继上的实际效果用 p2wlan-config 生成匹配的配置证书、JWT、Relay 票据签名密钥……手工拼接很容易出错。官方提供了配置生成器p2wlan-config源码见 server/cmd/p2wlan-config/main.go一次性生成相互匹配的 Control / Relay 配置sudo ./p2wlan-config \ --output /etc/p2wlan \ --mode native \ --relay-endpoint tls://relay.example.net:18081 \ --tls-cert /etc/p2wlan/tls/fullchain.pem \ --tls-key /etc/p2wlan/tls/privkey.pem生成器会自动完成校验证书与私钥配对、SAN 覆盖 Relay 主机名不覆盖直接报错生成独立的JWT_SECRET与 256-bitCONTROL_ADMIN_TOKEN写入受保护的私有配置文件不会打印到终端生成 Relay 票据签名密钥与 keyring 的匹配关系拒绝覆盖已有部署保证升级时不丢配置。完整的变量语义参考 docs/reference/configuration.md。证书续期与凭据分离的两个细节证书续期来自 docs/guides/operations.md使用 ACME 自动签发后续期必须更新实际挂载的证书文件再重载或重启 Relay最后用 TLS 客户端验证证书链与 endpoint——ACME 客户端报告成功并不等于 Relay 已经加载了新证书。密钥轮换时JWT、管理台令牌、Relay 票据签名 key、撤权 feed token 与 TLS 私钥应分别处理只有明确支持重叠验证时才能承诺无中断轮换。凭据分离JWT、设备凭据、Relay ticket、票据签名密钥、撤权 feed token 和 TLS 私钥各管各的职责不能互相替代见 docs/explanation/security-model.md。Relay 的 loopback metrics 与 readyz 永远不要通过防火墙暴露。验证部署从服务健康到真实连网部署完成后按顺序执行三件套sudo p2wlan-server verify --service all # 校验发布归档与版本 sudo p2wlan-server check --service all # 检查 Control/Relay 健康端点 sudo p2wlan-server doctor --service all # 深检 systemd、TLS 文件、SQLite、备份等注意这些检查不代替真实客户端验证。请在一台实际设备上加入房间确认虚拟 IP 业务流量如 NAS 访问、游戏联机双向可达。首页会显示控制服务器、Overlay 路由与设备连接的整体状态设备列表页还能逐台看到直连或中继的连接方式与吞吐适合部署后抽查路径质量Docker Compose 快速替代方案如果你习惯容器化deploy/selfhost/compose.yml 提供了现成编排Control 只发布到127.0.0.1容器以非 root、只读根文件系统、cap_drop: ALL运行Relay 的 TLS 证书以只读卷挂载。公网入口仍由你自己的 HTTPS 反向代理终结生产镜像必须使用固定发布摘要不要在业务机上临时构建未验证源码。小结Control 走可信 HTTPS 反向代理443务必保留 WebSocket UpgradeRelay 走独立 TLS 入口证书链完整audience / region 与 catalog 严格一致用p2wlan-config生成匹配配置避免手工拼接密钥续期后重载 Relay 并主动验证证书链verify / check / doctor之后再上真实设备验收。 延伸阅读自托管全流程docs/guides/self-hosting.md配置变量参考docs/reference/configuration.md端口与网络边界docs/reference/networking.md安全模型与运维边界docs/explanation/security-model.md运维指南日志、证书、管理台docs/guides/operations.md【免费下载链接】p2wlan跨平台 P2P 虚拟局域网(VirtualLAN)工具让异地设备像在同一局域网中互联。支持 NAT 穿透、IPv6 直连、房间组网与 Relay 回退覆盖 Windows / macOS / Linux / Android。项目地址: https://gitcode.com/gh_mirrors/p2/p2wlan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考