From f52af4bf68e6820bffd5adca56b4ee0f6481b7a7 Mon Sep 17 00:00:00 2001 From: XLion Date: Thu, 29 Feb 2024 19:53:04 +0800 Subject: [PATCH 1/5] Fix title for every lang in DSM 6 --- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.it.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.pt.md | 2 +- .../self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md | 2 +- .../rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md | 2 +- .../rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md index 134ac93..b5f4e0c 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md index a24ae58..d3f729a 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md index a6546a5..c361c81 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.it.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.it.md index f51f7f4..ebdc4ab 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.it.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.it.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md index afc0e53..9cc2e21 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md index 859c2f9..c6b16be 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md @@ -1,5 +1,5 @@ --- -title: Synologie +title: Synologie DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.pt.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.pt.md index f51f7f4..ebdc4ab 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.pt.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.pt.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md index 468d592..fe1bcf3 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md @@ -1,5 +1,5 @@ --- -title: Synology +title: Synology DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md index a9871a8..45ec472 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md @@ -1,5 +1,5 @@ --- -title: 群晖 +title: 群晖 DSM 6 weight: 22 --- diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md index 2db14dc..935efd0 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md @@ -1,5 +1,5 @@ --- -title: Synology 群暉 +title: Synology DSM 6 weight: 22 --- From 8011542166af2ef6c59c349d7d38a6afe115350d Mon Sep 17 00:00:00 2001 From: XLion Date: Thu, 29 Feb 2024 21:05:29 +0800 Subject: [PATCH 2/5] Add DSM 7 for Traditional Chinese --- .../synology/_index.zh-tw.md | 6 + .../synology/dsm-7/_index.zh-tw.md | 108 ++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.zh-tw.md create mode 100644 content/self-host/rustdesk-server-oss/synology/dsm-7/_index.zh-tw.md diff --git a/content/self-host/rustdesk-server-oss/synology/_index.zh-tw.md b/content/self-host/rustdesk-server-oss/synology/_index.zh-tw.md new file mode 100644 index 0000000..8b0a77b --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.zh-tw.md @@ -0,0 +1,6 @@ +--- +title: Synology 群暉 +weight: 22 +--- +Synology 有兩種 Docker, "Docker" 和 "Container Manager", 如果您使用 DSM 7.2 和更新版本, 請參閱 DSM 7.2 的說明,或如果您使用較舊的系統,請參閱 DSM 6 的說明。 +{{% children depth="3" showhidden="true" %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.zh-tw.md b/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.zh-tw.md new file mode 100644 index 0000000..8f7ab9a --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.zh-tw.md @@ -0,0 +1,108 @@ +--- +title: Synology DSM 7.2 +weight: 20 +--- + +在 DSM 7.2 更新之後,Synology 已將 "Docker" 套件改名為 "Container Manager",它採用新的介面,並且在其圖形介面內建 docker-compose,可讓您更容易地建立 Docker。 +## 支援的機型以及需求 + +Container Manager 為部分低階的 ARM64 的機型帶來支援,例如 j 系列,如要獲取更多支援機型,請參閱 [Synology 網站](https://www.synology.com/zh-tw/dsm/packages/ContainerManager)。 + +## 1. 安裝 Container Manager (Docker) + +開啟"套件中心",搜尋並安裝 "Container Manager"。 + +![](images/dsm7_install_container_manager_though_package_center.png) + +## 2. 建立資料夾 + +在您安裝完 "Container Manager" 之後,它會建立一個叫做 "docker" 的共享資料夾,讓我們把伺服器的資料放這。 + +打開您的 File Station,建立一個名叫 `rustdesk-server`(或您想要的名字)的資料夾,接著在其建立名為 `data` 的資料夾,如圖所示。 + +![](images/dsm7_create_required_folders.png) + +## 3. 建立容器 + +打開您的 Container Manager,前往專案並點擊新增。 + +輸入您的專案名稱 `rustdesk-server` 然後變更來源從"上傳 docker-compose.yml" 至 "建立 docker-compose.yml",接著複製下方內容到框框,在您複製貼上後,您應該將 `rustdesk.example.com` (它該指向到您的 `hbbr`) 改為會指向至您NAS的網域。 + +{{% notice note %}} +如圖所示,您可以暫時將 `hbbs` 那行改為指向至您的NAS的 LAN IP,在您驗證您的伺服器可以正常運作後,您**應當**變更回來。 +{{% /notice %}} + +![](images/dsm7_creating_project_init.png) + +````yaml +version: '3' +services: + hbbs: + container_name: hbbs + image: rustdesk/rustdesk-server:latest + command: hbbs -r rustdesk.example.com:21117 -k _ + volumes: + - ./data:/root + network_mode: host + depends_on: + - hbbr + restart: always + + hbbr: + container_name: hbbr + image: rustdesk/rustdesk-server:latest + command: hbbr -k _ + volumes: + - ./data:/root + network_mode: host + restart: always + +# 因為使用 docker host mode +# 以防你忘記這些端口: +# 21115 TCP NAT 類型測試 +# 21116 TCP TCP 打洞 +# 21116 UDP 心跳/ID 伺服器 +# 21117 TCP Relay/中繼 + ```` + +請略過 `網頁入口設定` 接著完成。 + + ## 4. 檢查可否運作 + +打開您的 File Station 您應該可看到 `id_ed25519`、`id_ed25519.pub` 在您的 `docker/rustdesk-server/data` 資料夾。 + +公鑰看起來會像這個樣子: + +![](images/dsm7_viewing_public_key_though_syno_text_editor.png) + +看看[這裡](/docs/zh-tw/self-host/rustdesk-server-oss/install/#step-3-set-hbbshbbr-address-on-client-side)來設置您的客戶端,只有 `ID 伺服器` 以及 `Key` 是需要的,中繼伺服器不需設定,因為我們已經把它設置在 `hbbs` 了,hbbs 會自動提供這項資訊。 + +## 5. 設置 hbbs 讓它指向至您的網域 + +如果您設置了 `hbbs` 指向至您的 LAN IP,並且確認它正常運作,現在是時候改回網域了,因為它會在您的區域網路之外不能正常運作。 + +
+ +5.1 前往 Container Manager > 專案 > 點擊 "rustdesk-server" > 操作 > 停止 + +5.2 在停止之後,點擊 "YAML 設定",修改開始為 `command: hbbs` 的那一行至您的網域,接著點擊 "停止",請確保您選擇了 "建立並啟動專案(重建映像檔)" + +![](images/dsm7_recreate_project_after_modified_args.png) + +5.3 您的 RustDesk 伺服器應該可接受來自網際網路的連線了,接著,您應該設定 port forwarding (通訊埠轉發)。 + +{{% notice note %}} +在完成這個步驟後就遇到問題了? 那麼你應該看看 [這個文章](/docs/zh-tw/self-host/nat-loopback-issues/)。 +{{% /notice %}} + +## 6. 在您的路由器設置 port forwarding (通訊埠轉發) + +前往您的路由器的管理頁面,尋找任何有關於 `Port forwarding` 或是 `通訊埠轉發` 的設定,他應該在 `WAN`、`網際網路` 或是 `防火牆` 設置。 + +如果您還是無法找到設定,Google 搜尋 `{路由器廠牌} + port forwarding` 或 `{路由器型號} + port forwarding` + +開啟這些需要的端口: + * `21115` `TCP` NAT 類型測試 + * `21116` `TCP` TCP 打洞 + * `21116` `UDP` 心跳/ID 伺服器 + * `21117` `TCP` Relay/中繼 \ No newline at end of file From 4cf55389966a1570070006f820a79aed3243ef9b Mon Sep 17 00:00:00 2001 From: XLion Date: Thu, 29 Feb 2024 21:21:37 +0800 Subject: [PATCH 3/5] Make other lang's Synology won't gone and fix image links --- .../rustdesk-server-oss/synology/_index.de.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.en.md | 4 +++- .../rustdesk-server-oss/synology/_index.es.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.fr.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.it.md | 6 +++++ .../rustdesk-server-oss/synology/_index.ja.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.nl.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.pt.md | 8 +++++++ .../rustdesk-server-oss/synology/_index.ru.md | 8 +++++++ .../synology/_index.zh-cn.md | 8 +++++++ .../synology/dsm-6/_index.de.md | 22 +++++++++---------- .../synology/dsm-6/_index.en.md | 22 +++++++++---------- .../synology/dsm-6/_index.es.md | 22 +++++++++---------- .../synology/dsm-6/_index.fr.md | 22 +++++++++---------- .../synology/dsm-6/_index.ja.md | 22 +++++++++---------- .../synology/dsm-6/_index.nl.md | 22 +++++++++---------- .../synology/dsm-6/_index.ru.md | 22 +++++++++---------- .../synology/dsm-6/_index.zh-cn.md | 22 +++++++++---------- .../synology/dsm-6/_index.zh-tw.md | 22 +++++++++---------- 19 files changed, 172 insertions(+), 100 deletions(-) create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.de.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.es.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.fr.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.it.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.ja.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.nl.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.pt.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.ru.md create mode 100644 content/self-host/rustdesk-server-oss/synology/_index.zh-cn.md diff --git a/content/self-host/rustdesk-server-oss/synology/_index.de.md b/content/self-host/rustdesk-server-oss/synology/_index.de.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.de.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.en.md b/content/self-host/rustdesk-server-oss/synology/_index.en.md index f136ab9..9804a04 100644 --- a/content/self-host/rustdesk-server-oss/synology/_index.en.md +++ b/content/self-host/rustdesk-server-oss/synology/_index.en.md @@ -3,4 +3,6 @@ title: Synology weight: 22 --- Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. -{{% children depth="3" showhidden="true" %}} \ No newline at end of file +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.es.md b/content/self-host/rustdesk-server-oss/synology/_index.es.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.es.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.fr.md b/content/self-host/rustdesk-server-oss/synology/_index.fr.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.fr.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.it.md b/content/self-host/rustdesk-server-oss/synology/_index.it.md new file mode 100644 index 0000000..ebdc4ab --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.it.md @@ -0,0 +1,6 @@ +--- +title: Synology DSM 6 +weight: 22 +--- + +[English](/docs/en/self-host/rustdesk-server-oss/synology) diff --git a/content/self-host/rustdesk-server-oss/synology/_index.ja.md b/content/self-host/rustdesk-server-oss/synology/_index.ja.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.ja.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.nl.md b/content/self-host/rustdesk-server-oss/synology/_index.nl.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.nl.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.pt.md b/content/self-host/rustdesk-server-oss/synology/_index.pt.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.pt.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.ru.md b/content/self-host/rustdesk-server-oss/synology/_index.ru.md new file mode 100644 index 0000000..9804a04 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.ru.md @@ -0,0 +1,8 @@ +--- +title: Synology +weight: 22 +--- +Synology has two type of Docker, "Docker" and "Container Manager", if you're using DSM 7.2 and latter, please follow the guide for DSM 7.2, or follow the DSM 6 guide if you're on older system. +{{% children depth="3" showhidden="true" %}} + +For DSM 7.2, please check [English](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.zh-cn.md b/content/self-host/rustdesk-server-oss/synology/_index.zh-cn.md new file mode 100644 index 0000000..77b4f86 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.zh-cn.md @@ -0,0 +1,8 @@ +--- +title: 群晖 +weight: 22 +--- +Synology 有两种 Docker, "Docker" 和 "Container Manager", 如果您使用 DSM 7.2 和更新版本, 请参阅 DSM 7.2 的说明,或如果您使用较旧的系统,请参阅 DSM 6 的说明。 +{{% children depth="3" showhidden="true" %}} + +DSM 7 請先看[繁體中文](/docs/zh-tw/self-host/rustdesk-server-oss/synology/dsm-7/)版本 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md index b5f4e0c..64ae015 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.de.md @@ -11,31 +11,31 @@ Diese Anleitung basiert auf dem aktuellen DSM v6 und v7. | Paketzentrum öffnen | Docker installieren | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) | +| ![](images/package-manager.png) | ![](images/docker.png) | ### RustDesk-Server installieren | RustDesk-Server im Docker-Register suchen und per Doppelklick installieren | RustDesk-Server-Image ist installiert, Doppelklick zum Erstellen des RustDesk-Server-Containers | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) | +| ![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) | ### hbbs-Container erstellen Wie oben erwähnt, doppelklicken Sie auf das RustDesk-Server-Image, um einen neuen Container zu erstellen, und geben Sie ihm den Namen `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Klicken Sie auf `Erweiterte Einstellungen`. - Automatischen Neustart aktivieren -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Aktivieren Sie `Use the same network as Docker Host`. Mehr Infos über das Hostnetz siehe [hier](https://rustdesk.com/docs/de/self-host/rustdesk-server-oss/docker/#net-host). -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Binden Sie ein Host-Verzeichnis (z. B. `/home/rustdesk/`) als `/root` ein, hbbs wird einige Dateien (Datenbank- und `key`-Dateien) in diesem Verzeichnis erzeugen, die über Neustarts hinweg erhalten bleiben müssen. | Einbinden | Im Host-Verzeichnis erzeugte Dateien | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png) | +| ![](images/mount.png) | ![](images/mounted-dir.png) | - Befehl einstellen {{% notice note %}} @@ -45,26 +45,26 @@ Das Betriebssystem von Synology basiert auf Debian, daher funktioniert das Hostn {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Fertig -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### hbbr-Container erstellen Bitte wiederholen Sie die obigen Schritte für `hbbs`, nennen aber den Container `hbbr` und der Befehl (für den Schritt Befehl einstellen) sollte `hbbr -k_` sein. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs-Container -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png) +![](images/containers.png) | Doppelklicken Sie auf den Container und prüfen Sie das Protokoll | Bestätigen Sie hbbs/hbbr über das Host-Netzwerk doppelt | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png) | +| ![](images/log.png) | ![](images/network-types.png) | ### Ihren Schlüssel abrufen diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.en.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.en.md index e003fc3..bdf6061 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.en.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.en.md @@ -14,32 +14,32 @@ After DSM 7.2, the Docker is upgraded to new "Container Manager", please check [ | Open Package Center | Install Docker | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) | +| ![](images/package-manager.png) | ![](images/docker.png) | ### Install RustDesk Server | Search rustdesk-server in Docker's registry and install by double click | Installed rustdesk-server image, double click to create rustdesk-server container | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) | +| ![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) | ### Create hbbs container As mentioned above, double click on rustdesk-server image to create new container, set it name to `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Click on above `Advanced Settings`. - Enable auto-restart -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Enable `Use the same network as Docker Host`, for more about host net, please [check](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/#net-host). -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Mount a host directory (e.g. `/home/rustdesk/`) to `/root`, hbbs will generate some files (database and `key` files) in this directory which need to be persistent over reboots. | Mount | Files generated in the host directory | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png) | +| ![](images/mount.png) | ![](images/mounted-dir.png) | - Set command {{% notice note %}} @@ -49,26 +49,26 @@ Synology's OS is Debian based, so host net (--net=host) works fine, we do not ne {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Done -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### Create hbbr container Please repeat above `hbbs` steps, but name the container `hbbr` and command (for Set Command Step) should be `hbbr -k _`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs containers -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png) +![](images/containers.png) | Double click on container and check log | Double confirm hbbs/hbbr using host network | | --- | --- | -| ![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png) | +| ![](images/log.png) | ![](images/network-types.png) | ### Retrieve your Key diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md index d3f729a..59b622b 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.es.md @@ -11,33 +11,33 @@ Abra el administrador de paquetes e instale la ventana acoplable | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### Instalar el servidor RustDesk | Busque rustdesk-server en el registro de Docker e instálelo haciendo doble clic | Imagen de rustdesk-server instalada, haga doble clic para crear el contenedor de rustdesk-server | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### Crear contenedor hbbs Como se mencionó anteriormente, haga doble clic en la imagen de rustdesk-server para crear un nuevo contenedor, establezca su nombre en `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Haga clic en "Configuración avanzada" arriba. - Habilitar reinicio automático -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Habilite "Usar la misma red que el host de Docker", para obtener más información sobre la red del host, por favor [check](/docs/en/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Monte un directorio de host (por ejemplo, `Shared/test/`) en `/root`, hbbs generará algunos archivos (incluido el archivo `key`) en este directorio | Monte | Archivos generados en el directorio host | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - Establecer comando {{% notice note %}} @@ -47,24 +47,24 @@ Synology OS está basado en Debian, os host net (--net=host) funciona bien, no n {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Hecho -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### Crear contenedor hbbr Repita los pasos `hbbs` anteriores, pero cambie el nombre del contenedor a `hbbr` y el comando a `hbbr`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs contenedor -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | Haga doble clic en el contenedor y verifique el registro | Doble confirmación de hbbs/hbbr usando la red host | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md index c361c81..985375d 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.fr.md @@ -11,33 +11,33 @@ Avec l'outils centre de paquet, installez docker | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### Installation du server RustDesk | Recherchez Rustdesk-Server dans le registre Docker et l'installer par un double clic | L'image rustdesk-Server installée alors double-cliquez pour créer un conteneur Rustdesk-Server | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### Créer le conteneur hbbs Comme mentionné ci-dessus, double-cliquez sur l'image Rustdesk-Server pour créer un nouveau conteneur, nommez-le sur `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Cliquez sur "Paramètres avancés" ci-dessus. - Activer le redémarrage automatique -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Activer "Utiliser le même réseau que Docker Host", Pour en savoir plus sur le réseau hôte, s'il vous plaît [voir](/docs/en/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Monter un répertoire depuis l'hôte (ex: `partage/test/`) vers `/root`, HBBS générera des fichiers (y compris le fichier clé `key`) dans ce répertoire | Montage du répertoire hôte | Fichiers générés dans le répertoire de l'hôte | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - Définir command {{% notice note %}} @@ -47,23 +47,23 @@ Le système d'exploitation Synology est basé sur Debian. La configuration sur r {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Terminé -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### Créer le conteneur hbbr Veuillez répéter les même étapes que pour `hbbs` ci-dessus, mais modifiez le nom du conteneur en `hbbr` et saisir en commande `hbbr`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### conteneurs hbbr/hbbs -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | Double-cliquez sur le conteneur et vérifiez le journal | Vérifier et confirmer que les conteneurs HBBS et HBBR utilisent le réseau hôte | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md index 9cc2e21..599eae9 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ja.md @@ -11,33 +11,33 @@ weight: 22 | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### RustDeskサーバーのインストール | Dockerのレジストリからrustdesk-serverを検索しダブルクリックでインストールします | rustdesk-server イメージをインストールしダブルクリックで rustdesk-server コンテナを作成します | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### hbbsコンテナの作成 上記のように rustdesk-server イメージをダブルクリックして新しいコンテナを作成し名前を `hbbs` にします。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) "Advanced Settings" をクリックします。 - 自動再起動を有効にする -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - "Use the same network as Docker host" を有効にします。 ホストの詳細については [こちら](/docs/en/self-host/install/#net-host) を確認してください -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - コンテナ内のホームディレクトリ `/root` をホストディレクトリ (例: `Shared/test/`) に配置するとhbbsはこのディレクトリにいくつかのファイル (`鍵`ファイルを含む) を生成します | 配置 | ホームディレクトリに生成されるファイル | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - コマンドの設定 {{% notice note %}} @@ -47,24 +47,24 @@ Synology の OS は Debian ベースなのでホストネット (--net=host) は {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - 完了 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### hbbr コンテナの作成 上記の `hbbs` の手順を繰り返してください。ただしコンテナ名を `hbbr` にコマンドを `hbbr` に変更してください。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs コンテナ -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | コンテナをダブルクリックしログを確認する | ホストネットワークを使用したhbbs/hbbrの二重確認 | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md index c6b16be..3ee7dad 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.nl.md @@ -11,33 +11,33 @@ Open pakketbeheer en installeer docker | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### Installeer RustDesk Server | Zoek rustdesk-server in het Docker-register en installeer door te dubbelklikken | Het rustdesk-server image is aangemaakt, dubbelklik om een rustdesk-server container te maken. | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### Maak hbbs container aan Zoals hierboven vermeld, dubbelklik op de rustdesk-server image om een nieuwe container aan te maken, geef hem de naam `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Klik op "Geavanceerde instellingen". - Schakel auto-herstart in -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Schakel "Gebruik hetzelfde netwerk als Docker host" in, voor meer over host net, zie [check](/docs/en/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Maak een host map (bijv. `Gedeeld/test/`) aan in `/root`, hbbs zal een aantal bestanden (waaronder het `sleutel` bestand) in deze map genereren. | Maak | Bestanden gegenereerd in de host map | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - Instellen commando {{% notice note %}} @@ -47,23 +47,23 @@ Het OS van Synology is gebaseerd op Debian, dus host net (--net=host) werkt prim {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Klaar -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### Maak hbbr container Herhaal bovenstaande `hbbs` stappen, maar verander de containernaam in `hbbr` en het commando in `hbbr`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs containers -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | Dubbelklik op de container en controleer het logbestand | Dubbele bevestiging van hbbs/hbbr met behulp van het host-netwerk | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md index fe1bcf3..30f8950 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ru.md @@ -11,33 +11,33 @@ weight: 22 | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### Установка RustDesk Server | Найдите rustdesk-server в реестре Docker и установите двойным кликом мыши | Установленный образ rustdesk-server rustdesk-server | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### Создание контейнера hbbs Дважды нажмите на образ rustdesk-server чтобы создать контейнер, установите контейнеру имя `hbbs`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) Нажмите "Advanced Settings". - Включите автоперезапуск -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - Включите опцию "Use the same network as Docker host", [подробности](/docs/en/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - Смонтируйте папку хоста (например `Shared/test/`) в `/root`, hbbs создаст файлы в папке | Монтирование | Созданные файлы | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - Установите запускаемую команду {{% notice note %}} @@ -47,23 +47,23 @@ weight: 22 {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - Готово -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### Создание контейнера hbbr Произведите те-же действия, что и в случае hbbs, но измените имя контейнера на `hbbr` и запускаемую команду на `hbbr`. -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### Контейнеры hbbr/hbbs -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | Двойной клик на контейнер чтобы перейти в журнал | Проверьте, чтобы hbbs/hbbr использовали сеть хоста | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md index 45ec472..8a5b267 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-cn.md @@ -12,33 +12,33 @@ weight: 22 | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### 安装 RustDesk Server | 在 Docker's registery 里搜索 rustdesk-server 并双击安装 | 安装 rustdesk-server 镜像后, 双击镜像创建容器 | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### 创建 hbbs 容器 如上所述哦,双击 rustdesk-server 镜像创建新容器,设置名称 `hbbs`。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) 点击上面的 "Advanced Settings"。 - 开启 auto-restart -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - 开启 "Use the same network as Docker host", 关于 host net的更多解释,请[查看](/docs/zh-cn/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - 将容器里的 home 目录 `/root` 挂在到宿主目录(比如 `Shared/test/`), hbbs将把产生的文件(包括`key`文件)放在该目录。 | 挂在 | 产生的文件 | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - 设置命令 {{% notice note %}} @@ -48,23 +48,23 @@ Synology 的操作系统是基于 Debian 的,因此host net (--net=host) 可 {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - 搞定 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### 创建 hbbr 容器 请重复上述 `hbbs` 步骤,请将容器名更改为 `hbbr` 并将命令更改为 `hbbr`。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs 容器创建完成 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | 双击容器并查看日志 | 确认 hbbs/hbbr 在使用 host net | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md index 935efd0..07eb817 100644 --- a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.zh-tw.md @@ -11,33 +11,33 @@ weight: 22 | | | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/docker.png) +![](images/package-manager.png) | ![](images/docker.png) ### 安裝 RustDesk Server | 在 Docker 的 registery 裡搜尋 rustdesk-server 並連點兩下來安裝 | 安裝 rustdesk-server 映像後, 連點兩下映像來建立容器 | | --------------- | -------------------------------------------------------- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/rustdesk-server-installed.png) +![](images/pull-rustdesk-server.png) | ![](images/rustdesk-server-installed.png) ### 建立 hbbs 容器 如上所述,連點兩下 rustdesk-server 映像來建立新容器,並將其名稱設置為 `hbbs`。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs.png) +![](images/hbbs.png) 點擊上面的 "進階設定"。 - 啟用自動重新啟動 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/auto-restart.png) +![](images/auto-restart.png) - 啟用 "Use the same network as Docker host", 關於 host net 的更多解釋,請[查閱](/docs/zh-tw/self-host/install/#net-host) -![](/docs/en/self-host/rustdesk-server-oss/synology/images/host-net.png) +![](images/host-net.png) - 將主機目錄 (比如 `Shared/test/`) 掛接到 `/root`,hbbs 將把產生的文件(包括 `key` 檔案)放在該目錄。 | 掛接 | 產生的檔案 | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/mount.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/mounted-dir.png?width=300px) +![](images/mount.png?width=500px) | ![](images/mounted-dir.png?width=300px) - 設置指令 {{% notice note %}} @@ -47,23 +47,23 @@ weight: 22 {{% /notice %}} -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-cmd.png?v2) +![](images/hbbs-cmd.png?v2) - 搞定 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbs-config.png) +![](images/hbbs-config.png) ### 建立 hbbr 容器 請重複上述 `hbbs` 步驟,但將容器名稱更改為 `hbbr` 並將指令更改為 `hbbr`。 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/hbbr-config.png) +![](images/hbbr-config.png) ### hbbr/hbbs 容器建立完成 -![](/docs/en/self-host/rustdesk-server-oss/synology/images/containers.png?width=500px) +![](images/containers.png?width=500px) | 連點兩下容器並查看日誌 | 確認 hbbs/hbbr 在使用 host net | |-- | -- | -![](/docs/en/self-host/rustdesk-server-oss/synology/images/log.png?width=500px) | ![](/docs/en/self-host/rustdesk-server-oss/synology/images/network-types.png?width=500px) +![](images/log.png?width=500px) | ![](images/network-types.png?width=500px) From a34718f18419bf885d37629628037f9548c2fbdf Mon Sep 17 00:00:00 2001 From: XLion Date: Thu, 29 Feb 2024 21:38:42 +0800 Subject: [PATCH 4/5] Update new images in 'self-host/rustdesk-server-oss/install/images/' --- .../install/images/server-set-menu.png | Bin 15177 -> 37866 bytes .../install/images/server-set-window.png | Bin 3301 -> 40468 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/content/self-host/rustdesk-server-oss/install/images/server-set-menu.png b/content/self-host/rustdesk-server-oss/install/images/server-set-menu.png index 44c79947dfc5cc8f4182dea0c6e016945fb6ec0a..fdd0e827069ea47a6cbef06a89caa44b63ac4a13 100644 GIT binary patch literal 37866 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
|_EH*nWtAsmF|zZ^CqBuD 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 diff --git a/content/self-host/rustdesk-server-oss/install/images/server-set-window.png b/content/self-host/rustdesk-server-oss/install/images/server-set-window.png index ee41156dd13fe3d46d622e037967c6a7f75ea56f..c839554a6ba12b2d4a48ab7245ccabf402b7863a 100644 GIT binary patch literal 40468 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 GCjJ*i2(J(T From e5a73da909fe5b99f42d26fc087763ed12e7b41f Mon Sep 17 00:00:00 2001 From: XLion Date: Thu, 29 Feb 2024 22:50:44 +0800 Subject: [PATCH 5/5] Add NAT Loopback for Traditional Chinese --- .../nat-loopback-issues/_index.zh-tw.md | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 content/self-host/nat-loopback-issues/_index.zh-tw.md diff --git a/content/self-host/nat-loopback-issues/_index.zh-tw.md b/content/self-host/nat-loopback-issues/_index.zh-tw.md new file mode 100644 index 0000000..15a20f7 --- /dev/null +++ b/content/self-host/nat-loopback-issues/_index.zh-tw.md @@ -0,0 +1,117 @@ +--- +title: NAT Loopback 問題 +weight: 500 +pre: "2.5. " +--- + +{{% notice note %}} +此說明牽涉到複雜的網路知識,我們需要您的指導來增加它的可讀性。 +{{% /notice %}} + +當您將您的伺服器部署在您的家中,或任何其他會將您的伺服器和客戶端放在**同一區網或同一路由器之後**的環境,您可能會發現您無法透過 **``公共 IP``** or **``網域``** (在理論上也是指向同一個公共IP)連結至您的伺服器。 + +更多有關 NAT Loopback 的詳情,請參閱 [維基百科(英文)](https://en.wikipedia.org/wiki/Network_address_translation#NAT_hairpinning) + +用較簡單的方式說明: + +舉例來說: 您的路由器的公共IP是 ``8.8.8.8``,您的伺服器的區網IP是 ``192.168.11.20`` 您所希望的網域是 ``rustdesk.example.com``,然後路由器的 port forwarding 已正確設置。 + +您的客戶端和伺服器在同一臺路由器之後,所以當您區域網路的裝置要連線到 ``rustdesk.example.com`` 的時候,首先,它會解析這個網域的IP,也就是 ``8.8.8.8``,然後連接到這個IP,接著您的路由器可能會直接**不知道**這條連線該去哪裡,然後它會覺得這個連接應該會想要去路由器它自己,接著您的連結就會失敗。 + +## 解決方法 +有3個方式可以解決這個問題。 + +### 1. 在您的路由器設置 NAT Loopback + +如果您知道如何設置的話您可以直接設置,但是設定這個需要網路知識,而且有些路由器可能沒有調整這個設定的能力,所以這不是最好的解決方案。 + +{{% notice note %}} +一篇來自 [MikroTik](https://help.mikrotik.com/docs/display/ROS/NAT#NAT-HairpinNAT) 的文章解釋這個的非常棒,您可以從這開始學習。 +{{% /notice %}} + +### 2. 在您的區域網路部署一個DNS伺服器 +首先,挑一個您喜歡的 [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome/wiki/Docker) 或 [PiHole](https://github.com/pi-hole/docker-pi-hole),您可以使用 docker 部署,也可以部署這個跟 RustDesk Server 在同一台伺服器。以下範例會使用它們作為範例。 + +它們都是基於 DNS 的廣告攔截器,如果您不想要封鎖廣告,您可以關閉此功能。 + +首先,指向您的 ``網域`` 至您的 RustDesk Server 的 LAN IP (例如: ``192.168.11.20``),接著到您的路由器的 ``DHCP`` 設定 **(警告: 不是 WAN 網際網路)** + +請看範例: +#### AdGuard Home +封鎖廣告可能會造成問題,如果您不想要尋找解決方法,並且想要關閉這個功能,請選擇"禁用保護"按鈕。 + +![](images/adguard_home_disable_protection.png) +
+ +去 "DNS 改寫" 設定。 + +![](images/adguard_home_click_dns_rewrites.png) +
+ +點擊 "新增 DNS 改寫",接著輸入 ``網域`` 和伺服器的 ``LAN IP`` 至輸入框。 + +![](images/adguard_home_dns_rewrite_dialog.png) +最終結果看起來像這樣。 + +![](images/adguard_home_dns_rewrite_final_result.png) +***別忘記指派 AdGuard Home 到您路由器的LAN DHCP!*** +
+ +### PiHole +封鎖廣告可能會造成問題,如果您不想要尋找解決方法,並且想要關閉這個功能,請選擇 "Disable Blocking" 中的 "Indefinitely" 按鈕。 + +![](images/pi_hole_disable_blocking.png) + +前往 Local DNS > DNS Records +輸入 ``網域`` 和伺服器的 ``LAN IP`` 至輸入框, 接著點擊 "Add"。 + +要檢查最終結果,請檢查圖片中的黃線。 + +![](images/pi_hole_local_dns_dns_records.png) + +***別忘記指派 PiHole 到您路由器的LAN DHCP!*** + +### 3. 在您的 hosts 檔案中添加規則 +只當您只有幾臺設備時建議採用此做法,如果您有很多的設備,DNS 方法是更推薦的。 + +{{% notice warning %}} +如果您的環境有筆記型電腦,請**不要**使用此方法,因為這臺筆電會在你的區域網路之外時,沒辦法連接到您的伺服器。 +{{% /notice %}} + + + +不同作業系統的路徑: + +> Windows +```plaintext +C:\Windows\system32\drivers\etc\hosts +``` +複製這個檔案到 ``桌面`` 然後編輯它,在您編輯完它之後,把他複製回原來的位置。 + +> macOS +```plaintext +/etc/hosts +``` +可以使用已預先安裝的 ``vim``。 +```bash +sudo vim /etc/hosts +``` + + +> Linux +```plaintext +/etc/hosts +``` +您可以使用 ``vim`` 或 ``nano`` +```bash +sudo vim /etc/hosts +``` + +
+ +這些作業系統的格式都是相同的,都是 ``IP`` 先然後 ``網域`` + +例如: +```plaintext +192.168.11.20 rustdesk.example.com +```