求助,如何使用 Frp 做到 Sakura Frp 那样的网页认证? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Linkia
V2EX    宽带症候群

求助,如何使用 Frp 做到 Sakura Frp 那样的网页认证?

  •  
  •   Linkia 2024-04-09 14:45:32 +08:00 3449 次点击
    这是一个创建于 619 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,我日常需要在各种计算机上远程访问我的电脑。

    家中局域网内有软路由,安装了 Sakura Frp 做转发,但免费节点高峰期体验非常差,且本人有多个服务器的基础上不想去花每年 120 元去买 Sakura Frp 的会员。

    但自己尝试使用我自己的 Frps 添加 RDP 映射的时候发现了一些问题,Frp 项目无法像 Sakura Frp那样有网页访问验证功能,即先通过浏览器访问隧道,输入密码后给 IP 一定时间的白名单。

    如果我自己直接将 RDP 映射到公网肯定会被爆破+各种挂马,不知道各位有没有什么能使 Frp 快速便捷的验证端口访问问题。

    注:

    1. 暂不考虑除 RDP 之外的远程方式,在其他电脑上没有比 RDP 更方便且不用安装软件的方法了。
    2. Frp 的 stcp 也不考虑,连接前需要安装软件。
    3. 不考虑 WireGuard 、ZeroTier 等,原因同上,RDP 前需安装软件。
    20 条回复    2024-05-10 20:47:37 +08:00
    cat
        1
    cat  
       2024-04-09 14:58:25 +08:00   1
    好像有点意思 可以摸鱼做一个
    StuPYX
        2
    StuPYX  
       2024-04-09 15:03:19 +08:00   2
    Linkia
        3
    Linkia  
    OP
       2024-04-09 16:53:31 +08:00 via Android
    @cat 欢迎大佬写一个!
    Linkia
        4
    Linkia  
    OP
       2024-04-09 16:54:57 +08:00 via Android
    @StuPYX 感谢,但这个项目停止维护了,看看还有没有更好的实现方法,如果没有的话考虑部署一下这个项目~
    jpyl0423
        5
    jpyl0423  
       2024-04-09 17:22:05 +08:00   1
    可以看下这个项目 https://github.com/snail007/goproxy
    Linkia
        6
    Linkia  
    OP
       2024-04-09 17:32:27 +08:00 via Android
    @jpyl0423 看起来要复杂许多,稍后研究研究,感谢!
    lovelylain
        7
    lovelylain  
       2024-04-09 21:08:27 +08:00 via Android
    考虑下 frp + mqtt + nodered + 企业微信,需要的时候通过企业微信应用菜单开启 frpc
    boboliu
        8
    boboliu  
       2024-04-09 21:50:24 +08:00
    不必如此复杂,这个功能是纯客户端的。

    如果我没记错的话,相关用法的兼容性被刻意保留下来了。
    你直接用 sakura frp 的 frpc 丢上你的配置文件,然后加上 `auth_pass` 就行。
    boboliu
        9
    boboliu  
       2024-04-09 22:15:22 +08:00
    @boboliu 哦我记错了,下个版本恢复一下(
    slowman
        10
    slowman  
       2024-04-09 22:28:17 +08:00
    这种应用层创新还挺有意思的
    也可以用 port nock 之类的技术替代实现, 比如一些 web-based port nock
    最后当然也可以用管理 iptables 的 web 面板来实现..
    totoro625
        11
    totoro625  
       2024-04-09 22:56:47 +08:00
    自己的 frps 上安装了 ufw ,默认是 deny
    用的命令是:ufw allow from 当前的 IP

    包装成一个 https 获取 ip ,传递给 ufw 开启权限,应该是可行的
    Linkia
        12
    Linkia  
    OP
       2024-04-09 23:11:38 +08:00
    @boboliu #8 啊?还能这么操作?我研究研究
    coldle
        13
    coldle  
       2024-04-10 10:51:46 +08:00
    同需求,也是最后收拢到临时加白这个功能上了这功能确实简单好用
    loveqianool
        14
    loveqianool &nbs;
       2024-04-10 14:55:08 +08:00 via Android
    https://v2ex.com/t/1020251
    这个能替代吗?
    guanzhangzhang
        15
    guanzhangzhang  
       2024-04-10 16:06:39 +08:00
    用 Headscale 点对点隧道吧,frp 这种映射到公网被黑
    Linkia
        16
    Linkia  
    OP
       2024-04-10 17:44:22 +08:00
    @guanzhangzhang 有说明暂不考虑需要装软件才能远程的隧道方法,那样我还不如用 ToDesk 之类的远控工具了
    Linkia
        17
    Linkia  
    OP
       2024-04-10 22:05:18 +08:00
    @boboliu #8 这个方法我测试了一下,不行 :(
    不知道是我配置有问题还是如何

    karl@Karl-Laptop:~/frp/natfrp$ ./frpc_linux_amd64 -c ./frpc.toml


    ```

    [common]
    server_addr = ****
    server_port = ****
    token = ****

    [test]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 80
    remote_port = 8010
    auth_pass = testpassword

    ```
    Linkia
        18
    Linkia  
    OP
       2024-04-10 22:47:23 +08:00
    @StuPYX 很可惜这个版本里不包含我所述的功能 :(
    Pastech
        19
    Pastech  
       2024-04-11 12:14:21 +08:00
    做过一个类似的 frp 2fa 认证 不过是服务器实现的
    思路大概是 frp 先反代到 localhost 的一个端口 nginx 里面初始化一个 shared_dict 然后在某个 location 下面放一个 content_by_lua_file 通过 http 请求往 shared_dict 中写白名单 IP 然后在默认的 location 下面用 access_by_lua_file 识别 ip 是否在白名单内 不在的话重定向到认证页面 在的话就继续反向代理
    目前用下来感觉良好
    coldle
        20
    coldle  
       2024-05-10 20:47:37 +08:00
    @coldle #13 分享下自己最终用的方案以供后来人参考:在 frps 服务器上部署 script-server ,通过 shell 脚本 + iptables + ipset 实现 ip 白名单机制,定时清空白名单实现临时加白

    这套方案的爽点还蛮多的:
    1. 有账号机制,如果有多人使用的需求,可以只把 ip 加白操作放在一个账号里分享给别人;
    2. script-server 长期在后台运行,所以 frps 可以随用随开;
    3. ipset 支持文件读入读出,可以实现 "部分永久白名单+部分临时白名单" 的操作;
    4. 白名单不仅对 frps 生效,如果有其他需要暴露给自己用的服务也可以受益;
    5. script-server 可以从配置上完全关闭管理员账户,也就是说 script-server 可以只暴露比较安全的操作,哪怕 script-server 账号被黑了也不会有太大的影响

    缺点的话就是太依赖 script-server 或者类似的 web 式脚本调用,如果应用有漏洞的话大概率相关服务器一锅端()
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2577 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 14:31 PVG 22:31 LAX 06:31 JFK 09:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86