跳到主內容

RustDesk 通訊錄架設

  想要使用到通訊錄版本的話需要用到 RustDesk Pro 版本才有支援,剛好在 GitHub 上面看到有人用 Python 架設一套 For RustDesk 開源版的自置服務,如果連線設備很多的話想要做記錄或者分類可以利用通訊錄方式來做處理,另外還有一個好處就是萬一電腦不信重灌或者您想要在其他電腦上面也可以連線操作,只要登入您的帳號就可以看到您之前的連線記錄。

如果您有使用到 API 服務話,那您要在每台客戶端都一定要設定連線資訊

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: Debian 11

安裝過程


  作者有提供 Docker 版本,但 BUBU 是採用一般方式來架設,後續會在更新搭配用 Nginx 方式來處理連線方式及一些阻檔機制。

  • 安裝必要套件
apt install pkg-config python3-dev default-libmysqlclient-dev build-essential python3-pip -y
  • 指定下載位置
cd /opt/
  • GitHub 下載程式
git clone https://github.com/kingmo888/rustdesk-api-server.git
  • 下載完後進到該目錄
cd rustdesk-api-server
  • 讀取安裝清單 requirements.txt
pip3 install -r requirements.txt
  • 測試啟動服務
python3 manage.py runserver 0.0.0.0:21114
  • 在網頁上填入 http://站台連線位置:21114

  • 註冊成服務 vim /etc/systemd/system/RustDesk-api.service
[Unit]
Description=RustDesk-api Python Script
After=network.target

[Service]
# 執行服務路徑
ExecStart=/usr/bin/python3 /opt/rustdesk-api-server/manage.py runserver 0.0.0.0:21114
Restart=always
RestartSec=5
StandardOutput=append:/var/log/RustDesk-api_output.log
StandardError=append:/var/log/RustDesk-api_error.log

[Install]
WantedBy=multi-user.target
  • 重新載入 systemd 設定
sudo systemctl daemon-reload
  • 啟動該服務
systemctl enable RustDesk-api.service --now
  • 登入之前請先註冊管理者帳號,填入管理者帳號及密碼,再回到登錄畫面

  • 登入後的畫面

  • 您在到客戶端上設定 API 伺服器

  • 點選通訊錄然後按下登入

  • 填入您自己的帳密即可

  • 成功登入會出現下面畫面

  • 新增加連線到通訊錄方式

  • 再回到通訊錄確認是否有剛剛新增加連線記錄

Nginx代理服務


server {
	listen 80;
	server_name 站台連線位置;
	rewrite ^(.*)$ https://${server_name}$1 permanent;
}
#
server {
	# 使用 https 和 http/2 協定
	listen 443 ssl;
	http2 on;
	# 上述的 IPv6 方式
	listen [::]:443 ssl;
	#
	server_name 站台連線位置;
	#
	# certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
	#
	# SSL 憑證證書路徑
	ssl_certificate /etc/nginx/ssl/freedomstu.com/fullchain.pem;
	# 私鑰路徑
	ssl_certificate_key /etc/nginx/ssl/freedomstu.com/privkey.pem;
	# 緩存有效期
	ssl_session_timeout 1d;
	# 緩存憑證類型和大小
	ssl_session_cache shared:SSL:50m;
	#
	# intermediate configuration. tweak to your needs.
	#
	# 使用的加密協定
	ssl_protocols TLSv1.3 TLSv1.2;
	# 加密演算法,越前面的優先級越高
	ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
	# 交握過程使用 Server 的首選加演算法,這裡使用 Client 為首選
	ssl_prefer_server_ciphers on;
	#
	#
	access_log /var/log/nginx/rustapi_access.log;
	error_log /var/log/nginx/rustapi_error.log;
	#
	location / {
		proxy_pass http://站台連線位置:21114;
		proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
		proxy_set_header Host $host;
		proxy_set_header X-Real_IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header REMOTE-HOST $remote_addr;
        add_header X-Cache $upstream_cache_status;
        # cache
        add_header Cache-Control no-cache;
        expires 12h;
	}
}

參數設定


  • 作者有提供可修改的參數,修改設定檔位置是在 vim rustdesk_server_api/settings.py

# ID服務 站台連線位置,用於 Web client 使用
ID_SERVER = os.environ.get("ID_SERVER", ' ')

# 修改可註冊服務,那預設是 True,如不想開放對外註冊可以在這裡修改成 False
ALLOW_REGISTRATION = os.environ.get("ALLOW_REGISTRATION", "False")

# 修改時區
TIME_ZONE = 'Asia/Taipei'

相關參數可以參考作者所提供的說明 環境變數

補充說明


備註





參考相關網頁