忍受够了向日葵和ToDesk的付费服务,并且很多场景下没法优先控制。就使用了Rustdesk作为替代品。
Rustdesk官方提供了免费的中转服务器,唯一的问题是开源版不提供WEB界面和登录管理等功能。但是官方也不限制第三方的API管理。这也让预算有限的用户有了更多选择。
RustDesk客户端下载界面
安装
官方开源版(无WEB界面)
这里贴一下官方的开源版教程,安装官方的开源服务端,仅仅进行中转链接,不支持web管理。推荐直接docker部署。同时官方也提供了system和deb包的安装。详细可以看一下官方的教程。
无论哪种安装方式,都要在防火墙侧放行如下端口
hbbs:21114(TCP): 用于网页控制台,仅在Pro版本中可用。21115(TCP): 用于 NAT 类型测试。21116(TCP/UDP): 请注意21116应该同时为 TCP 和 UDP 启用。21116/UDP用于 ID 注册和心跳服务。21116/TCP用于 TCP 打洞和连接服务。21118(TCP): 用于支持网页客户端。
hbbr:21117(TCP): 用于中继服务。21119(TCP): 用于支持网页客户端。
如果您不需要网页客户端支持,可以禁用相应的端口 21118、21119。(开源版不支持)
Docker compose部署
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped第三方API实现(有web面)
这里使用的是lejianwen实现的WEB-AP,下面是Github仓库,使用 Go 实现了 RustDesk 的 API,并包含了 Web Admin 和 Web 客户端。RustDesk 是一个远程桌面软件,提供了自托管的解决方案。
这里直接使用其s6镜像,仓库在下面:
解决当客户端登录了Api账号时链接超时的问题
s6镜像添加了
Api支持,Api开源地址 https://github.com/lejianwen/rustdesk-api是否必须登录才能链接,
MUST_LOGIN默认为N,设置为Y则必须登录才能链接RUSTDESK_API_JWT_KEY,设置后会通过JWT校验token的合法性
docker-compose
networks:
rustdesk-net:
external: false
services:
rustdesk:
ports:
- 21114:21114 #web界面,反代本端口即可,为了安全起见,请在服务器防火墙禁用外部对于本端口的访问。
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: lejianwen/rustdesk-server-s6:latest
environment:
- RELAY=<relay_server[:port]>
- ENCRYPTED_ONLY=1
- MUST_LOGIN=N
- TZ=Asia/Shanghai
- RUSTDESK_API_RUSTDESK_ID_SERVER=<id_server[:21116]> #格式为https://rustdesk.example.com:port形式
- RUSTDESK_API_RUSTDESK_RELAY_SERVER=<relay_server[:21117]>
- RUSTDESK_API_RUSTDESK_API_SERVER=http://<api_server[:21114]>
- RUSTDESK_API_KEY_FILE=/data/id_ed25519.pub
- RUSTDESK_API_JWT_KEY=xxxxxx # jwt key 可使用随机生成的字符串
volumes:
- /data/rustdesk/server:/data
- /data/rustdesk/api:/app/data #将数据库挂载
networks:
- rustdesk-net
restart: unless-stopped
使用
然后通过反代网址访问WEB界面即可。在客户端的ID中继服务器配置界面配置信息。这里我采用了绑定域名解析IP地址的方式,解析类型为A,便于更换服务器直接替换解析目标地址即可。
API服务器直接使用反代的21114端口的域名,如果绑定了SSL,需要添加https:// 前面。key需要在映射的/data 目录下找id_ed25519.pub 文件,用记事本打开,获取秘钥。即可完成

评论