最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker輕松自建RustDesk服務(wù)器的實現(xiàn)步驟

 更新時間:2025年09月01日 10:54:29   作者:MUZ木  
本文介紹通過Docker和自動化腳本在Linux服務(wù)器部署RustDesk的hbbs和hbbr組件,實現(xiàn)自建私有服務(wù)器以提升隱私、安全與靈活性,并提供客戶端配置及注意事項,感興趣的可以了解一下

RustDesk 是一款功能強大的開源遠程桌面軟件,讓您完全掌控自己的數(shù)據(jù)和連接。相比依賴第三方服務(wù),自建 RustDesk 服務(wù)器能顯著提升隱私性、安全性和靈活性。本文將詳細(xì)介紹如何通過 Docker 和一個自動化 Bash 腳本,在 Linux 服務(wù)器上快速部署 RustDesk 的服務(wù)端組件:hbbs(ID/注冊服務(wù)器)和 hbbr(中繼服務(wù)器)。

為什么選擇自建 RustDesk 服務(wù)器?

  • 數(shù)據(jù)隱私:所有連接和元數(shù)據(jù)都存儲在您自己的服務(wù)器上,避免第三方訪問。
  • 安全性:自定義服務(wù)器安全設(shè)置,并使用私有密鑰實現(xiàn)端到端加密。
  • 無限制:擺脫公共服務(wù)器的連接數(shù)或帶寬限制。
  • 定制性:支持高級配置,滿足特定需求。

先決條件

在開始之前,請確保滿足以下條件:

  • 一臺具有公網(wǎng)靜態(tài) IP 地址的 Linux 服務(wù)器(推薦 Ubuntu、CentOS 或 Debian)。
  • 服務(wù)器上已安裝 Docker(參考 Docker 官方文檔 安裝)。
  • 擁有服務(wù)器的 sudo 或 root 權(quán)限。
  • 熟悉基本的 Linux 命令行操作。
  • 確保服務(wù)器防火墻已開放以下端口:
    • TCP:21115、21116、21117、21118
    • UDP:21116、21118

andoli

部署 RustDesk 服務(wù)器需要兩個主要組件:hbbs(處理客戶端注冊和 ID 分配)以及 hbbr(處理中繼連接)。本指南提供了一個 Bash 腳本,自動化部署這兩個組件,并確保數(shù)據(jù)持久化和密鑰生成。

部署腳本

以下是一個自動化部署 RustDesk 服務(wù)器的 Bash 腳本。它會創(chuàng)建 Docker 容器、設(shè)置數(shù)據(jù)持久化目錄,并生成和共享密鑰。

#!/bin/bash

# --- 配置 ---
# !!! 重要: 公網(wǎng)服務(wù)器 IP 地址 !!!
SERVER_IP="YOUR_SERVER_PUBLIC_IP" # 請?zhí)鎿Q為您的公網(wǎng) IP

# --- 服務(wù)器的密鑰參數(shù) ---
# 使用 "_" 來強制啟用密鑰。如果 HBBS_DATA_DIR 中存在密鑰,則使用它們,否則將生成新密鑰。
# 客戶端需要 id_ed25519.pub 中的公鑰。
KEY_PARAMETER="_" # 推薦:強制使用密鑰

# 用于持久化的數(shù)據(jù)目錄 (在腳本所在目錄下創(chuàng)建)
BASE_DATA_DIR="./rustdesk_server_data"
HBBS_DATA_DIR="${BASE_DATA_DIR}/hbbs" # hbbs 的數(shù)據(jù)和密鑰將存放在這里
HBBR_DATA_DIR="${BASE_DATA_DIR}/hbbr" # hbbr 的數(shù)據(jù)目錄 (密鑰從 HBBS_DATA_DIR 共享)

# Docker 鏡像
RUSTDESK_IMAGE="rustdesk/rustdesk-server"

# --- 腳本開始 ---
echo "RustDesk 服務(wù)器部署腳本"
echo "---------------------------------"

# 檢查 SERVER_IP 是否已配置
if [ "${SERVER_IP}" == "YOUR_SERVER_PUBLIC_IP" ] || [ -z "${SERVER_IP}" ]; then
    echo "錯誤:請修改腳本,將 SERVER_IP 變量設(shè)置為您的公網(wǎng) IP 地址。"
    exit 1
fi

# 檢查 Docker
if ! command -v docker &> /dev/null
then
    echo "錯誤:找不到 Docker 命令。請先安裝 Docker。"
    exit 1
fi
echo "Docker 已找到。"
echo ""

# --- 1. 停止并移除已存在的 RustDesk 容器 ---
echo "正在停止并移除已存在的 RustDesk 容器 (hbbs, hbbr)..."
if sudo docker ps -a --format '{{.Names}}' | grep -qE '^(hbbs|hbbr)$'; then
    sudo docker stop hbbs hbbr > /dev/null 2>&1 || true
    sudo docker rm hbbs hbbr > /dev/null 2>&1 || true
    echo "已存在的 hbbs 和 hbbr 容器已停止并移除。"
else
    echo "未找到名為 hbbs 或 hbbr 的舊容器。"
fi
echo ""

# --- 2. 創(chuàng)建數(shù)據(jù)目錄 ---
echo "服務(wù)器 IP: ${SERVER_IP}"
echo "HBBS 數(shù)據(jù) (及密鑰) 目錄: ${HBBS_DATA_DIR}"
echo "HBBR 數(shù)據(jù)目錄: ${HBBR_DATA_DIR}"
echo ""

echo "正在創(chuàng)建數(shù)據(jù)目錄 (如果不存在)..."
mkdir -p "${HBBS_DATA_DIR}"
mkdir -p "${HBBR_DATA_DIR}"
echo "數(shù)據(jù)目錄已確保存在。"
echo ""

# --- 3. 啟動 HBBS (信令服務(wù)器) ---
echo "正在啟動 HBBS (信令服務(wù)器)..."
sudo docker run -d \
  --name hbbs \
  -p 21115:21115 \
  -p 21116:21116 \
  -p 21116:21116/udp \
  -v "${HBBS_DATA_DIR}":/root \
  --restart unless-stopped \
  "${RUSTDESK_IMAGE}" \
  hbbs -k "${KEY_PARAMETER}" -r "${SERVER_IP}"

echo "正在等待 HBBS 初始化 (約 5 秒)..."
sleep 5

# 檢查 hbbs 是否已啟動并生成密鑰
if [ ! -f "${HBBS_DATA_DIR}/id_ed25519.pub" ]; then
    echo "錯誤:HBBS 啟動后未找到公鑰文件 ${HBBS_DATA_DIR}/id_ed25519.pub。"
    echo "請檢查 HBBS 日志: sudo docker logs hbbs"
    sudo docker logs hbbs
    echo "正在清理失敗的 HBBS 容器..."
    sudo docker stop hbbs > /dev/null 2>&1 || true
    sudo docker rm hbbs > /dev/null 2>&1 || true
    exit 1
fi
PUBLIC_KEY=$(cat "${HBBS_DATA_DIR}/id_ed25519.pub")
echo "HBBS 已啟動,公鑰已獲取。"
echo ""

# --- 4. 啟動 HBBR (中繼服務(wù)器) ---
echo "正在啟動 HBBR (中繼服務(wù)器)..."
# HBBR 掛載 HBBS_DATA_DIR 以共享由 HBBS 生成的密鑰
sudo docker run -d \
  --name hbbr \
  -p 21117:21117 \
  -p 21118:21118 \
  -p 21118:21118/udp \
  -v "${HBBS_DATA_DIR}":/root \
  --restart unless-stopped \
  "${RUSTDESK_IMAGE}" \
  hbbr -k "${KEY_PARAMETER}"

echo "正在等待 HBBR 初始化 (約 3 秒)..."
sleep 3

# 檢查 hbbr 是否啟動
if ! sudo docker ps --filter "name=hbbr" --filter "status=running" --format '{{.Names}}' | grep -q '^hbbr$'; then
    echo "錯誤: HBBR 容器未能成功啟動或未處于運行狀態(tài)。"
    echo "請檢查 HBBR 日志: sudo docker logs hbbr"
    sudo docker logs hbbr
    echo "正在清理 HBBS 和 HBBR 容器..."
    sudo docker stop hbbs hbbr > /dev/null 2>&1 || true
    sudo docker rm hbbs hbbr > /dev/null 2>&1 || true
    exit 1
fi
echo "HBBR 已啟動。"
echo ""

# --- 部署摘要 ---
echo "--- 部署摘要 ---"
echo "RustDesk 服務(wù)器容器 (hbbs 和 hbbr) 現(xiàn)在應(yīng)該正在運行。"
echo "您可以使用以下命令檢查它們的狀態(tài): sudo docker ps -a"
echo "您可以使用以下命令查看日志: sudo docker logs hbbs  或  sudo docker logs hbbr"
echo ""
echo "--- 客戶端配置 ---"
echo "在您的 RustDesk 客戶端中,請按如下配置:"
echo "  ID 服務(wù)器: ${SERVER_IP}"
echo "  中繼服務(wù)器: ${SERVER_IP}"
echo "  Key (公鑰): ${PUBLIC_KEY}"
echo ""
echo "重要提示: 'Key' 是由 hbbs 生成的公鑰文件的內(nèi)容。"
echo "它已從以下位置讀取: ${HBBS_DATA_DIR}/id_ed25519.pub"
echo ""
echo "如果您以后需要查找公鑰,請運行: cat ${HBBS_DATA_DIR}/id_ed25519.pub"
echo "腳本執(zhí)行完畢。"

