结论
本文使用的阿里云的ECS服务器
直接通过 SSH 登录 Ubuntu 云服务器,在终端执行 wget 命令,脚本就会下载到当前目录。
RustDesk 官方文档目前仍列出了这个 Techahold systemd 安装脚本;它会安装 hbbs、hbbr,并注册为 systemd 服务。Techahold 仓库说明它支持基于 Debian 的 64 位 Linux,Ubuntu 属于此范围。(RustDesk)
1. 登录你的 Ubuntu 云服务器
在 Windows PowerShell、CMD 或终端里执行:
bash
ssh ubuntu@你的服务器公网IP
例如:
bash
ssh ubuntu@123.123.123.123
有些云服务器默认用户可能是:
bash
ssh root@你的服务器公网IP
或者:
bash
ssh admin@你的服务器公网IP
登录成功后,你会看到类似:
text
ubuntu@server:~$
2. 安装下载工具
在服务器终端执行:
bash
sudo apt update
sudo apt install -y wget curl ca-certificates
然后创建一个安装目录:
bash
mkdir -p ~/rustdesk-install
cd ~/rustdesk-install
3. 下载 Techahold 安装脚本
执行:
bash
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh -O install.sh
这里的含义是:
text
wget 下载文件
URL 文件在 GitHub 上的位置
-O install.sh 下载后保存为 install.sh
检查是否下载成功:
bash
ls -lh install.sh
正常应该看到类似:
text
-rw-r--r-- 1 ubuntu ubuntu 15K Aug 2 01:30 install.sh
也可以查看脚本开头:
bash
head -n 20 install.sh
Techahold 仓库中的脚本会识别 Ubuntu,通过 apt-get 安装依赖,然后把 RustDesk Server 下载到 /opt/rustdesk,并创建 rustdesksignal.service 和 rustdeskrelay.service。
4. 给脚本执行权限
bash
chmod +x install.sh
检查权限:
bash
ls -l install.sh
应该出现:
text
-rwxr-xr-x
其中的 x 表示可执行。
5. 推荐执行方式
方案 A:直接交互安装
bash
./install.sh
运行后脚本会问你几个问题。
连接方式
大致会出现:
text
Choose your preferred connection method:
1) IP
2) DNS/Domain
没有域名就输入:
text
1
然后回车。
是否安装 HTTP 配置下载服务
脚本可能询问是否创建预配置客户端安装文件。
建议选:
text
No
或跳过 HTTP 服务。
因为这个 HTTP 服务会额外监听 8000 端口。普通 RustDesk 客户端手动填写 IP 和 Key 即可,不需要它。Techahold 仓库也说明,只有启用预配置安装文件时才需要开放 8000/TCP。(GitHub)
方案 B:直接使用公网 IP,并且不安装 HTTP 服务
这是更省事的执行方式:
bash
./install.sh --resolveip --skip-http
参数含义:
text
--resolveip 自动获取服务器公网 IP
--skip-http 不安装额外的 HTTP 文件下载服务器
这些参数是当前脚本明确支持的。
我更推荐这个方式,因为它减少一个没有必要的 8000 端口和一个额外的 gohttpserver 服务。
6. 安装过程中需要输入密码怎么办
脚本内部会调用 sudo,可能出现:
text
[sudo] password for ubuntu:
输入服务器用户密码即可。
Linux 输入密码时,屏幕不会显示星号,也不会显示字符,这是正常现象。输入完成后按回车。
不要输入:
bash
sudo ./install.sh
更建议普通用户直接运行:
bash
./install.sh --resolveip --skip-http
因为脚本本身会在需要权限时调用 sudo。这样创建的 RustDesk 服务会以当前普通用户运行,而不是不必要地以 root 用户运行。脚本的 systemd 配置确实会把当前执行用户写入 User= 和 Group=。
如果你本来就是使用 root 登录,则可以执行:
bash
./install.sh --resolveip --skip-http --no-sudo
7. 安装结束后记录两个内容
安装完成时会显示类似:
text
Your IP/DNS Address is 123.123.123.123
Your public key is xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
需要记录:
text
服务器公网 IP
Public Key 公钥
忘记保存也没关系,可以重新查看公钥:
bash
cat /opt/rustdesk/id_ed25519.pub
注意客户端填写的是:
text
id_ed25519.pub
不是:
text
id_ed25519
后者是私钥,不要发送给别人。
8. 检查 systemd 服务
这个脚本创建的服务名称不是 hbbs.service 和 hbbr.service,而是:
text
rustdesksignal.service
rustdeskrelay.service
检查状态:
bash
sudo systemctl status rustdesksignal --no-pager
sudo systemctl status rustdeskrelay --no-pager
正常应看到:
text
Active: active (running)
也可以一次查看:
bash
systemctl is-active rustdesksignal rustdeskrelay
正常输出:
text
active
active
重启服务:
bash
sudo systemctl restart rustdesksignal
sudo systemctl restart rustdeskrelay
Techahold 仓库给出的服务名称和重启命令也是这两个。(GitHub)
9. 检查端口监听
执行:
bash
sudo ss -lntup | grep -E '2111[4-9]'
至少应该看到:
text
21115/TCP
21116/TCP
21116/UDP
21117/TCP
RustDesk 官方安装文档要求开放:
text
TCP 21114-21119
UDP 21116
(RustDesk)
10. 配置 Ubuntu 自带防火墙
你的云安全组已经开放全部端口,但 Ubuntu 内部的 UFW 仍可能阻止连接。
先查看:
bash
sudo ufw status
开放 RustDesk 端口:
bash
sudo ufw allow 21115:21119/tcp
sudo ufw allow 21116/udp
确认 SSH 端口也已开放,避免把自己锁在服务器外:
bash
sudo ufw allow 22/tcp
然后:
bash
sudo ufw enable
sudo ufw status numbered
你的云安全组目前开放了全部端口,安装完成后建议将云安全组收紧,只开放:
text
22/TCP SSH,最好限制为你自己的公网 IP
21115-21119/TCP RustDesk
21116/UDP RustDesk 打洞与心跳
没有启用 HTTP 安装文件服务,就不开放 8000/TCP。
11. 配置 RustDesk 客户端
Windows RustDesk 客户端打开:
text
设置 → 网络 → 解锁网络设置
填写:
text
ID 服务器:你的服务器公网IP
中继服务器:留空
API 服务器:留空
Key:/opt/rustdesk/id_ed25519.pub 的完整内容
例如:
text
ID 服务器:123.123.123.123
Key:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
官方文档说明,安装结束后把 IP/DNS 和 Key 分别填入客户端的 ID Server 和 Key 字段,其他字段可以留空。(RustDesk)
wget 下载失败时
先测试 GitHub:
bash
curl -I https://raw.githubusercontent.com
然后尝试用 curl 下载:
bash
curl -fL \
https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh \
-o install.sh
确认文件不是错误页面:
bash
file install.sh
head -n 5 install.sh
正常第一行应该是:
bash
#!/bin/bash
如果出现:
text
Connection reset by peer
Could not resolve host
Operation timed out
这说明服务器到 GitHub 的出站网络或 DNS 有问题,不是命令写错。此时不要从不明镜像下载脚本,可以在本地电脑下载 install.sh,再通过 SCP 上传:
powershell
scp .\install.sh ubuntu@服务器公网IP:/home/ubuntu/
然后在服务器执行:
bash
cd /home/ubuntu
chmod +x install.sh
./install.sh --resolveip --skip-http
最直接的一套命令就是:
bash
sudo apt update
sudo apt install -y wget curl ca-certificates
mkdir -p ~/rustdesk-install
cd ~/rustdesk-install
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh -O install.sh
chmod +x install.sh
./install.sh --resolveip --skip-http
安装后验证:
bash
systemctl is-active rustdesksignal rustdeskrelay
sudo ss -lntup | grep -E '2111[4-9]'
cat /opt/rustdesk/id_ed25519.pub