---
# System prepended metadata

title: RustDesk Docker Compose

---

# RustDesk Docker Compose
``` yaml
version: '3'
services:
  hbbs:
    container_name: HBBS
    network_mode: "host"
    image: rustdesk/rustdesk-server
    # 這裡請務必提供HBBS你的HBBR地址，如此一來你的HBBS會自動提供HBBR資訊給客戶端，就不用在設定客戶端時再填一格
    # 實務上，hbbr可以在別的地方
    command: hbbs -r rustdesk.example.com:21117 -k _
    # -k _ 代表強制使用KEY連線
    volumes:
    # Synology NAS請特別注意，務必填入NAS作業系統相應的實體路徑
    #例如：DSM儲存空間1中的docker=/volume1/docker
      - /path_to_you_desired/Docker/RustDesk/data:/root:rw
    depends_on:
      - hbbr
    restart: always

  hbbr:
    container_name: HBBR
    network_mode: "host"
    image: rustdesk/rustdesk-server
    command: hbbr -k _
    #environment:
      #- TOTAL_BANDWIDTH= 35 #It is Mbps
      #- SINGLE_BANDWIDTH= 35 # It is Mbps，預設是16，傳檔案可能會很慢，有需要就調高
    volumes:
      - /path_to_you_desired/RustDesk/data:/root:rw
    restart: always
```

**提示：可在終端機執行``pwd``查看現在目錄的完整路徑**

啟動成功後，`id_ed25519.pub`即為你要輸入在client 的key。(也就是公鑰)<br>
端口映射：<br>
只有這些端口用得到，加這些到路由器即可
* 21115/tcp //~~TCP打洞~~ 更正: NAT類型測試
* 21116/tcp, udp //UDP for ID，TCP for TCP打洞測試 ~~雖然很少打成功~~
* 21117/tcp //Relay
<hr>

另外，建議客戶端設定伺服器地址時，使用Domain地址，不要用IP，如此一來IP或伺服器遷移時就不會導致失聯或必須重新設置<hr>

## 用``Domain地址``在區網連但連結失敗
請做功課，查詢什麼是``NAT LoopBack``，簡單點的方法是架設``Adguard Home``，把網域指給Server的區網IP (也可用Docker架設)
<hr>

## *有辦法濃縮成一個容器，其實就是S6那個，但把基礎先學會再說*