在追求高效、轻量级的远程桌面体验时,RustDesk远程控制软件无疑是一个值得考虑的选择。结合 Docker,我们可以轻松地在 Ubuntu Server 22.04 上部署 RustDesk 服务器。
一、准备工作
首先,确保你拥有以下资源:
1、Ubuntu Server 22.04 minimal ISO
2、Visual Studio Code(或你喜欢的任何SSH客户端)
3、公共 IP 地址(动态或静态均可)
4、能够在路由器或ISP调制解调器上设置端口转发
5、VPS/VM 规格至少1GB RAM(推荐)
二、安装Ubuntu Server
1、选择语言。
2、选择键盘布局。
3、网络配置,请保留DHCP。
4、应该自动选择镜像。
5、选择最小化以减少内存和磁盘使用量。
6、使用整个磁盘。
7、确认磁盘选项。
8、设置服务器名称、用户名和密码。
9、转到Ubuntu 专业版注册,或者可以立即注册。
10、安装OpenSSH。
11、跳过此页面上的任何内容,因为它是 snap 包。
12、安装后,它可能会进行自动更新,可以让它更新,完成后重新启动。
三、配置服务器
1、打开VSCode,点击左上角的按钮,选择SSH。
2、输入,例如 ,然后输入用户名@IPdemo用户@192.168.2.98Enter。
3、选择系统Linux。
4、确认服务器的指纹。
5、输入用户的密码。
6、打开个人文件夹。
7、点击Yes, I trust the authors。
8、开放式终端。
9、安装软件包。
sudo apt install docker.io docker-compose python3-pip curl git vim nano zram-config -y
10、禁用磁盘交换
检查交换文件是否存在
sudo vim /etc/fstab
如果发现类似以下内容:
/swap.img none swap sw 0 0
如果没有:键入 then 退出。
如果是:按 激活编辑模式,请按如下方式注释该行:i#
#/swap.img none swap sw 0 0
然后按并键入保存更改。
11、调整 ZRAM 大小
ZRAM的意思是“压缩内存”,效率更高,不会占用磁盘空间。
sudo vim /usr/bin/init-zram-swapping
找到:
mem=$((totalmem / 2 * 1024))
并将其调整为:
mem=$((totalmem * 2 * 1024))
保存并退出。
12、设置时区
查找时区维基百科上的数据
sudo timedatectl set-timezone "Asia/Taipei"
13、重新启动
sudo reboot
重新启动后,重新连接 VSCode 并打开终端。
14、删除swap.img
如果没有它,请跳过。
我们用ZRAM替换了swap文件,现在我们可以删除,如果你的名字不同,可以替换成其他人。
sudo rm /swap.img
四、设置RustDesk服务器
1、运行此命令以创建所需的文件夹一次:
cd ~ && mkdir -p docker/rustdesk-server/data
2、创建compose.yml
右键单击文件夹,创建名为 的新文件。rustdesk-servercompose.yml将其粘贴到 compose.yml,应将 rustdesk.example.comhbbr(哪个指向 ) 替换为将指向服务器的域。
可以临时修改服务器的 LAN IP 的线路(如果要在 LAN 中部署)以确保其正常工作。验证服务器是否正常工作后,应改回原来的样子。
services: hbbs: container_name: hbbs image: rustdesk/rustdesk-server:latest command: hbbs -r rustdesk.example.com:21117 volumes: - ./data:/root network_mode: host depends_on: - hbbr restart: always hbbr: container_name: hbbr image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./data:/root network_mode: host restart: always # Because using docker host mode # Just in case you forgot the ports: # 21114 TCP for web console, only available in Pro version # 21115 TCP for NAT type test # 21116 TCP TCP hole punching # 21116 UDP heartbeat/ID server # 21117 TCP relay # 21118/21119 TCP for web socket if you want to run web client
3、启动服务器
cd ~/docker/rustdesk-server sudo docker-compose up -d
公钥将如下所示:
4、在路由器/ VPS上设置端口转发
打开以下必需的端口:
- 21114适用于 Web 控制台的 TCP,仅在 Pro 版本中可用;
- 21115用于 NAT 类型测试的 TCP;
- 21116TCP TCP打孔;
- 21116UDP 检测信号/ID 服务器;
- 21117TCP 中继;
- 21118/21119如果要运行 Web 客户端,则用于 Web 套接字的 TCP。
五、常见问题
1、修改后如何应用设置?
再次运行此命令:
sudo docker-compose up -d
2、如何停止和删除容器?
sudo docker-compose down
3、如何备份服务器?
- 首先,运行,而不是下载它。sudo docker-compose down
- 如果要上传,请将它们拖放到 VSCode Explorer。
4、如何自动更新容器?
创建compose.yml文件夹并放入其中。
mkdir ~/docker/watchtower
将时区更改为时区。如果未指定任何容器名称,它将更新所有容器。
在以下命令中,它将在每天凌晨 3 点运行:
version: "3" services: watchtower: image: containrrr/watchtower:latest container_name: watchtower network_mode: bridge volumes: - /var/run/docker.sock:/var/run/docker.sock environment: TZ: Asia/Taipei command: --cleanup --schedule "0 0 3 * * *" hbbr hbbs restart: always