凯瑞
凯瑞
Published on 2025-02-19 / 43 Visits
0
0

Frp内网穿透以及实现多用户远程桌面

亲戚有多用户远程办公的需要,在家里也专门放的有一台设备用于远程连接的电脑,但他家里刚好用的是抠门的移动,如果要公网IP是要按时长和带宽计费的,根本不用考虑花钱开这个。考虑使用ToDesk或者第三方提供内网穿透的服务如SAKURA FRP,但是这些基本都限速限流量,ToDesk多用户的话花的钱就起飞了,如果要传文件估计是不够用,最后还是考虑自购一台服务器用于内网穿透。

多用户远程桌面

Windows 10系统默认是不支持多用户同时使用远程桌面的,这是Windows Server系统“专属”的功能,但甚至还需要花钱去买多用户授权。

尝试了网上传的调整组策略的方法,无效。后面找到了RDP Wrapper工具, 可以并发RDP会话,项目地址:stascorp/rdpwrap:RDP 包装器库,下载解压后启动install.bat,虽然该工具最后一次release是在2017年,现在的系统直接使用会不支持,因为它依赖一个rdpwrap.ini来确定远程桌面相关配置的偏移量以进行修改,不过可以去该项目的issues和pull requests看看,很多人提供了新版本的配置文件,找到合适的文件覆盖一下,工具就可以正常使用了。

给系统创建多个用户,本地网络环境下尝试同时连接,可以正常使用。

RDP内网穿透

刚好那会既不是双十一,双十二,618,所以没什么活动,需求是稳定,大带宽,跑远程桌面还得要低延迟。国外服务器虽然带宽大但问题是因为物理距离延迟偏高,国内服务器虽然延迟低了,但是带宽太金贵了(个别地区除外),所以去翻了翻其它小众点的云服务器厂商,给他列了个表格

结果人家也是财大气粗,最后定的是我找的最贵的那个(有这钱买点别的不好吗),雨云宁波的服务器,100M上传下载,1T月流量,2核2G,504一年,不过雨云还会返一定比例的积分,甚至还能提现出来,所以最后差不多是504买了一年多一个月,装的宝塔面板9.0 [Ubuntu24.04/LNMP]

链接:雨云 - 新一代云服务提供商

买了之后ping一下服务器,延迟还是很可以的。

在宝塔面板里安装frp,启动服务端。

配置好服务器的IP,端口,其它的都不用动,记得在宝塔面板和雨云防火墙这边放开对应的端口,这样服务端就配置好了,为了安全还可以配置一下token,下面在客户端里也要设置。

在需要穿透的电脑上下载好对应的客户端,解压压缩包会有几个文件,其中frpc是客户端相关的,frps的服务端相关的,刚才在服务器上跑的其实就是frps,修改的配置文件是frps.toml。

打开frpc.toml,根据需求修改配置文件,注意连接里的remote_port也是需要开放防火墙的。

保存后其实就可以打开frpc所在地址的命令行,输入./frpc.exe -c ./frpc.toml运行了,但是为了让该电脑可以随时被连接,哪怕是在被重启之后,这时可以使用任务计划程序,创建任务,需要勾选不管用户是否登陆都要运行,触发器选择启动时,操作里选择启动程序,选择frpc.exe,在添加参数里添加-c 到配置文件的路径/frpc.toml ,条件里把电源选项全去掉,勾选上唤醒计算机时运行此任务,设置里把除允许按需运行任务外的选项去掉,如果想要错误重试的话可以把如果任务失败,按以下频率重新启动勾选,保存之后手动运行一下即可,之后只要电脑在正常运行就可以随时连接了。

这时再测试一下远程桌面,链接输入 云服务器IP地址:frpc的remote_port端口 ,成功连接,配合RDP Wrap可以成功实现公网多用户远程桌面。

其它方案?

其实我还尝试过使用tailscale+headscale或zerotier这种打洞的方案,好处是如果能打通就可以两端之间直接通信,不需要再占用服务器带宽,问题是虽然它自带了打不通则走云服务器的逻辑,但并不能实现完全无感,打洞需要时间不能即开即用,以及打洞质量不稳定,打不穿,比如当使用流量时,NAT环境比较糟糕,无法打通,换成走服务器之间有不小的间隔,也可能是我哪里没有配置好,导致体验比较糟糕,这种方案被放弃。


Comment