RustDesk 是开源商业远程桌面,支持 self-host,文档详尽工具链完备社区健全。
rustdesk 实验
安装 rustdesk server
https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/
服务端存在两个可执行文件:
开放网络
vi /etc/sysconfig/iptables iptables-restore < /etc/sysconfig/iptables
|
docker-compose
config compose
services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command: hbbs -r <domain>:21117 volumes: - /root/2024-1-24-rustdesk/hbbs-data:/root depends_on: - hbbr restart: always
hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - /root/2024-1-24-rustdesk/hbbr-data:/root restart: always
|
docker-compose up 失败了。这个报错。意思是镜像太老了。
➜ 2024-1-24-rustdesk docker-compose -p rustdesk up Creating network "rustdesk_default" with the default driver Creating hbbr ... done Creating hbbs ... done Attaching to hbbr, hbbs hbbr | [2024-01-24T06:02:57Z ERROR hbbr::lic] Registered email required (-m option). Please pay and register on https://rustdesk.com/server. hbbs | [2024-01-24T06:02:58Z ERROR hbbs::lic] Registered email required (-m option). Please pay and register on https://rustdesk.com/server.
➜ 2024-1-24-rustdesk docker images | grep rust rustdesk/rustdesk-server latest b732f09f2d6e 2 years ago 85.3MB
$ docker pull rustdesk/rustdesk-server Using default tag: latest latest: Pulling from rustdesk/rustdesk-server Digest: sha256:bb758d0a1848add43ea45a04e735dc33bdd2ed7e4032d8560929b15bd1127a14 Status: Image is up to date for rustdesk/rustdesk-server:latest docker.io/rustdesk/rustdesk-server:latest $ docker images | grep rustdesk rustdesk/rustdesk-server latest 2970501b7978 7 weeks ago 96.3MB $ docker save rustdesk/rustdesk-server:latest -o rustdesk-server.tar $ dua rustdesk-server.tar 98.68 MB rustdesk-server.tar
➜ 2024-1-24-rustdesk docker load -i rustdesk-server.tar d3fa9d362c05: Loading layer [==================================================>] 75.18MB/75.18MB 64d8ba0af89e: Loading layer [==================================================>] 14.3MB/14.3MB c0cf2953b00b: Loading layer [==================================================>] 9.173MB/9.173MB 5f70bf18a086: Loading layer [==================================================>] 1.024kB/1.024kB The image rustdesk/rustdesk-server:latest already exists, renaming the old one with ID sha256:b732f09f2d6e65dbf6e8d1dfbeebeff3ea188adda1b6e071fcc65eb6176b9748 to empty string Loaded image: rustdesk/rustdesk-server:latest
➜ 2024-1-24-rustdesk docker images | grep rustdesk rustdesk/rustdesk-server latest 2970501b7978 7 weeks ago 96.3MB rustdesk/rustdesk-server <none> b732f09f2d6e 2 years ago 85.3MB
➜ 2024-1-24-rustdesk mkdir rustdesk; mv docker-compose.yml rustdesk/; cd rustdesk ➜ rustdesk docker-compose up -d ➜ rustdesk docker-compose logs -f hbbr is up-to-date hbbs is up-to-date Attaching to hbbr, hbbs hbbr | [2024-01-24 06:24:51.782760 +00:00] INFO [src/relay_server.rs:61] hbbr | [2024-01-24 06:24:51.782781 +00:00] INFO [src/relay_server.rs:76] hbbr | [2024-01-24 06:24:51.782784 +00:00] INFO [src/relay_server.rs:82] Listening on tcp :21117 hbbr | [2024-01-24 06:24:51.782786 +00:00] INFO [src/relay_server.rs:84] Listening on websocket :21119 hbbr | [2024-01-24 06:24:51.782795 +00:00] INFO [src/relay_server.rs:87] Start hbbr | [2024-01-24 06:24:51.782832 +00:00] INFO [src/relay_server.rs:105] DOWNGRADE_THRESHOLD: 0.66 hbbr | [2024-01-24 06:24:51.782835 +00:00] INFO [src/relay_server.rs:115] DOWNGRADE_START_CHECK: 1800s hbbr | [2024-01-24 06:24:51.782837 +00:00] INFO [src/relay_server.rs:125] LIMIT_SPEED: 4Mb/s hbbr | [2024-01-24 06:24:51.782840 +00:00] INFO [src/relay_server.rs:136] TOTAL_BANDWIDTH: 1024Mb/s hbbr | [2024-01-24 06:24:51.782842 +00:00] INFO [src/relay_server.rs:146] SINGLE_BANDWIDTH: 16Mb/s hbbs | [2024-01-24 06:24:52.390407 +00:00] INFO [src/common.rs:143] Private/public key written to id_ed25519/id_ed25519.pub hbbs | [2024-01-24 06:24:52.390429 +00:00] INFO [src/peer.rs:84] DB_URL=./db_v2.sqlite3 hbbs | [2024-01-24 06:24:52.441011 +00:00] INFO [src/rendezvous_server.rs:99] serial=0 hbbs | [2024-01-24 06:24:52.441032 +00:00] INFO [src/common.rs:46] rendezvous-servers=[] hbbs | [2024-01-24 06:24:52.441035 +00:00] INFO [src/rendezvous_server.rs:101] Listening on tcp/udp :21116 hbbs | [2024-01-24 06:24:52.441037 +00:00] INFO [src/rendezvous_server.rs:102] Listening on tcp :21115, extra port for NAT test hbbs | [2024-01-24 06:24:52.441039 +00:00] INFO [src/rendezvous_server.rs:103] Listening on websocket :21118 hbbs | [2024-01-24 06:24:52.441057 +00:00] INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp [::]:21116: Ok(212992) hbbs | [2024-01-24 06:24:52.441104 +00:00] INFO [src/rendezvous_server.rs:138] mask: None hbbs | [2024-01-24 06:24:52.441108 +00:00] INFO [src/rendezvous_server.rs:139] local-ip: "" hbbs | [2024-01-24 06:24:52.441132 +00:00] INFO [src/common.rs:46] relay-servers=["121.40.102.177:21117"] hbbs | [2024-01-24 06:24:52.441179 +00:00] INFO [src/rendezvous_server.rs:153] ALWAYS_USE_RELAY=N hbbs | [2024-01-24 06:24:52.441197 +00:00] INFO [src/rendezvous_server.rs:185] Start hbbs | [2024-01-24 06:24:52.442243 +00:00] INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp [::]:0: Ok(212992) hbbs | [2024-01-24 06:24:52.443419 +00:00] INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp 0.0.0.0:0: Ok(212992)
|
配置 rustdesk client
使用很简单,就是设置 ID/中继服务器 的时候要注意一下
- ID 服务器就是
server-domain:21116
- 注意要用域名,不能用 IP
- 实验中使用 IP 填写,在「共享屏幕」页尝试加入 RustDesk 网络,会一直失败
- 改为使用域名填写,「共享屏幕」页不再报错
- 中继服务器别填
- 客户端连到 ID 服务器的时候会向 hbbs 查询中继服务器的
- 所以如果 hbbs 启动的时候有
-r ...:21117,那就别写中继服务器这一栏
- 客户端这边手动填写的中继服务器优先级高于
hbbs -r 配置的
- API 服务器忽略,是 Pro 版的东西
- Key 建议是要填
- 是 hbbs 启动以后会自动生成的
- 以实验中的配置而言,就是在
/root/2024-1-24-rustdesk/hbbs-data/id_ed25519.pub
- 打印这个公钥的内容,复制粘贴就好了(或者 vi 进去看看,注意别复制错了)