# 架設 RustDesk server 與 clint端使用 <style> html, body, .ui-content { background-color: #333; color: #ddd; } body > .ui-infobar { display: none; } .ui-view-area > .ui-infobar { display: block; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { color: #ddd; } .markdown-body h1, .markdown-body h2 { border-bottom-color: #ffffff69; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #fff; } .markdown-body img { background-color: transparent; } .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a { color: white; border-left: 2px solid white; } .expand-toggle:hover, .expand-toggle:focus, .back-to-top:hover, .back-to-top:focus, .go-to-bottom:hover, .go-to-bottom:focus { color: white; } .ui-toc-dropdown { background-color: #333; } .ui-toc-label.btn { background-color: #191919; color: white; } .ui-toc-dropdown .nav>li>a:focus, .ui-toc-dropdown .nav>li>a:hover { color: white; border-left: 1px solid white; } .markdown-body blockquote { color: #bcbcbc; } .markdown-body table tr { background-color: #5f5f5f; } .markdown-body table tr:nth-child(2n) { background-color: #4f4f4f; } .markdown-body code, .markdown-body tt { color: #eee; background-color: rgba(230, 230, 230, 0.36); } a, .open-files-container li.selected a { color: #5EB7E0; } </style> > [color=#907bf7] [name=梓育(moon.starsky37@gmail.com)] [time=Wed, Nov 23, 2022 10:00 AM] ![](https://i.imgur.com/C014dlZ.png) RustDesk 是一款開源的跨平台遠端GUI軟體,類似於 Anydesk 或 TeamViewer,但開源且免費。 雖然 RustDesk 提供了幾個免費的中繼服務器,但如果對資安上有疑慮,官方也提供了可以自行架設的中繼伺服器的方案。而且在docker(-compose)已經安裝完的情況下,可以更接近無痛安裝。 [TOC] ## 安裝docker <iframe width="100%" height="600" src="https://docs.docker.com/engine/install/ubuntu" frameborder="0"></iframe> ## 安裝docker-compose * 先看看官網查看目前釋出版本: https://github.com/docker/compose/releases/latest * 下載 docker-compose 到 /usr/local/bin/docker-compose ```bash sudo curl -L "https://github.com/docker/compose/releases/download/{YOUR-DOCKER-COMPOSE-VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` * 將 /usr/local/bin/docker-compose 建立軟連結到 /usr/bin/docker-compose 以避免輸入指令時找不到 docker-compose 指令 ```bash sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ``` * 以上步驟也可以用一行指令完成 ```bash v=$(curl -s https://github.com/docker/compose/releases/latest) && v=${v#*href} && v=${v#*\"} && v=${v%\"*} && v=${v##*/} && sudo curl -L "https://github.com/docker/compose/releases/download/${v}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose ``` 最後可以檢查版本確認是否有安裝成功。 ``` docker-compose --version ``` ## 安裝RustDesktop Server 官方提供的架設文件在: https://rustdesk.com/docs/en/self-host/install 其中我們會使用docker-compose的方式進行安裝。 首先我們需要知道我們中繼伺服器,也就是目前我們架設docker compose的這台機器用的IP,但如果已經設定好對外的網域的話,也可以直接使用你設定的domain即可。 ``` hostname -I ``` 接著建立一個docker-compose啟用檔案。 ``` touch docker-compose.yml ``` 接著用nano、vim或任何文字編輯器填入以下內容並存檔,其中第16行的 ```example.com:21117```,需要改成你的IP或是你的網域。 e.g.```192.168.0.XXX:21117``` ```bash= version: '3' networks: rustdesk-net: external: false services: hbbs: container_name: hbbs ports: - 21115:21115 - 21116:21116 - 21116:21116/udp - 21118:21118 image: rustdesk/rustdesk-server:latest command: hbbs -r example.com:21117 volumes: - ./hbbs:/root networks: - rustdesk-net depends_on: - hbbr restart: unless-stopped hbbr: container_name: hbbr ports: - 21117:21117 - 21119:21119 image: rustdesk/rustdesk-server:latest command: hbbr volumes: - ./hbbr:/root networks: - rustdesk-net restart: unless-stopped ``` 完成之後執行 ``` docker-compose up -d # -d會在背景執行,如果想先看到執行情況的話可以不加 ``` 可以看到log會有以下內容代表成功安裝 ![](https://i.imgur.com/K2232fS.png) ## Clint端設定伺服器及連線到其他電腦 為了展示結果我們會除了中繼伺服器之外再額外設定兩台電腦(一台ubuntu desktop,一台windows)。 在個別的電腦可以先安裝client side對應的軟體。 下載頁面: https://github.com/rustdesk/rustdesk/releases 安裝完之後執行會看到以下畫面 ![](https://i.imgur.com/PbIBznw.png) 點選ID旁邊的更多選項並點選"ID/Relay Server"看到會跳出來一個新的小視窗,並在"ID Server"空格中填入你剛剛中繼伺服器的IP或網域。 ![](https://i.imgur.com/K4QEhtb.png)![](https://i.imgur.com/33RhLzn.png) 當兩台電腦的Client Side都設定好之後,假設你想要從Windows連線到Ubuntu Desktop的電腦,你要在Windows的Client Side中的下圖位置填入,Ubuntu的連線ID ![](https://i.imgur.com/dEc0gET.png) 填了之後案Connect 然後在這個畫面稍代之後會要填入密碼(或者在ubuntu那台電腦上跳出來的新視窗直接按下Accept),就可以完成連線了 ![](https://i.imgur.com/XtKBLx8.png) ![](https://i.imgur.com/KSfZc6T.png) * 連線完成的畫面 ![](https://i.imgur.com/HDnx4oW.png) 除了遠端桌面外,點選他的Transfer File也可以看到像是FileZilla一樣的檔案傳輸介面 ![](https://i.imgur.com/UoMKj5s.png)