之前用 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 的软件
1
WordTian 2021-01-17 01:27:17 +08:00 via Android
你转发 tcp 就完了
|
2
cz5424 2021-01-17 09:08:23 +08:00 via iPhone
1 楼说的对
|
3
lqw3030 2021-01-17 09:30:48 +08:00 via iPhone
|
4
YouLMAO 2021-01-17 11:09:12 +08:00 via Android
websocket 为啥报错 http,no way
|
5
fxt0706 2021-01-17 12:48:15 +08:00
|
6
wakzz 2021-01-17 17:43:07 +08:00
一楼正解
|
7
no1xsyzy 2021-01-17 19:11:43 +08:00
我来点诡异的:cloudflared
|
8
40EaE5uJO3Xt1VVa 2021-01-17 19:31:04 +08:00
2 楼书说得对
|
9
masker 2021-01-17 22:24:31 +08:00 via Android
说半天原来是自己的问题
|
10
VKRUSSIA OP https://github.com/fatedier/frp/issues/2189
提问后,作者给的答案挺无语的说是缺少某 header(用 chrome 控制台测试的,查看了网络请求并不缺他说的 header)。有空试试 3 楼兄弟的工具 |
11
VKRUSSIA OP |
12
no1xsyzy 2021-01-18 12:34:44 +08:00
@VKRUSSIA 根据源代码里搜索报错字符串来说,应当是返回时缺少 upgrade: websocket 头
用 chrome 控制台测试是不行的,报了这个错会关闭链接,你拿不到返回头的。 拿 wireshark 抓下 |
13
no1xsyzy 2021-01-18 12:39:39 +08:00
@VKRUSSIA 拿 wireshark 抓下服务器端的包……
能报这个错说明有 connection: upgrade 在,才会运行到能报错的逻辑 但,可能是 frp 在转变标准形的时候发生了问题,或者服务端没有发送 u:w 顺便问下你的服务端用的(语言?框架?应用?)是什么? |
14
VKRUSSIA OP @no1xsyzy 服务端是用的 javax.websocket.server.ServerEndpoint 类部署于 termux 里的 tomcat9 服务器,客户端是 javax.websocket.ClientEndpoint 。我用在局域网下用 ClientEndpoint 或 chrome 控制台访问 termux 里这个项目是正常的,把这个项目直接部署到外网 VPS 用 ClientEndpoint 或 chrome 访问也是正常的,说明项目代码没有问题.但是把 termux 里的 tomcat9 用 frp 内网映射到外网后就是无法连接。浪费几天时间把我整抑郁了都。
|
15
VKRUSSIA OP 多次提 issue 最新版终于修复了。。。
|