服务器问答

求真正支持内网穿透 websocket 的软件
0
2021-05-18 12:56:18
idczone

之前用 frp 所谓支持 websocket 结果死活不行各种报错:

do http proxy 国外服务器request error: no such domain

或者是 do http proxy request error: backend tried to switch protocol "" when "websocket" was requested

求真正支持能够内网穿透 websocket 的软件


你转发 tcp 就完了

1 楼说的对

要不要试试我的“小破轮”
https://github.com/qiweiview/jndc

websocket 为啥报错 http,no way

https://github.com/ehang-io/nps

一楼正解

我来点诡异的:cloudflared

2 楼书说得对

说半天原来是自己的问题

https://github.com/fatedier/frp/issues/2189
提问后,作者给的答案挺无语的说是缺少某 header(用 chrome 控制台测试的,查看了网络请求并不缺他说的 header)。有空试试 3 楼兄弟的工具

https://github.com/ehang-io/nps/issues/721

根据源代码里搜索报错字符串来说,应当是返回时缺少 upgrade: websocket 头
用 chrome 控制台测试是不行的,报了这个错会关闭链接,你拿不到返回头的。
拿 wireshark 抓下

拿 wireshark 抓下服务器端的包……
能报这个错说明有 connection: upgrade 在,才会运行到能报错的逻辑
但,可能是 frp 在转变标准形的时候发生了问题,或者服务端没有发送 u:w
顺便问下你的服务端用的(语言?框架?应用?)是什么?

服务端是用的 javax.websocket.server.ServerEndpoint 类部署于 termux 里的 tomcat9 服务器,客户端是 javax.websocket.ClientEndpoint 。我用在局域网下用 ClientEndpoint 或 chrome 控制台访问 termux 里这个项目是正常的,把这个项目直接部署到外网 VPS 用 ClientEndpoint 或 chrome 访问也是正常的,说明项目代码没有问题.但是把 termux 里的 tomcat9 用 frp 内网映射到外网后就是无法连接。浪费几天时间把我整抑郁了都。

多次提 issue 最新版终于修复了。。。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服