使用lucky开启HTTPS反向代理和webclient2连接 #81
Replies: 21 comments 37 replies
-
|
感谢大佬分享 |
Beta Was this translation helpful? Give feedback.
-
|
前来支持 |
Beta Was this translation helpful? Give feedback.
-
|
nginx反代,实测可行。 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
仔细看教程,除了api,另外两个域名加/ws/id和/ws/relay
…------------------ 原始邮件 ------------------
发件人: NESECN ***@***.***>
发送时间: 2025年4月9日 20:23
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Comment ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
大佬,在上两个版本之前吧,教程好像只有一种设置方式,就是监听21118及21119,然后docker内端口设置的21108及21109,那会儿网页端还可以正常远程连接的,更新上一版本之后就开始报错了
kpjed25r.oju.png (view on web)
,现在更新教程做了区分,但我用大佬推荐的S6镜像使用最新版lucky,在同一个反向代理规则下添加三个rustdesk子规则时,前端地址三个子规则没办法都填同一个二级域名,保存设置会报错,不知道哪里理解有误,是不是三个子规则前端地址这里要用不同的二级域名呢,例如aa.github.com/bb.github.com/cc.github.com,然后在环境变量里也要对应填写不同二级域名及监听的端口号呢,因为看教程写的都是:做好ddns的域名,那我理解应该都是同一个的,例如都是aa.github.com,还请大佬解惑一下,感谢!
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
大佬教程有写的,我当时也是这样,仔细阅读教程才发现
…------------------ 原始邮件 ------------------
发件人: rayangl ***@***.***>
发送时间: 2025年4月9日 20:29
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
@yangdingjin 说的对,前端也要写上path哈
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
做了更新,这个方法已经不行了,得fork到你自己的库然后git到本地修改了然后上传
…------------------ 原始邮件 ------------------
发件人: yeguixiong ***@***.***>
发送时间: 2025年4月9日 20:58
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
QQ20250409-204908.png (view on web)
QQ20250409-205047.png (view on web)
QQ20250409-205002.png (view on web)
大佬,我这样编译出来的客户端,1.3.7之前版本webclient远程正常,1.3.8/1.3.9就不行,pc客户端和安卓都可以正常连接,只有webclient显示离线,api-admin我的设备里也是显示在线的。
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
家里没环境,你发的图片我打不开
…------------------ 原始邮件 ------------------
发件人: yeguixiong ***@***.***>
发送时间: 2025年4月9日 21:04
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
大佬,修改的地方还是我图示的就行吗?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
fork了就直接改了,config文件的105,106行改服务器和key
…------------------ 原始邮件 ------------------
发件人: yeguixiong ***@***.***>
发送时间: 2025年4月9日 21:20
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
就是“.github/workflows
/flutter-build.yml”里添加三行:
RS_PUB_KEY: "${{ secrets.RS_PUB_KEY }}"
RENDEZVOUS_SERVER: "${{ secrets.RENDEZVOUS_SERVER }}"
API_SERVER: "${{ secrets.API_SERVER }}"
settings→secrets and variables→Actions里添加三个密匙:
API_SERVER=xxxxx
RENDEZVOUS_SERVER=xxx
RS_PUB_KEY=xxx
然后Actions→Flutter Tag Build编译。
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
明天发你,家里没环境我没记
…------------------ 原始邮件 ------------------
发件人: yeguixiong ***@***.***>
发送时间: 2025年4月9日 21:51
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
大佬,我搜索了所有config文件,都没看到105、106行是适合的,能提供一下路径吗?最新版本1.3.9
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
对
…------------------ 原始邮件 ------------------
发件人: yeguixiong ***@***.***>
发送时间: 2025年4月9日 21:54
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
我知道了,应该是这个里的,rustdesk/hbb_common/config.rs?101、102行
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
大佬啊,我这用s6镜像部署好了,没弄lucky,外网用域名连接没问题,互相控制也没问题。不过出现内网机器域名连不上,输入ip的话外网的机器控不了内网机器。防火墙(网关)上只做了dnat的情况下有没有解决方法哈? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
请教一下大佬们,现在已经部署好了s6镜像(host模式),并配置了lucky,此外套了一层frp,客户端用的都是大佬编译的版本。如果不用host模式部署,则一直是relay方式,延迟比较高。换成host方式部署之后就外网就无法正常访问了。 |
Beta Was this translation helpful? Give feedback.
-
|
为什么我按楼主luck里配置的S6 配置好,必须得访问https://api域名:端口/webclient2/才能打开web client。但我S6镜像按楼主的配置的- RUSTDESK_API_RUSTDESK_WS_HOST=wss://wss.域名:跟API域名一样的端口。 正常不应该是直接输入https://wss.域名:端口 就能访问web client吗?但我输入这个地址提示404 Not Found |
Beta Was this translation helpful? Give feedback.
-
|
二选一,你不想进后台直接进网页版api反带位置就➕webclent2,只有api的反带➕webclent2才能进网页端,只是这样加了就进不了api后台了
…------------------ 原始邮件 ------------------
发件人: kokpk ***@***.***>
发送时间: 2025年8月7日 11:06
收件人: lejianwen/rustdesk-api ***@***.***>
抄送: yangdingjin ***@***.***>, Mention ***@***.***>
主题: Re: [lejianwen/rustdesk-api] 使用lucky开启HTTPS反向代理和webclient2连接 (Discussion #81)
确实,我也不行
还发现一个问题,如果yaml里域名我直接填写内网IP话 用内网地址比如http://192.168.1.1:21114/webclient2 在内网访问正常。。但如果去外网用反代访问https://api域名:端口/webclient2/ 去访问话会报ClientException: XMLHttpRequest error., uri=http://192.168.1.1:21114/api/currentUser 错误。。
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
|
有谁成功使用Zero Trust的Tunnel连接本地服务器吗?我使用了三个域名分别指向ID,Relay和Api,目前只有Api走HTTP协议是通的,其他两个TCP协议都不通 |
Beta Was this translation helpful? Give feedback.
-
|
使用fail2ban开启登录防护 |
Beta Was this translation helpful? Give feedback.
-
该反向代理的反向代理了,该设置的端口也设置了,就是连接失败。
|
Beta Was this translation helpful? Give feedback.
















Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
说明
21114(api的网页后台)和 21118、21119(api网页后台发起远程的WebSocket 端口),21115-21117(客户端发起远程的端口)均使用openwrt的通信规则放行端口,这些端口应该不适合反代,想反代可以自行尝试。Note
如果你IPV6有443,IPV4没有443,两者混用时(21114网页后台用有443端口的v6,21118、21119用443以外端口的v4,或者反过来),要打开lucky里面api子规则的跨域选项。
解释一下混用的场景:https默认走443端口,所以访问不会显示难看的端口。接下来我们部署的web网页你就可以选择用v4还是v6,如果你全用v6,虽然不会显示端口,但会导致只有v4的人无法打开web网页和发起远程。家宽v4是没有443的,所以必须用端口访问,虽然有其他方法,可以自行搜索。
电信手机流量因为默认是双栈,可以打开web网页,比如公司默认只有IPV4协议栈,就打不开网站。api服务环境变量:
- RUSTDESK_API_RUSTDESK_API_SERVERipv6和ipv4只能写一种地址,如果该环境变量写的v6地址,实际访问使用443以外的端口,就会报错,所以要开启跨域。可以自己研究一下。建议先把IPv4弄好了再来尝试这个东西。一、放行端口
通信规则放行
21115-21117,其它选项保持默认就行。api网页端口21114和网页远程的端口21118-21119我们通过反代的方式,就不需要开放端口了。hbbs:21114(TCP): 用于api网页控制台。21115(TCP): 用于 NAT 类型测试。21116(TCP/UDP): 请注意21116应该同时为 TCP 和 UDP 启用。21116/UDP用于 ID 注册和心跳服务。21116/TCP用于 TCP 打洞和连接服务。21118(TCP): 用于Web 客户端的ID支持 WebSocket 端口。hbbr:21117(TCP): 用于中继服务。21119(TCP): 用于Web 客户端的中继支持 WebSocket 端口。二、使用S6镜像
2.S6镜像compose,更改里面中文的部分为自己的,删除不需要的环境变量和后面注释,如果不更换端口,推荐使用 network_mode: host 模式, 这样 P2P 直连功能才可以使用。
三、S6镜像配置lucky
前面两步略过,开始第三步,先创建一个web反向代理服务 (要开启TLS),监听你自定义的端口,例如【1999】,再添加三个rustdesk子规则,默认规则不用动,默认开关不用动。
① 创建反向代理服务(主规则)
② 创建反向代理服务(默认规则)
③ 创建反向代理服务(子规则)
1. 总览,一共三个
2. 创建反代api管理后台(子规则一个)
比如访问前端地址:api.域名.com:1999 反向代理到后端地址 10.10.10.1:21114

3.创建反代Websocket (WSS)(子规则两个)
两个WSS子规则前端域名这里要写上路径,跟后端一样,其他开关保持默认。

四、http跳转https
总览
上面我们已经成功创建了一个监听
1999的主规则和里面的三个子规则,现在再创建一个web重定向服务(主规则)(不开启TLS) 和里面的默认规则,用做http跳转https,监听上面你自定义的端口1999,填写Lucky变量。重点已框选出来。lucky官方HTTP跳转HTTPS教程最后的效果就是两个主规则,例如:
1. ipv6
2. ipv4 需要改成圈出来的地方
五、客户端配置
使用S6镜像id服务和中继服务并且没有更改默认端口就不用填端口,默认就是21116-21117,api使用了443的不用填,如果是1999这种自定义端口就要填;然后填写docker容器日志里面的密钥就可以开始使用了。普通镜像,在客户端填写的网址一定要加上端口,教程结束。
六、开始使用
1. 部署完了,有两个web服务:
2. 一个客户端服务:
ID和relay,前面放行了端口,现在在客户端添入ddns的域名就行。

使用普通镜像
21108:2111821109:21119使用了Docker端口映射。意思是将容器的21118映射到21108。这里如果不改,lucky会无法监听21118,会提示被占用,因为容器监听了这两个,lucky就监听不到了,S6镜像没有这个问题。普通镜像配置lucky
普通镜像lucky要多创建两个web服务来监听21118和21119,S6镜像不用,一个端口就可以使用"api","/ws/relay","/ws/id"了

所以新增两个web服务,监听21108和21109,再分别创建两个子规则,其他选项开关啥的默认即可。





添加两个反代子规则
前端地址:做好ddns的域名,
21118后端地址:http://10.10.10.1:21108/ws/id
21119后端地址:http://10.10.10.1:21109/ws/relay
访问https://做好ddns的域名:1999/webclient2 就能进入后台了。登录账号应该会自动填写服务器和密钥。
使用fail2ban开启登录防护
1.前面我们映射了log目录,然后openwrt安装fali2ban。
- /tmp/log/rustdeskapi:/app/runtime/#添加登录日志,方便通过fail2ban封禁异常登录2.创建登录失败过滤器
3. 创建监狱规则
创建 fail 2 ban 规则目录 (默认不存在)
Note
Maxretry=就是密码错误次数错误次数达到这个就封禁这个 IPBantime= 设置被封锁的时间间隔,如下表示 10 分钟,可以是秒 (s)、分钟 (m)、小时 (h)、天 (d),不带单位则默认为 s,-1 表示永久封锁。Findtime= 14400(4 小时) 检测的间隔时间,在间隔时间内,达到最大尝试次数maxretry设置的失败次数,则触发限制,禁止访问。Logpath= 具体的日志文件路径4. 重启
fail2ban5. 查看
fail2ban状态6. 查看登录错误次数以及封禁
7. 解除指定封禁
8. 解除所有封禁
Beta Was this translation helpful? Give feedback.
All reactions