bash
#修改脚本中的IP和password
# 设置脚本执行权限
chmod +x deploy-rustdesk.sh manage-rustdesk.sh
# 执行部署
./deploy-rustdesk.sh
rustdesk-server.yml
bash
version: '3'
services:
hbbs:
image: rustdesk/rustdesk-server:latest
container_name: hbbs
command: hbbs -r xxx.IP.xxx.xxx:26116 -k password
ports:
- "21115:21115" # NAT 类型测试
- "21116:21116" # TCP 打洞
- "21116:21116/udp" # UDP 心跳
- "21118:21118" # 网页客户端(可选)
volumes:
- /developer/docker/rustdesk/data:/root
restart: unless-stopped
hbbr:
image: rustdesk/rustdesk-server:latest
container_name: hbbr
command: hbbr -k yourpassword
ports:
- "21117:21117" # 中继服务
- "21119:21119" # 网页客户端(可选)
volumes:
- /developer/docker/rustdesk/data:/root
restart: unless-stopped
deploy-rustdesk.sh
bash
#!/bin/bash
echo "正在部署RustDesk服务器..."
# 检查Docker是否安装
if ! command -v docker &> /dev/null; then
echo "Docker未安装,正在安装Docker..."
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
echo "Docker安装完成"
fi
# 检查Docker Compose是否安装
if ! command -v docker-compose &> /dev/null; then
echo "Docker Compose未安装,正在安装..."
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
echo "Docker Compose安装完成"
fi
# 创建数据目录
mkdir -p /developer/docker/rustdesk/data
# 设置防火墙
echo "配置防火墙..."
if command -v firewall-cmd &> /dev/null; then
sudo firewall-cmd --permanent --add-port=21115-21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
sudo firewall-cmd --reload
echo "防火墙配置完成"
fi
# 启动服务
echo "启动RustDesk服务..."
docker-compose -f rustdesk-server.yml up -d
echo "RustDesk服务器部署完成!"
echo "请检查服务状态: docker-compose -f rustdesk-server.yml ps"
echo "查看日志: docker-compose -f rustdesk-server.yml logs"
管理服务 manage-rustdesk.sh
bash
#!/bin/bash
# RustDesk服务管理脚本
case "$1" in
start)
docker-compose -f rustdesk-server.yml up -d
;;
stop)
docker-compose -f rustdesk-server.yml down
;;
restart)
docker-compose -f rustdesk-server.yml restart
;;
status)
docker-compose -f rustdesk-server.yml ps
;;
logs)
docker-compose -f rustdesk-server.yml logs -f
;;
update)
docker-compose -f rustdesk-server.yml pull
docker-compose -f rustdesk-server.yml down
docker-compose -f rustdesk-server.yml up -d
;;
*)
echo "使用方法: $0 {start|stop|restart|status|logs|update}"
exit 1
;;
esac