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

2021-01-17 01:01:53 +08:00
 VKRUSSIA

之前用 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 的软件

4756 次点击
所在节点    NGINX
15 条回复
WordTian
2021-01-17 01:27:17 +08:00
你转发 tcp 就完了
cz5424
2021-01-17 09:08:23 +08:00
1 楼说的对
lqw3030
2021-01-17 09:30:48 +08:00
要不要试试我的“小破轮”

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/745579

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX