分享程式代碼相關筆記
目前文章總數:255 篇
最後更新:2026年 10月 24日
RustDesk 是開源的跨平台遠端桌面工具,能進行畫面控制、剪貼簿同步與檔案傳輸。
一般使用方式是在控制端輸入遠端電腦顯示的 RustDesk ID,再輸入一次性或固定密碼建立連線。
控制端 RustDesk
↓ 輸入九位數 ID
RustDesk ID Server:協助找到遠端裝置
↓ NAT Traversal/Hole Punching
遠端電腦
↓ 直連失敗時
RustDesk Relay Server:中繼流量
一般使用者不需要理解伺服器細節就能快速遠端協助,這是 RustDesk 公開 ID 模式的優點。
| 方案 | 連線識別 | 是否依賴 RustDesk Server | 適合情境 |
|---|---|---|---|
| 1. 公開 ID | RustDesk 九位數 ID | 是,使用公開服務 | 臨時協助、快速開始 |
| 2. Tailscale + Direct IP | Tailscale 100.x.x.x 私有 IP | 否 | 自己的多台設備、家人或固定成員 |
| 3. 自架 Server | 自建 ID/Relay Server | 是,自己維護 hbbs/hbbr | 公司管理、完整掌控後端 |
本篇採用第 2 種方案。RustDesk 負責桌面控制與權限驗證,Tailscale 負責讓兩台裝置在私人加密網路中互相找到。
RustDesk 主畫面的 Control Remote Desktop 欄位可以接受公開 ID,也可以在啟用 Direct IP access 後輸入 IP 位址。
公開模式:輸入 RustDesk ID,例如 58 600 931
本篇模式:輸入 Tailscale IP,例如 100.80.10.20
所以這篇不是把 RustDesk ID 綁定到 Tailscale,而是以穩定的 Tailnet 私有 IP 取代公開 ID 查找流程。
Tailscale 分配的 100.x.y.z 位址會在裝置持續註冊於同一 Tailnet 期間維持穩定,適合建立固定遠端入口。
RustDesk Direct IP 預設監聽 TCP 21118,但不代表應把這個連接埠直接暴露到 Internet。
不建議:Internet → 公網 IP:21118 → 路由器轉發 → RustDesk
本篇:控制端 → Tailscale 加密 Tailnet → 100.x.x.x:21118 → RustDesk
Tailscale 會先確認裝置身分及 Tailnet 權限,只有獲得授權的節點能接觸這個私人位址。
因此家用路由器不必設定 Port Forwarding,也不需要申請固定公網 IP 或 Dynamic DNS。
假設控制端是 外出的筆電,遠端端點是家中的桌機 , 兩台電腦分別位於手機網路與家用 NAT 後方:
外出筆電 家中桌機
192.168.x.x → 電信 NAT → Internet ← 分享器 NAT ← 192.168.x.x
兩台電腦的 192.168.x.x 都只是各自區域網路的私有位址,不能直接跨 Internet 使用。
RustDesk 公開 ID Server 可以協助打洞,但失敗時可能改走 Relay
※自己架 Server 會需要額外維護網域、憑證、防火牆與連接埠
為了簡單、高效、兼具安全性,因此採用 Tailscale + Rustdusk 的方式
Tailscale 以 WireGuard 為基礎,將登入並取得授權的裝置組成 Tailnet。每台裝置會取得專用的 Tailscale IP:
外出筆電:100.70.10.11
家中桌機:100.80.20.22
100.70.10.11 ←── Tailscale 加密通道 ──→ 100.80.20.22
即使實際網路位置改變,應用程式仍可使用相同 Tailscale IP 找到裝置。
Tailscale 會盡量建立 點對點(Peer-to-Peer) 連線
若 NAT 環境無法直連,則可能使用 DERP Relay 傳送仍經端對端加密的封包。
控制端 Windows
├─ Tailscale:登入 Tailnet
└─ RustDesk:輸入 100.x.x.x
│
│ Tailscale 加密通道
↓
遠端 Windows
├─ Tailscale:登入同一 Tailnet/接受 Share
└─ RustDesk:Enable direct IP access
└─ TCP 21118
這個方案繞過 RustDesk ID/Relay 基礎設施,但沒有移除 RustDesk 的密碼與桌面操作權限。
必須同時通過 Tailscale 網路存取與 RustDesk 驗證,才能真正控制桌面。
| 項目 | 控制端 | 遠端端點 |
|---|---|---|
| Windows 10/11 | ✓ | ✓ |
| 安裝 Tailscale | ✓ | ✓ |
| 安裝 RustDesk | ✓ | ✓ |
| 加入 Tailnet/接受 Share | ✓ | ✓ |
| Enable direct IP access | 選用 | 必須 |
| RustDesk 存取密碼 | 需要知道 | 設定或顯示 |
| 保持電腦開機與網路連線 | ✓ | ✓ |
第一次設定時建議 兩台電腦都在身邊 ,確定開機啟動、權限與防火牆正常後,再從外部網路測試。
進入 Tailscale Admin Console,以自己的身分提供者登入。
第一次登入後會建立 Tailnet,後續可在 Machines 管理所有裝置與私人 IP。
Tailnet:由 Tailscale 管理的私人裝置網路
Machine:加入 Tailnet 的電腦、手機、伺服器或 NAS
選擇 Email 或自己熟悉的方式註冊建立
進入 Tailscale Windows Download,下載並執行 .exe 安裝程式。
控制端:安裝 → 系統匣 Tailscale 圖示 → Log in
遠端端點:安裝 → 系統匣 Tailscale 圖示 → Log in
Windows 版目前需要 Windows 10 以上或 Windows Server 2016 以上。
確保兩台電腦都安裝完成
完成登入後,回到 Admin Console 的 Machines,確認兩台裝置都顯示 Connected。
Windows 的右下角有常駐軟體的 Icon 顯示
在 Machines 找到遠端電腦,複製 Addresses 欄位的 IPv4 (舉例,可搭配圖):
Remote-PC
100.80.20.22
請記錄遠端端點的 Tailscale IP,而不是家中 192.168.x.x、公網 IP 或 Tailscale DNS Server 100.100.100.100。
把 控制端 、 遠端端點 記錄下來
進入 RustDesk 官方網站下載 Windows 版本,至少要在遠端端點完成安裝。
若只執行 Portable 版本,重新登入、鎖定畫面或 UAC 提權時可能受到限制;
需要長期無人值守時,建議完成服務安裝並設定開機啟動。
控制端:負責發起遠端桌面連線
遠端端點:持續執行 RustDesk,等待 TCP 21118 Direct IP 連線
在遠端端點開啟 RustDesk:
設定 → 安全 → 啟用 IP 直接存取 → 套用
※保持預設 TCP 21118 可以減少設定差異。若修改 Port,控制端、防火牆與 Access Policy 也要使用相同數值。
如果遠端電腦旁有人,可以使用畫面左上的 一次性密碼
但因為我們是 Tailscale + Rustdusk ,因此可以讓遠端電腦保持開啟,設定 固定密碼 更方便(遠端被控制的電腦不用按下接收控制):
設定 → 安全 → 固定密碼 → 設定
設定固定密碼
回到控制端 RustDesk,在 遠端控制 欄位輸入 IP:
EX: 100.80.10.20
按下 Connect,出現驗證視窗後輸入遠端端點的 RustDesk 一次性或固定密碼。
這樣就打通連線了
檢查順序:
1. 遠端 RustDesk 是否正在執行
2. Enable direct IP access 是否開啟
3. Direct IP Port 是否為 21118
4. Test-NetConnection 是否成功
5. Windows Firewall 是否允許 RustDesk
6. Tailscale Policy 是否阻擋 TCP 21118
如果 tailscale ping 成功、TCP 測試失敗,問題通常在 RustDesk Listener 或遠端防火牆,而不是 Tailscale 登入。
192.168.x.x 是區域網路位址,只能在相同 LAN 或具備對應 Subnet Route 時使用。
跨網路連線應輸入遠端 Tailscale 分配的:
100.x.x.x
不要輸入 ISP 公網 IP,也不需要在路由器設定 21118 Port Forwarding。
Tailscale IP 在裝置持續註冊期間通常穩定,但以下操作可能取得新位址:
- 從 Tailnet 移除後重新加入
- Reset/重新安裝並失去 Node Key
- 重灌系統或清除裝置資料
- 管理員修改 IP Pool 或手動調整位址
若經常記不住 IP,可以在連線驗證完成後啟用 MagicDNS,並為裝置設定清楚的 Machine Name。
| 需求 | Tailscale + Direct IP | 自架 RustDesk Server |
|---|---|---|
| 少量固定裝置互連 | 適合 | 可用但設定較多 |
| 不開公網 Port | 適合 | 通常仍需公開服務入口 |
| 完整 ID/Relay 基礎設施 | 不需要 | 提供 |
| 大量使用者與集中管理 | 能做部分 Policy 管理 | Pro 功能更完整 |
| 臨時支援陌生使用者 | 需邀請/分享 Tailscale | 公開 ID 較直覺 |
自己的設備、家人電腦或固定小團隊很適合本篇方案
大量端點、企業稽核或需集中式通訊錄時,仍應評估 RustDesk Server Pro 或其他企業遠端管理工具。
這篇透過 Tailscale 建立私人加密網路,再啟用 RustDesk Direct IP access,完成不依賴 RustDesk 公開 ID/Relay Server 的跨網路遠端桌面。
最終流程:
1. 兩台電腦安裝並登入 Tailscale
2. 加入同一 Tailnet,或 Share 指定遠端裝置
3. 記錄遠端 100.x.x.x
4. 在遠端 RustDesk 開啟 Direct IP access,Port 21118
5. 設定 RustDesk 一次性或固定密碼
6. 控制端 RustDesk 輸入 Tailscale IP
只要使用的是 Tailnet 私有 IP,流量仍受 Tailscale 身分控制與加密保護
※記住 : 不需要把 RustDesk Port 暴露到網際網路