业务需要,想服务器开放 N 个端口,然后 frp 客户端链接上来,每个客户端单独一个端口,访问服务端的某个端口,等于直接访问某个客户端。
等于是 s1..SN -> frp server : PORT -> Xclient
而且客户端要强限制,不能随意链接其他端口,每个端口不同的 token ,可能要查询数据库。
难度大么
1
ccc008 322 天前
可以二开,frp 本身就开源的
|
2
pkxutao 322 天前
每个端口不同 token 这个不确定是否满足,其他的不就是 frp 基础功能么
|
3
dzdh OP |
4
yplam 322 天前
可以换一种思路实现,本地不存配置文件,客户端 token 请求后端接口生成对应配置,然后就是正常的启动 frp 程序;在服务名称里面加点校验字符串,服务端把不合法的踢掉
|
5
dzdh OP @yplam
客户端本地内嵌个 socks5 代理服务器,绑定本地 10000 端口,然后根据 token 链接上服务器。 服务器上访问服务器端口,远程连接到本地的 socks5 代理服务器 这个场景应该能实现的吧 |
6
pkxutao 322 天前
@dzdh 你这个需求我还真思考过,我有另一种实现方案,你现在鉴权放在客户端的 frp 上,但是换一种思路,把鉴权放在服务端去,例如每台设备的 ssh 密码不一样,只能通过服务端获取,服务端来做鉴权,告诉使用的人想要连接的设备密码是多少然后才开始连接
|
8
isnullstring 322 天前
NPS
|
9
exqibao 322 天前
可以试试 rathole ,支持配置热加载,而且就是一个 token 对应服务器一个端口的。
|
11
Sharuru 322 天前 via iPhone
以前做过一个简单版本的,所有配置的 service name 等都是 uuid 随机生成,外面用 C# 套个 GUI ,用户运行时输入一个 key 后请求一串加密内容,解密后就是命令行运行参数,丢给 frp 运行。frp 自己也重新编译过,去掉了一些输出,硬编码一些地址信息。
|
12
MADBOB 322 天前
我们业务也有这种需求,最后选择了 NPS,仅在客户端配置 key ,每个客户端一个 key ,所有端口转发相关的配置全在服务端配置,有一定的安全性。
|
13
mxT52CRuqR6o5 322 天前
有没有可能二开得问你自己啊
|
14
Cola98 322 天前
应该是可以,我目前也有这种需求,大概是想将家里的 k8s 集群对外提供服务,想的是把 frp 对接一个 nginx 网关,然后网关里面集成服务
|
15
dzdh OP @yplam #4
尝试了一下,还是有点难度的。 我只是简单的应用。 这样看可以不可以。 我用 go 写个 server 端,开放个 tcp 监听,每个链接标记 auth 状态,auth:false 的,for read 第一行找到 token ,开放新端口,io.copy 。 nodejs 连接,发送 token+\n 这样逻辑上应该是 ok 的吧 |
16
yplam 321 天前
|