小南瓜
小南瓜
发布于 2026-07-18 / 1 阅读
0
0

1Panel 应用商店一键部署 n.eko 全程失败踩坑总结

一、部署环境信息

  1. 服务器:雨云轻量云服务器,公网 IP:103.207.68.92

  2. 面板:1Panel v2.2.3,Web 服务:OpenResty

  3. 域名:bobneko.netapitest.com,已配置 SSL 证书、HTTPS 自动跳转

  4. 部署方式:应用商店一键安装 m1k1o/neko:firefox

二、全程故障现象梳理

阶段 1:反向代理配置语法报错

  1. 初始直接粘贴location / { ... }到自定义配置框,无外层server{}包裹

  2. 报错提示:"location" directive is not allowed here

  3. 解决:补充完整 80 端口 server 块,仅由面板托管 443/SSL,不再手动写 443 监听配置

阶段 2:网页可正常打开,但页面持续加载转圈、左上角提示 Reconnecting

网页 HTTPS 访问正常、证书锁正常,但进入 n.eko 登录界面后无法建立视频连接,反复重连。

阶段 3:排查 UDP 端口监听,发现核心底层缺陷

执行端口监听命令 ss -ulnp | grep 端口段 后发现致命问题:

  1. 最初 WebRTC 端口设置 52000-52100,容器仅监听127.0.0.1:52000,未对外绑定0.0.0.0

  2. 更换低端口 40000-40100 规避运营商高位 UDP 封禁后,监听地址依旧锁定127.0.0.1:40000

  3. 仅重启容器无法刷新 Docker 端口映射,重建容器后监听地址仍无变化,公网 UDP 数据流无法进入容器

阶段 4:更换浏览器测试,出现Disconnected peer failed连接失败

切换 Firefox 浏览器排除 Chrome 插件拦截后,直接提示对等连接失败,代表 WebRTC NAT 穿透完全失效,无法建立视频通道。

三、已做全部排障操作(均未解决底层问题)

  1. 防火墙双端放行 UDP 端口

    • 雨云云防火墙:先后放行 52000-52100、40000-40100 UDP

    • 1Panel 内置 ufw 防火墙:同步添加对应 UDP 端口段,并重启防火墙重载规则

  2. Neko 参数完整规范配置

    • NAT1to1 IP 填写服务器公网 IP 103.207.68.92

    • Web 访问地址填写完整 HTTPS 域名 https://bobneko.netapitest.com

    • ICELite 模式开启(值 = 1)

    • 补充谷歌公网 STUN 穿透服务器 stun:stun.l.google.com:19302

    • 降低分辨率至 1280x720@30,视频码率下调至 1500 减少带宽压力

  3. 容器操作:多次重启、重建 Neko 容器

  4. 浏览器侧排查:无痕窗口、更换 Firefox、关闭全部广告 / 代理扩展

  5. Web 服务侧:修正 OpenResty 反向代理语法,面板正常托管 SSL 证书

四、失败根本原因

  1. 1Panel 一键 Neko 容器模板存在底层 BUG

    应用商店封装的容器,WebRTC UDP 端口段会强制仅监听本地回环127.0.0.1,Docker-proxy 不会生成全网0.0.0.0端口转发规则,无论修改参数、重启、重建容器都无法对外暴露 UDP 端口,公网无法传输 WebRTC 视频流。

  2. WebRTC 协议对网络环境要求苛刻

    国内家用宽带多层 NAT、运营商高位 UDP 端口封禁,即便端口正常放行,若无独立 STUN/TURN 服务器也极易出现peer failed连接失败,部署门槛高。

  3. 面板一键部署高度封装,无自定义 Docker 端口映射入口

    面板可视化参数仅能修改容器内环境变量,无法手动控制宿主机与容器 UDP 端口转发规则,无法绕开模板自带的监听限制。

五、两种可行替代方案(本次放弃部署,记录备用)

方案 1:脱离 1Panel 一键模板,手动 Docker 命令部署

使用原生docker run手动指定宿主机 UDP 端口映射,强制绑定0.0.0.0全网监听,完整配置环境变量,规避面板模板端口限制。

方案 2:更换无 UDP 依赖的远程桌面工具(推荐)

放弃 WebRTC 架构的 n.eko,改用 noVNC,全程仅依赖 TCP 80/443 端口,无需配置 UDP 穿透,无 NAT 连接失败问题,部署、维护难度更低。

六、本次收尾清理操作

  1. 卸载 1Panel 应用商店 Neko 容器,勾选删除镜像、容器数据

  2. 网站配置文件填充最简空 server 模板,保留站点、域名、SSL 证书不删除

  3. 清理防火墙规则:雨云后台、1Panel 防火墙删除 40000-40100 UDP 放行规则

  4. 域名解析保留,后续可复用站点部署其他服务


评论