原帖地址:https://vincent-233.github.io/2025/07/11/rustdesk-setup/
目录:
在没有公网IP的情况下想远程访问家里的电脑,网上有很多方法,之前也用过TeamViewer和向日葵,均需要注册账号,免费版会有更多限制,而且有广告,体验并不好。正好最近阿里云vps搞活动,于是准备入手一台搭建 RustDesk 使用。本文记录下本人的搭建过程。
安装rustdesk-server
本人买的ubuntu镜像的阿里云vps,按官网推荐的 docker 方式安装server,也有其他安装选项,可自行选择。
远程SSH登陆vps后安装Docker:
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
然后生成 docker compose 文件模版:
wget rustdesk.com/oss.yml -O compose.yml
生成的模版文件内容如下,可按需修改参数,比如存放日志和密钥信息的目录参数 volumes 以及 image 版本
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
确认好配置文件之后,运行 docker 命令启动服务:
docker compose up -d
用 docker ps 确认容器运行状态,若一切正常会在 data 目录下生成几个文件,其中有一个id_ed25519.pub 为公钥,记下其内容,后面需要配置在 rustdesk 客户端中。
vps 开放相关端口
在云端控制台配置防火墙规则,开放 tcp 的 21114 到 21119 端口,以及 udp 的 21116 端口。 
vps机器上也开启一下端口:
ufw allow 21114:21119/tcp
ufw allow 21116/udp
sudo ufw enable
配置客户端
主控和被控端下载对应平台的客户端后安装,两边都配置上vps的公网IP和上面第一步服务启动时生成的公钥,即可正常使用

问题与解决
在国内的网络环境下,多少会遇到一些问题,这里记录一下我遇到的问题和解决办法
- docker compose 报错,镜像拉取超时
国内网络无法顺畅连官方docker hub,需加入阿里云的 docker 镜像源,甚至加入其它第三方源。
镜像源配置文件路径为/etc/docker/daemon.json,按如下格式配置:{ "registry-mirrors": [ "https://xxxxx.mirror.aliyuncs.com" ,"https://docker.m.daocloud.io" ] } - docker compose启动成功,但无法生成公钥文件用
docker compose logs查看日志之后发现报错:ERROR … Registered email required (-m option). Please pay and register on https://rustdesk.com/server.原因是阿里镜像源的latest版本太过老旧,建议修改为指定版本,我目前用1.1.14版本没问题, 将上述 compose.yml 文件中的 latest 修改为1.1.14或其它较新版本后正常。
其它说明
- 如何确认从第三方网站拉取的镜像和官方的一致?担心第三方镜像不安全的,可检查镜像的digest的属性,核对一致说明镜像和官方一致。
以rustdesk-server:1.1.14版本为例,运行命令docker images --digests可获取DIGEST值,与官网上的INDEX DIGEST的值进行对比。 - 如何判断连接是直接还是通过 Relay Server 中转?鼠标放到连接 session 的标签页上即可出现 direct 还是 Relayed 的字样

- 远程到家里电脑还有别的方式推荐吗?
如果是控制Windows电脑,还可用Tailscale等工具异地组网之后直接通过Microsoft Remote Desktop进行连接
参考链接
https://developer.aliyun.com/article/110806
https://github.com/rustdesk/rustdesk-server/issues/45
https://github.com/DaoCloud/public-image-mirror
https://www.cnblogs.com/ryanyangcs/p/18186163