远程桌面从微软的RDP到各种第三方,陆续用了不少,用的时间最长的最开始是Teamview,体验很好,被商业化后陆续短时间尝试过向日葵、qq远程协助、Anydesk、Rustdesk、jumpdesk,均因为延迟太大和没有移动客户端这些问题被放弃,期间用了很长时间的Todesk,体验也不错,但不幸的是之后也商业化了,对个人使用的限制越来越过分。再之后很长一段时间都在使用Parsec,这个是目前我用下来强推的远程桌面应用,延迟低到个位毫秒。但最大的缺点是需要翻墙环境认证,另外没有ios客户端。
随着春暖花开万物复苏,手不禁又开始犯贱,捡起之前的Rustdesk尝试本地自建服务,结果令人吃惊,3ms的延迟和本地操作几无区别。这里记录下部署过程,总体来说还是很简单的。
首先我的网络环境是联通家宽,有公网ip。接下来ssh到一台N100的ubuntu主机
运行以下命令安装Docker
sudo apt update
sudo apt install docker.io docker-compose -y
在 Ubuntu 中创建一个用于存放 RustDesk 数据的目录:
mkdir -p ~/rustdesk-server && cd ~/rustdesk-server
创建 docker-compose.yml 配置文件:
nano docker-compose.yml
将以下内容复制并粘贴到文件中。注意:其中我的域名需要替换为实际的域名或公网IP:
version: '3'
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs -r xxxxx.hdmc.fun:21117 -k _
volumes:
- ./data:/root
network_mode: "host"
restart: always
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr -k _
volumes:
- ./data:/root
network_mode: "host"
restart: always
保存并退出(在 nano 中按 Ctrl + O 保存,Enter 确认,Ctrl + X 退出)。
有墙环境下现在启动服务大概率会因为超时失败,建议直接将加速源写入 /etc/docker/daemon.json:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.1ms.run",
"https://docker.xuanyuan.me",
"https://docker.m.daocloud.io"
]
}
EOF
新加载配置并重启 Docker 服务
sudo systemctl daemon-reload
sudo systemctl restart docker
重新拉取并启动 RustDesk:
cd ~/rustdesk-server
sudo docker-compose up -d
等待几秒后会显示
Creating hbbr ... done
Creating hbbs ... done
此时服务就已经跑起来了
接下来运行以下命令查看Key
cat data/id_ed25519.pub
屏幕上会输出一串很长的字符(例如 ..JRq+j1Vz++ic1ZwF0u5cEHiyRq4=),请复制并保存这串字符,稍后配置客户端时会用到。
在Ubuntu系统上放行端口
sudo ufw allow 21115/tcp
sudo ufw allow 21116/tcp
sudo ufw allow 21116/udp
sudo ufw allow 21117/tcp
sudo ufw reload
路由器上设置端口映射
把公网访问的这些端口转发到局域网内的N100主机
到此大功告成