之前用 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 最新版终于修复了。。。