内网应用需访问外网 Webscoket 如何正向代理的问题

2023-07-26 10:55:17 +08:00
 jack778

我现在碰到这样一个问题:

请问有哪些简单的解决方案, 主要是 A 服务器如何转发 Webscoket 请求给 B 服务器,B 服务器通过扫码方式代理该请求? 目前有两个方案 1. A 服务器改 hosts 文件, 然后 B 服务器开端口转发, 不过貌似要占用 443 端口 2. A 服务器和 B 服务器都装 nginx, 双重反向代理 请问各位有没有更加优雅简单的方法?

1558 次点击
所在节点    Linux
12 条回复
julyclyde
2023-07-26 12:31:20 +08:00
先把拼写弄正确!!
jack778
2023-07-26 12:38:04 +08:00
@julyclyde 请问哪里拼写错了,没看出来
zmqking
2023-07-26 12:42:31 +08:00
websocket
ysc3839
2023-07-26 13:04:34 +08:00
B 服务器端口转发用非 443 端口也可以吧
Nazz
2023-07-26 13:36:13 +08:00
在 B 服务器部署 socks5 就行了
march1993
2023-07-26 14:12:41 +08:00
通过 Service Worker API ?无感代理外网请求
lsk569937453
2023-07-26 14:16:45 +08:00
就 B 装一个 Nginx ,A 发请求到 B 的 Nginx 就完事了。
tin3w5
2023-07-26 14:24:41 +08:00
既然是正向代理,那就直接 Squid 。
abear
2023-07-26 14:29:12 +08:00
5,7 楼说得对
jack778
2023-07-26 14:54:46 +08:00
@Nazz A 服务器上是用 nginx 接收客户端请求的,请问如何让 B 服务器代理 A 服务器的 websocket 请求呢, A 服务器要怎么配置?
Nazz
2023-07-26 15:24:16 +08:00
@jack778 首先在 B 服务器部署 socks5 server, 然后找一个支持代理的 websocket client. 如果是 go 语言, 可以用我写的这个 https://github.com/lxzan/gws
jifengg
2023-07-26 16:48:40 +08:00
看你最后的描述,你是知道怎么转发的,只是问有没有更优雅的方法。

首先确定,客户端能不能访问 B 服务器?如果能,那 A 的 web 应用里,配置 ws 地址为 B 服务器的 ws 地址,让客户端直接连 B ,B 连网易。A 就不用再转一次 ws 了。这里要解决一个跨域问题就行了。
如果不能,那就只能 客户端->A->B->网易 了

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

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

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

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

© 2021 V2EX