如何从外部主机连接树莓派上部署的PeerJS服务器?
PeerJS服务器连接问题排查步骤
- 第一步:修正PeerJS启动参数
你的启动命令默认仅允许本地回环访问,添加--host 0.0.0.0参数允许局域网/公网设备连接,完整命令如下:peerjs --port 9000 --key peerjs --path /videocallapp --host 0.0.0.0 - 第二步:内网连通性验证
- 树莓派本地执行命令测试服务可用性:
curl http://127.0.0.1:9000/videocallapp,正常会返回PeerJS服务的响应内容 - 同局域网下的其他设备浏览器访问
http://[树莓派局域网IP]:9000/videocallapp,如果无法访问,检查树莓派防火墙是否放开9000端口,执行sudo ufw allow 9000/tcp添加放行规则,同时确认树莓派已设置静态局域网IP,避免DHCP分配地址变动
- 树莓派本地执行命令测试服务可用性:
- 第三步:公网端口映射验证
- 确认路由器端口映射规则:外部端口9000、内部IP为树莓派静态局域网IP、内部端口9000、协议选择TCP+UDP,仅选UDP会导致信令连接失败
- 脱离当前局域网(比如用手机热点)的设备,访问
http://[你的公网IP]:9000/videocallapp,公网IP可在路由器运行状态页查询,或树莓派执行curl ifconfig.me获取 - 如果公网无法访问,优先排查运营商是否封禁9000端口,可更换为30000-60000区间的冷门端口重试,同时确认你家宽带分配的是公网IP:如果公网IP开头为10/172.16~31/192.168,属于运营商内网IP,需联系运营商开通公网IP
- 第四步:客户端配置修正
- 局域网内使用:host填树莓派静态局域网IP即可
- 跨公网使用:host填你家的公网IP
- 如果客户端站点为HTTPS协议,PeerJS服务必须配置SSL证书,否则浏览器会拦截混合内容请求导致连接失败,可将客户端改为HTTP站点或给PeerJS服务添加HTTPS配置
内容的提问来源于stack exchange,提问作者Gabibox
相关产品推荐
相关产品推荐