使用方法

  1. 保存腳本:將上述腳本保存為 deploy-rustdesk.sh。
  2. 修改公網(wǎng) IP:將腳本中的 SERVER_IP="YOUR_SERVER_PUBLIC_IP" 替換為您的服務(wù)器公網(wǎng) IP 地址。
  3. 賦予執(zhí)行權(quán)限
    chmod +x deploy-rustdesk.sh
    
  4. 運行腳本
    ./deploy-rustdesk.sh
    
  5. 檢查輸出:腳本會輸出部署狀態(tài)、客戶端配置信息和公鑰。

客戶端配置

部署完成后,您需要在 RustDesk 客戶端中配置以下信息:

  • ID 服務(wù)器:您的服務(wù)器公網(wǎng) IP(例如 192.168.1.1)。
  • 中繼服務(wù)器:同 ID 服務(wù)器的 IP 地址。
  • Key (公鑰):腳本運行后顯示的公鑰,或通過以下命令查看:
    cat rustdesk_server_data/hbbs/id_ed25519.pub
    

注意事項

  • 防火墻設(shè)置:確保防火墻或云服務(wù)提供商的安全組規(guī)則已開放所需的 TCP 和 UDP 端口。
  • 密鑰管理:公鑰 (id_ed25519.pub) 必須正確配置到客戶端,否則無法連接。腳本自動生成并顯示公鑰。
  • 持久化數(shù)據(jù):數(shù)據(jù)目錄 (rustdesk_server_data/hbbsrustdesk_server_data/hbbr) 存儲密鑰和其他持久化數(shù)據(jù),確保不要誤刪。
  • 日志排查:如果遇到問題,可查看容器日志:
    sudo docker logs hbbs
    sudo docker logs hbbr
    

常見問題

  • 連接失敗:檢查防火墻端口是否開放,確認(rèn)客戶端的 ID 服務(wù)器、中繼服務(wù)器和公鑰是否正確。
  • 容器未運行:使用 sudo docker ps -a 檢查容器狀態(tài),并查看日志以排查錯誤。
  • 密鑰丟失:密鑰存儲在 rustdesk_server_data/hbbs 目錄下,備份該目錄以防止丟失。

到此這篇關(guān)于Docker輕松自建RustDesk服務(wù)器的文章就介紹到這了,更多相關(guān)Docker自建RustDesk服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • 在docker容器中運行flask應(yīng)用過程

    在docker容器中運行flask應(yīng)用過程

    這篇文章主要介紹了在docker容器中運行flask應(yīng)用過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 通過idea打包項目到docker的操作方法

    通過idea打包項目到docker的操作方法

    這篇文章主要介紹了通過idea打包項目到docker的操作方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • 使用Docker容器部署MongoDB并支持遠程訪問及遇到的坑

    使用Docker容器部署MongoDB并支持遠程訪問及遇到的坑

    MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的,今天通過本文給大家介紹使用Docker容器部署MongoDB并支持遠程訪問及遇到的坑,感興趣的朋友一起看看吧
    2022-07-07
  • Linux Docker下安裝tomcat的過程

    Linux Docker下安裝tomcat的過程

    這篇文章主要介紹了Linux Docker下安裝tomcat的過程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-05-05
  • docker中使用flink記錄一些組合命令示例

    docker中使用flink記錄一些組合命令示例

    當(dāng)使用Docker運行Flink時,可以通過編寫腳本或者直接在命令行中輸入一系列的組合命令來完成特定任務(wù),本文給大家分享docker中使用flink記錄一些組合命令示例,感興趣的朋友一起看看吧
    2024-03-03
  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細(xì)教程

    基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細(xì)教程

    K8S全稱是Kubernetes,是一個全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案,這篇文章主要介紹了基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境(環(huán)境搭建篇),對docker K8S持續(xù)集成交付環(huán)境相關(guān)知識感興趣的朋友一起看看吧
    2021-05-05
  • docker search 搜索鏡像的實現(xiàn)示例

    docker search 搜索鏡像的實現(xiàn)示例

    本文主要介紹了docker search搜索鏡像的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • docker如何部署eureka-server

    docker如何部署eureka-server

    這篇文章主要介紹了docker如何部署eureka-server問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • docker daemon遠程連接設(shè)置詳解

    docker daemon遠程連接設(shè)置詳解

    本篇文章主要介紹了docker daemon遠程連接設(shè)置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Docker和宿主機之間如何共享文件

    Docker和宿主機之間如何共享文件

    這篇文章主要介紹了Docker和宿主機之間如何共享文件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評論

祁门县| 青浦区| 钟山县| 乐昌市| 唐山市| 陆川县| 江津市| 平乐县| 应城市| 沙洋县| 龙游县| 扶沟县| 沈阳市| 大石桥市| 龙口市| 麻阳| 河曲县| 新和县| 南川市| 磐石市| 盐亭县| 五常市| 会东县| 通榆县| 钦州市| 黔东| 博乐市| 百色市| 乌海市| 和田市| 彭泽县| 延长县| 淮阳县| 修文县| 容城县| 阳山县| 南郑县| 兴化市| 濉溪县| 琼海市| 彭山县|