是否有基于 WebSocket 的路径的『动态端口转发』软件?

2023-06-22 10:47:45 +08:00
 MFWT

详细说明

我设想中的是:

  1. 软件固定监听一个端口,使用 WebSocket 协议
  2. 接收到连接请求后,解析路径,比如考虑以下三个情况:
/something_like_password/1145
/something_like_password/1919
/not_password/810

第一条和第二条,路径第一部分是正确的(当作简单鉴权用),就解析第二部分,得到的数字就作为端口号,也就是说 WebSocket 连接建立后,数据分别被软件转发到本机的 1145 和 1919 端口(并建立 TCP 双向连接)

第三条,『密码』对不上(包括其他非法路径格式),不予连接

在网上找了找,似乎没有成品实现的,不知道是我找的方法不对还是真的没有?

1265 次点击
所在节点    问与答
8 条回复
momocraft
2023-06-22 10:49:03 +08:00
要求这么具体自己写啦
opengps
2023-06-22 11:21:58 +08:00
这种需求与主流防御方案不符合(主流的防火墙不会这么随意的开放端口),所以要这么明确的用法,那就需要匹配自研的软件了,而且不能有防火墙规则阻拦
1423
2023-06-22 14:26:00 +08:00
拿 gost 改,写过 go 的话一天基本可以搞定
huahsiung
2023-06-22 17:45:39 +08:00
这玩意不是 nginx location 不就行了吗?

location /something_like_password/1145 {
....
}


location /something_like_password/1919 {
....
}

location / { #未匹配成功,默认匹配
return 444; #444 为 nginx 的默认断开,不发送任何数据
}
MFWT
2023-06-22 18:48:33 +08:00
@huahsiung
问题是,我的需求是端口不固定的,总不可能 1024-65535 都加上罢
huahsiung
2023-06-22 19:02:09 +08:00
@MFWT
不是可以用模糊匹配前辍?

location ~ /something_like_password {
...
}

然后把$url 切出来。

nginx 里面有一个变量$url ,就是代表当前 url ,https://web.com/something_like_password/1145

可以写一个 lua
MFWT
2023-06-22 19:14:40 +08:00
@huahsiung 我去看看吧
xuanbg
2023-06-25 12:31:10 +08:00
为何不固定端口?我去年也被人带坑里去,要求给每个群一个特定端口。最后遗留的问题就是没法做反向代理,端口也容易被垃圾数据包攻击。前一阵子回过神来,改成一个固定端口,然后加上身份认证,就是客户端创建链接的时候带两个 url 参数。现在用起来好得很。

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

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

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

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

© 2021 V2EX