Merge branch 'master' into BD-translation

This commit is contained in:
TanvirTian 2025-11-25 15:10:24 +06:00 committed by GitHub
commit e25e20c5ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
78 changed files with 11393 additions and 768 deletions

25
content/_index.ro.md Normal file
View File

@ -0,0 +1,25 @@
---
title: "Documentația RustDesk - Desktop Remote Open Source"
description: "Documentație completă pentru RustDesk - software-ul open source pentru desktop remote. Aflați cum să găzduiți singur, să configurați clienți și să implementați RustDesk în infrastructura dvs."
keywords: ["rustdesk", "desktop remote", "open source", "self-host", "documentație", "acces remote", "alternativă VNC", "alternativă TeamViewer"]
type: docs
weight: 1
---
RustDesk este o alternativă completă open source pentru control remote, ideală pentru auto-găzduire și securitate cu configurație minimă. Aveți control complet asupra datelor dvs., fără griji legate de securitate. Clientul este open source și există posibilitatea de a alege între **Professional Server** complet, disponibil pentru achiziție pe [website-ul nostru](https://rustdesk.com), și Serverul de bază gratuit și open source, bazat pe **Professional Server**.
## Funcționalități
- Funcționează pe Windows, macOS, Linux, iOS, Android, Web.
- Suport pentru codecuri software VP8 / VP9 / AV1 și codecuri hardware H264 / H265.
- Dețineți datele dvs. și configurați cu ușurință o soluție de self-hosting pe infrastructura dvs.
- Conexiune P2P cu criptare end-to-end bazată pe NaCl.
- Nu sunt necesare privilegii administrative sau instalare pentru Windows; se poate obține privilegiu ridicat local sau de la distanță la cerere.
- Ne place să păstrăm lucrurile simple și ne străduim să le simplificăm și mai mult acolo unde este posibil.
## Repozitoare GitHub
- **Repozitoriu Principal Client**: https://github.com/rustdesk/rustdesk
- **Repozitoriu Server Open Source**: https://github.com/rustdesk/rustdesk-server
- **Repozitoriu Server Pro**: https://github.com/rustdesk/rustdesk-server-pro
- **Repozitoriu Documentație**: https://github.com/rustdesk/doc.rustdesk.com
{{% children depth="4" showhidden="true" %}}

139
content/client/_index.ro.md Normal file
View File

@ -0,0 +1,139 @@
---
title: Client RustDesk
weight: 2
pre: "<b>1. </b>"
---
## Introducere
Clientul RustDesk este folosit pe dispozitive pentru a se conecta prin intermediul serverului RustDesk, fie open source, fie Pro. Este disponibil pentru descărcare pe [GitHub](https://github.com/rustdesk/rustdesk/releases/latest).
## Platforme suportate
- Microsoft Windows
- macOS
- Derivate Debian (Ubuntu ≥ 16, Linux Mint etc.)
- Derivate Red Hat (CentOS, Fedora ≥ 18, Rocky Linux etc.)
- Arch Linux / Manjaro
- openSUSE
- NixOS
- AppImage / Flatpak
- Android
- iOS (nu suportă controlul)
- Web
## Instalare
### Windows
Descărcați fișierul .exe de pe GitHub și instalați.
Pentru instalare silențioasă, rulați executabilul de instalare cu `--silent-install`.
### macOS
Descărcați fișierul .dmg de pe GitHub; mai multe informații găsiți pe [pagina macOS](https://rustdesk.com/docs/en/client/mac/).
Deschideți fișierul .dmg și trageți `RustDesk` în `Applications`.
Permiteți rularea RustDesk.
Activați permisiunile solicitate și urmați solicitările din partea stângă a ferestrei RustDesk pentru a finaliza configurarea.
### Linux
Vă rugăm să consultați instrucțiunile de mai jos pentru diferitele „arome” de Linux (instalatoarele sunt pe GitHub sau pot fi disponibile din depozitul distribuției).
#### Derivate Debian
```sh
# vă rugăm să ignorați raportul incorect de utilizare a discului
sudo apt install -fy ./rustdesk-<version>.deb
```
#### Derivate Red Hat
```sh
sudo yum localinstall ./rustdesk-<version>.rpm
```
#### Arch Linux/Manjaro
```sh
sudo pacman -U ./rustdesk-<version>.pkg.tar.zst
```
#### openSUSE (≥ Leap 15.0)
```sh
sudo zypper install --allow-unsigned-rpm ./rustdesk-<version>-suse.rpm
```
#### Nix / NixOS (≥ 22.05)
Intrați temporar într-un shell care are `rustdesk` gata de rulat:
```sh
nix shell nixpkgs#rustdesk
```
Instalați în profilul utilizatorului curent:
```sh
nix profile install nixpkgs#rustdesk
```
Pentru a instala la nivel de sistem în NixOS rulați `nixos-rebuild switch --flake /etc/nixos` după ce modificați `configuration.nix`:
```
environment.systemPackages = with pkgs; [
...
rustdesk
];
```
### Android
Instalați APK-ul din GitHub; mai multe informații găsiți pe [pagina Android](https://rustdesk.com/docs/en/client/android/).
### iOS (iPhone, iPad)
Descărcați aplicația din [App Store](https://apps.apple.com/us/app/rustdesk-remote-desktop/id1581225015).
## Utilizare
Odată instalat (sau rulat ca executabil temporar), RustDesk se va conecta la serverele publice. Veți vedea un mesaj în partea de jos care spune (1) „Ready, For faster connection, please set up your own server”. În partea stângă sus veți vedea (2) ID-ul, (3) parola de o singură utilizare și în dreapta un (4) câmp pentru a vă conecta la un alt calculator dacă cunoașteți ID-ul acestuia.
![](/docs/en/client/images/client.png)
Pentru a accesa setările, faceți clic pe butonul (5) Meniu [ &#8942; ] din dreapta ID-ului.
În Setări veți găsi:
- General Controlul serviciului, Temă, Hardware Codec, Audio, Înregistrare și Limbă
- Securitate Permisiuni pentru preluarea controlului, opțiuni de parolă, posibilitatea de a schimba ID-ul și Setări Avansate de Securitate
- Rețea Aici configurați setările propriului server și proxy-ul
- Afișare Controlați setările de afișare pentru sesiunile la distanță și alte opțiuni implicite, sincronizarea clipboard-ului etc.
- Cont Poate fi folosit împreună cu Serverul Pro pentru autentificare în API
- Despre Afișează informații despre software.
## Configurarea RustDesk
Există mai multe modalități de a configura RustDesk.
Cea mai simplă metodă este folosind RustDesk Server Pro: puteți obține un șir de configurare criptat, care poate fi folosit împreună cu `--config` pentru a importa setările. Pentru a face acest lucru:
1. Deschideți linia de comandă pe sistemul de operare pe care îl folosiți, în folderul unde este instalat RustDesk, de ex. `C:\Program Files\RustDesk` pe Windows sau `/usr/bin` pe Linux.
2. Folosiți comanda `rustdesk.exe --config your-encrypted-string`, ex. `rustdesk.exe --config 9JSPSvJzNrBDasJjNSdXOVVBlERDlleoNWZzIHcOJiOikXZr8mcw5yazVGZ0NXdy5CdyciojI0N3boJye`.
Puteți configura manual un client. Pentru aceasta:
1. Faceți clic pe Setări.
2. Faceți clic pe Rețea.
3. Faceți clic pe Deblocați setările de rețea.
4. Introduceți ID-ul, Relay, API (dacă folosiți server Pro) și cheia.
![](/docs/en/client/images/network-settings.png)
Dacă configurați manual un client, puteți prelua fișierul `RustDesk2.toml` (din folderul utilizatorului) și folosiți `--import-config` într-un mod similar cu exemplul de mai sus.
## Parametri linie de comandă
- `--password` poate fi folosit pentru a seta o parolă permanentă.
- `--get-id` poate fi folosit pentru a obține ID-ul.
- `--set-id` poate fi folosit pentru a seta un ID; rețineți că ID-urile ar trebui să înceapă cu o literă.
- `--silent-install` poate fi folosit pentru a instala RustDesk silențios pe Windows.
Parametrii avansați suplimentari pot fi găsiți [aici](https://github.com/rustdesk/rustdesk/blob/bdc5cded221af9697eb29aa30babce75e987fcc9/src/core_main.rs#L242).
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,146 @@
---
title: Android
weight: 4
---
## Control la distanță
Introduceți ID-ul dispozitivului la distanță pe pagina principală sau selectați un dispozitiv din istoricul recent pentru a verifica.
După ce verificarea este reușită, puteți controla dispozitivul la distanță.
| Home | Conectat cu succes |
| --- | --- |
| ![](/docs/en/client/android/images/connection_home_en.jpg?width=300px) | ![](/docs/en/client/android/images/connection_en.jpg?width=300px) |
Controlul de intrare oferă două moduri: `Mouse mode` și `Touch mode`, care pot fi comutate prin bara de instrumente din partea de jos.
| Setări mouse | Selecție mod |
| --- | --- |
| ![](/docs/en/client/android/images/touch_mode_icon_en.png?width=300px) | ![](/docs/en/client/android/images/touch_mode_en.jpg?width=300px) |
{{% notice note %}}
În `Mouse mode`, puteți, de asemenea, să declanșați butonul `Right Mouse` al dispozitivului la distanță cu un `Two-Finger Tap`.
{{% /notice %}}
## Transfer de fișiere (Android)
> Necesită RustDesk ≥ 1.1.9
În lista de dispozitive de pe pagina principală, selectați dispozitivul.
Apăsați lung sau atingeți meniul din dreapta pentru a selecta `File Transfer`.
| Home | Conectat cu succes |
| --- | --- |
| ![](/docs/en/client/android/images/connection_home_file_en.jpg?width=300px) | ![](/docs/en/client/android/images/file_connection_en.jpg?width=300px) |
- Directorul inițial este directorul Home al dispozitivului; puteți face clic pe <i class="fas fa-home"></i> pentru a reveni rapid la Home.
- Sub bara de titlu se află nivelul directorului; puteți face clic pe folderul corespunzător pentru a sări rapid.
- Faceți clic pe <i class="fas fa-arrow-up"></i> pentru a accesa directorul părinte.
- Calea absolută curentă și statisticile proiectului sunt afișate în partea de jos a listei.
- Faceți clic pe `Local` / `Remote` din bara de titlu pentru a comuta paginile.
### Cum transfer fișiere?
1. **Apăsați lung** pe un fișier sau folder din listă pentru a intra rapid în **modul de selecție multiplă**, care permite selectarea mai multor elemente.
2. După selectarea fișierelor, comutați pagina `Local` / `Remote`. După comutare, veți vedea promptul `Paste here?` în partea de jos a ecranului.
3. Faceți clic pe pictograma de lipire (paste) din imagine pentru a transfera elementele selectate în directorul țintă.
| Mod selecție multiplă | Lipire fișiere |
| --- | --- |
| ![](/docs/en/client/android/images/file_multi_select_en.jpg?width=300px) | ![](/docs/en/client/android/images/file_copy_en.jpg?width=300px) |
## Setare ID / Relay Server
1. Faceți clic pe `Settings` în bara de navigare de jos.
2. Faceți clic pe `ID/Relay Server`.
3. Introduceți hostname-ul/IP-ul serverului dvs. în câmpul `ID Server`. Lăsați `Relay Server` și `API Server` necompletate și introduceți cheia publică (opțional, necesară pentru criptare) în câmpul `Key`. Apăsați **OK** pentru a salva setările. Aplicația se va comuta automat la serverul specificat.
Puteți configura și scanând un cod QR. Pentru a genera codul QR, folosiți următorul format (modificați valorile `host` și `key` cu ale dvs.):
```nolang
config={"host": "xxx", "key": "xxx"}
```
Apoi mergeți la un [generator QR online](https://www.qr-code-generator.com/) și lipiți codul de mai sus.
Imaginea de mai jos este un screenshot de pe Android. Dacă folosiți iOS, verificați meniul din dreapta sus al paginii principale.
![](/docs/en/client/android/images/id_setting_en.jpg?width=300px)
## Partajați ecranul / fișierele telefonului Android
Începând cu versiunea 1.1.9, clientul Android a adăugat funcțiile de partajare a ecranului telefonului și de partajare a sistemului de fișiere al telefonului.
- Este necesar Android 6 sau versiuni mai noi pentru partajarea ecranului
- Este necesar Android 10 sau versiuni mai noi pentru a partaja audio intern al sistemului telefonului
- iOS încă nu suportă partajarea ecranului
### Solicitați permisiuni și porniți serviciile
Faceți clic pe `Share Screen` din bara de navigare de jos.
Configurați permisiunile necesare. De fiecare dată când porniți RustDesk, trebuie să solicitați din nou permisiunile de „Screen Capture” și „Input Control”.
![](/docs/en/client/android/images/server_off_en.jpg?width=300px)
| Permisiuni | Descriere |
| --- | --- |
| Screen Capture | Dacă este activată, permite partajarea capturii ecranului; serviciul de monitorizare va fi activat la pornire |
| Input Control* | Permite celui care controlează să trimită evenimente de intrare către telefon (de ex. simulare touch cu mouse-ul) |
| File transfer* | Permite activarea permisiunii de transfer fișiere; după pornire, puteți controla de la distanță sistemul de fișiere al telefonului |
| Audio capture | Permite partajarea sunetului intern al telefonului (nu microfonul) |
{{% notice note %}}
De mai sus, * indică permisiuni speciale. Pentru a obține astfel de permisiuni, va trebui să accesați manual pagina de setări a sistemului Android. Detaliile sunt descrise mai jos.
{{% /notice %}}
### Cerere permisiune specială - Fișiere
| Cererea permisiunilor pentru fișiere pe Android va deschide automat pagina de setări a sistemului |
| :---: |
| ![](/docs/en/client/android/images/get_file_en.jpg?width=300px) |
### Cerere permisiune specială - input mouse
| Pasul 1: Găsiți „Installed Services” | Pasul 2: Porniți RustDesk Input |
| --- | --- |
| ![](/docs/en/client/android/images/get_input1_en.jpg?width=300px) | ![](/docs/en/client/android/images/get_input2_en.jpg?width=300px) |
{{% notice note %}}
Pagina de setări a sistemului poate diferi în funcție de producător; ajustați conform paginii de setări a dispozitivului dvs.
{{% /notice %}}
| Scurtături control mouse la distanță | Descriere |
| --- | --- |
| Click buton drept mouse | Înapoi |
| Click rotiță mouse | Home |
| Apăsare lungă rotiță mouse | Aplicații recente |
| Derulare rotiță mouse | Simulează glisare verticală |
### Pornire serviciu
După obținerea permisiunii `Screen Capture`, serviciul va porni automat. Puteți, de asemenea, să apăsați butonul `Start Service` pentru a porni manual serviciul. După pornire, acesta poate accepta cereri de control de la distanță din partea altor dispozitive.
Dacă permisiunea `File Transfer` este activată, serviciul poate accepta și cereri de control al fișierelor de la distanță.
După pornirea serviciului, pentru acest dispozitiv va fi generat automat un ID unic și o parolă aleatorie. Alte dispozitive pot controla telefonul folosind ID-ul și parola sau prin confirmare manuală la primirea unei cereri noi.
| Înainte de pornirea serviciului | După pornirea serviciului |
| --- | --- |
| ![](/docs/en/client/android/images/server_off_en.jpg?width=300px) | ![](/docs/en/client/android/images/server_on_en.jpg?width=300px) |
{{% notice note %}}
1. Apăsarea `Start Service` va activa implicit permisiunea `Screen Capture`.
2. Când permisiunea `Screen Capture` nu este obținută, alte dispozitive nu pot trimite cereri de control.
3. În afară de permisiunea `Screen Capture`, comutarea celorlalte permisiuni va afecta doar conexiunile noi și nu va modifica conexiunile deja stabilite. Dacă trebuie să schimbați permisiunile pentru o conexiune activă, închideți mai întâi conexiunea curentă, modificați permisiunile și acceptați din nou cererea de control.
{{% /notice %}}
#### PC
![](/docs/en/client/android/images/android_server_pc_side_en.png?width=700px)
#### Terminal mobil
| Puteți opri serviciul sau închide o conexiune specificată în orice moment | Puteți primi sau iniția chat-uri |
| --- | --- |
| ![](/docs/en/client/android/images/server_on_en.jpg?width=300px) | ![](/docs/en/client/android/images/android_server2_en.jpg?width=300px) |

View File

@ -0,0 +1,100 @@
---
title: Linux
weight: 4
---
## Instalare
### Ubuntu (≥ 18)
```sh
# vă rugăm să ignorați raportul incorect de utilizare a discului
sudo apt install -fy ./rustdesk-<version>.deb
```
Pentru Ubuntu 18.04, rulați mai întâi pașii de mai jos pentru [pipewire](https://github.com/rustdesk/rustdesk/discussions/6148#discussioncomment-9295883).
```sh
sudo apt install software-properties-common
sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
sudo apt update
```
### CentOS/Fedora (≥ 28)
```sh
sudo yum localinstall ./rustdesk-<version>.rpm
```
### Arch Linux/Manjaro
```sh
sudo pacman -U ./rustdesk-<version>.pkg.tar.zst
```
### openSUSE (≥ Leap 15.0)
```sh
sudo zypper install --allow-unsigned-rpm ./rustdesk-<version>-suse.rpm
```
### AppImage
```sh
# Pentru Fedora
sudo yum install libnsl
./rustdesk-<version>.AppImage
```
```sh
# Pentru Ubuntu
sudo yum install libfuse2
./rustdesk-<version>.AppImage
```
### Flatpak
```sh
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install ./rustdesk-<version>.flatpak
flatpak run com.rustdesk.RustDesk
```
## ~~X11 necesar~~
~~RustDesk nu acceptă încă Wayland; trebuie să treceți manual la X11.~~
RustDesk are acum suport experimental pentru Wayland începând cu versiunea 1.2.0.
### Server de afișare
[Ubuntu](https://askubuntu.com/questions/1260142/ubuntu-set-default-login-desktop) |
[Fedora](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) |
[Arch Linux](https://bbs.archlinux.org/viewtopic.php?id=218319)
### Ecranul de autentificare
Ecranul de autentificare folosind Wayland nu este încă acceptat. Dacă doriți să accesați ecranul de autentificare după repornire sau deconectare cu RustDesk, trebuie să schimbați ecranul de autentificare la X11; modificați linia de mai jos în `WaylandEnable=false` în `/etc/gdm/custom.conf` sau `/etc/gdm3/custom.conf`:
```ini
#WaylandEnable=false
```
{{% notice note %}}
Vă rugăm **reporniți** sistemul pentru ca modificările de mai sus să aibă efect.
{{% /notice %}}
### Probleme de permisiuni
Dacă SELinux este activat, RustDesk nu va funcționa corect nici în medii X11, nici în Wayland; vedeți problemele relevante în repo.
Puteți rula:
```sh
$ sudo grep 'comm="rustdesk"' /var/log/audit/audit.log | tail -1
type=AVC msg=audit(1697902459.165:707): avc: denied { name_connect } for pid=31346 comm="rustdesk" dest=53330 scontext=system_u:system_r:init_t:s0 tcontext=system_u:object_r:ephemeral_port_t:s0 tclass=tcp_socket permissive=0
```
{{% notice note %}}
Numărul între paranteze după `audit` este un timestamp.
{{% /notice %}}
Dacă ieșirea conține `avc: denied`, trebuie să adăugați politici SELinux; consultați pagina [SELinux](https://rustdesk.com/docs/en/client/linux/selinux/).

View File

@ -0,0 +1,53 @@
---
title: Mac
weight: 3
---
## Instalare
Deschideți fișierul .dmg și trageți `RustDesk` în `Applications` după cum se arată mai jos.
![](/docs/en/client/mac/images/dmg.png)
Asigurați-vă că ați închis toate instanțele RustDesk care rulează. De asemenea, închideți serviciul RustDesk care apare în bara de sistem (tray).
![](/docs/en/client/mac/images/tray.png)
## Permiteți rularea RustDesk
| Deblocați pentru a modifica | Faceți clic pe `App Store and identified developers` |
| --- | --- |
| ![](/docs/en/client/mac/images/allow2.png) | ![](/docs/en/client/mac/images/allow.png) |
## Activarea permisiunilor
{{% notice note %}}
Din cauza unei schimbări în politica de securitate a macOS, API-ul nostru care capturează input-ul local nu mai funcționează implicit. Trebuie să activați permisiunea „Input Monitoring” (Monitorizare intrare) pe Mac-ul local.
Vă rugăm să urmați această discuție: [https://github.com/rustdesk/rustdesk/issues/974#issuecomment-1185644923](https://github.com/rustdesk/rustdesk/issues/974#issuecomment-1185644923).
În versiunea 1.2.4 puteți încerca `Input source 2`, vizibil făcând clic pe pictograma tastaturii din bara de instrumente.
{{% /notice %}}
Pentru a captura ecranul, trebuie să acordați RustDesk permisiunile **Accessibility** și **Screen Recording**. RustDesk vă va ghida către fereastra de setări.
| Fereastra RustDesk | Fereastra de setări |
| --- | --- |
| ![](/docs/en/client/mac/images/acc.png) | ![](/docs/en/client/mac/images/acc3.png?v2) |
Dacă ați activat permisiunile în fereastra de setări, dar RustDesk încă afișează avertismente, eliminați `RustDesk` din fereastra de setări folosind butonul `-`, apoi apăsați `+` și selectați `RustDesk` din `Applications`.
{{% notice note %}}
[https://github.com/rustdesk/rustdesk/issues/3261](https://github.com/rustdesk/rustdesk/issues/3261) <br>
Alte încercări neajutorătoare: <br>
`tccutil reset ScreenCapture com.carriez.RustDesk` <br>
`tccutil reset Accessibility com.carriez.RustDesk` <br>
Este posibil să fie necesară repornirea sistemului.
{{% /notice %}}
| Butonul `-` și `+` | Selectați `RustDesk` |
| --- | --- |
| ![](/docs/en/client/mac/images/acc2.png) | ![](/docs/en/client/mac/images/add.png?v2) |
Vă rugăm să repetați pașii de mai sus și pentru permisiunea **Screen Recording**.
![](/docs/en/client/mac/images/screen.png?v2)

View File

@ -0,0 +1,90 @@
---
title: MSI
weight: 49
---
>Pachetul MSI acceptă parametri din linia de comandă pentru instalare silențioasă.
## Parametri
## INSTALLFOLDER
Folderul de instalare.
**Implicit**: `[ProgramFiles6432Folder]\[app name]`, de obicei `C:\Program Files\[app name]`.
## CREATESTARTMENUSHORTCUTS
Dacă se creează sau nu scurtătura în meniul Start.
**Implicit**:
1. La instalare. Valoarea implicită este `1`.
2. La upgrade. Se păstrează opțiunile din instalarea precedentă.
| Nr. | Valoare | Descriere |
| :---: | :---: | :---: |
| 1 | `1` | Da |
| 2 | `0` | Nu |
| 3 | `Y` | Da, echivalent cu `1` |
| 4 | `N` | Nu, echivalent cu `0` |
## CREATEDESKTOPSHORTCUTS
Dacă se creează sau nu scurtătura pe desktop.
**Implicit**:
1. La instalare. Valoarea implicită este `1`.
2. La upgrade. Se păstrează opțiunile din instalarea precedentă.
| Nr. | Valoare | Descriere |
| :---: | :---: | :---: |
| 1 | `1` | Da |
| 2 | `0` | Nu |
| 3 | `Y` | Da, echivalent cu `1` |
| 4 | `N` | Nu, echivalent cu `0` |
## INSTALLPRINTER
Dacă se instalează un driver/printer. Imprimanta este folosită pentru a executa job-urile de imprimare ale părții controlate local.
Disponibil începând cu versiunea `1.3.9`.
**Implicit**:
1. La instalare. Valoarea implicită este `1`.
2. La upgrade. Se păstrează opțiunile din instalarea precedentă.
| Nr. | Valoare | Descriere |
| :---: | :---: | :---: |
| 1 | `1` | Da |
| 2 | `0` | Nu |
| 3 | `Y` | Da, echivalent cu `1` |
| 4 | `N` | Nu, echivalent cu `0` |
# Exemple
**Atenție**: Pentru versiunile anterioare datei `2024-08-05` există probleme cu instalarea silențioasă și reparațiile silențioase. Dezinstalați mai întâi, apoi instalați.
## Instalare cu parametri de instalare
Instalare silențioasă, setare cale de instalare, fără scurtătură pe desktop, cu scurtătură în meniul Start.
```
msiexec /i RustDesk-1.msi /qn INSTALLFOLDER="D:\Program Files\RustDesk" CREATESTARTMENUSHORTCUTS="Y" CREATEDESKTOPSHORTCUTS="N" INSTALLPRINTER="N" /l*v install.log
```
**Notă**: `/l*v install.log` înseamnă înregistrarea jurnalului de execuție în `install.log`.
## Upgrade, fără parametri
Upgrade folosind calea și opțiunile de instalare anterioare.
```
msiexec /i RustDesk-2.msi /qn /l*v install.log
```
## Upgrade, modificare opțiuni de instalare
```
msiexec /i RustDesk-1.msi /qn INSTALLFOLDER="C:\Program Files\RustDesk" CREATESTARTMENUSHORTCUTS="N" CREATEDESKTOPSHORTCUTS="N" INSTALLPRINTER="N" /l*v install.log
```

View File

@ -0,0 +1,6 @@
---
title: Windows
weight: 4
---
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,46 @@
---
title: Windows Portable Elevation
weight: 49
---
Programele portabile pentru Windows nu au privilegii de administrator, ceea ce poate cauza următoarele probleme:
- Ecranul nu poate fi transmis atunci când fereastra UAC (User Account Control) apare.
- Când apare o fereastră elevată, precum Task Manager, mouse-ul devine nefuncțional.
Prin ridicarea privilegiilor, RustDesk poate crea un proces cu privilegii de administrator la pornire sau în timpul unei sesiuni, permițând realizarea de capturi de ecran și operații cu mouse-ul, evitând astfel problemele de mai sus.
## Ridicare la pornire
Astfel, utilizatorii de la distanță nu trebuie să solicite elevare când se conectează. Există două metode:
* Metoda 1: Schimbați numele programului portabil pentru a include `-qs-` (versiunile 1.2.0, 1.2.1, 1.2.2, 1.2.3 se termină cu `qs.exe`). Faceți clic stânga pentru a rula, apoi apăsați `Accept` în fereastra UAC.
* Metoda 2: Faceți clic dreapta și rulați ca administrator.
## Ridicare la capătul controlat
Capătul controlat poate face direct clic pe `Accept and Elevate` la conectare, sau poate apăsa `Elevate` când este deja conectat.
| Connecting | Connected |
| :---: | :---: |
| ![](/docs/en/client/windows/windows-portable-elevation/images/cm_unauth.jpg) | ![](/docs/en/client/windows/windows-portable-elevation/images/cm_auth.jpg) |
## Solicitarea elevării la capătul care controlează
După selectarea `Request Elevation` din meniul de acțiuni, va apărea următorul dialog. Dacă alegeți `Ask the remote user for authentication`, nu va fi nevoie să introduceți un nume de utilizator și o parolă, dar utilizatorul de la distanță trebuie să aibă drepturi de administrator. Dacă selectați `Transmit the username and password of administrator`, utilizatorul de la distanță trebuie doar să apese Accept în fereastra UAC. După trimiterea cererii, așteptați ca utilizatorul de la distanță să accepte fereastra UAC. La confirmare va apărea un mesaj de succes. Rețineți că **ambele metode necesită ca cineva de la capătul controlat să accepte fereastra UAC**. Prin urmare, dacă nu este nimeni disponibil la celălalt capăt, nu solicitați elevarea de la capătul care controlează.
| Menu | Dialog |
| :---: | :---: |
| ![](/docs/en/client/windows/windows-portable-elevation/images/menu.png) | ![](/docs/en/client/windows/windows-portable-elevation/images/dialog.png) |
| **Wait** | **Success** |
| ![](/docs/en/client/windows/windows-portable-elevation/images/wait.png) | ![](/docs/en/client/windows/windows-portable-elevation/images/success.png) |
## Cum să alegeți
| Scenariu | Metodă |
| :---: | :---: |
| Nu este necesară elevarea | Instalați programul |
| Nu este nimeni disponibil la capătul controlat | Redenumiți<br/>*sau*<br/> Rulați ca administrator |
| Există un utilizator la capătul controlat<br/>*și*<br/> Elevare imediată la conectare<br/>*și*<br/> Conexiune acceptată prin click | Faceți clic `Accept and Elevate` la primirea conexiunii la capătul controlat |
| Există un utilizator la capătul controlat<br/>*și*<br/> Elevare la nevoie | Faceți clic `Elevate` în fereastra de gestionare a conexiunii la capătul controlat<br/>*sau*<br/> Solicitați elevarea de la capătul care controlează |

8
content/dev/_index.ro.md Normal file
View File

@ -0,0 +1,8 @@
---
title: Dezvoltare
weight: 8
pre: "<b>3. </b>"
chapter: true
---
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,8 @@
---
title: Build
weight: 1
---
Consultați [build.py](https://github.com/rustdesk/rustdesk/blob/master/build.py) pentru pachete versiunii desktop.
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,72 @@
---
title: Întrebări frecvente pentru Windows
weight: 40
---
## Descărcarea pachetului vcpkg a eșuat
### Eroare
```
-- Fetching https://chromium.googlesource.com/libyuv/libyuv 287158925b0e03ea4499a18b4e08478c5781541b...
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
Command failed: D:/program/Git/mingw64/bin/git.exe fetch https://chromium.googlesource.com/libyuv/libyuv 287158925b0e03ea4499a18b4e08478c5781541b --depth 1 -n
```
### Soluție
Folosiți browser-ul pentru a descărca [libyuv-287158925b0e03ea4499a18b4e08478c5781541b.tar.gz](https://chromium.googlesource.com/libyuv/libyuv/+archive/287158925b0e03ea4499a18b4e08478c5781541b.tar.gz), apoi mutați arhiva în `vcpkg/downloads` și reinstalați.
## Pachetul din Cargo.lock nu există
### Eroare
```
$ cargo run
Updating git repository `https://github.com/open-trade/confy`
warning: spurious network error (2 tries remaining): failed to receive response: Operation Timeout
; class=Os (2)
error: failed to get `confy` as a dependency of package `hbb_common v0.1.0 (D:\rustdesk\rustdesk\rustdesk\libs\hbb_common)`
Caused by:
failed to load source for dependency `confy`
Caused by:
Unable to update https://github.com/open-trade/confy#27fa1294
Caused by:
object not found - no match for id (27fa12941291b44ccd856aef4a5452c1eb646047); class=Odb (9); code=NotFound (-3)
```
Poate autorul a folosit `git force push` și commit-ul anterior a fost suprascris.
### Soluție
Rulați `cargo update` pentru a forța actualizarea pachetului.
## VCPKG_ROOT nu este setat
### Eroare
```
thread 'main' panicked at 'Failed to find package: VcpkgNotFound("No vcpkg installation found. Set the VCPKG_ROOT environment variable or run 'vcpkg integrate install'")', libs\scrap\build.rs:7:45
```
### Soluție
Adăugați variabila de mediu `VCPKG_ROOT`, sau rulați comanda cu `VCPKG_ROOT=<vcpkg_dir> cargo run`.
## clang nu este instalat sau LIBCLANG_PATH nu este setat
### Eroare
```
thread 'main' panicked at 'Unable to find libclang: "couldn't find any valid shared libraries matching: ['clang.dll', 'libclang.dll'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', C:\Users\selfd\.cargo\registry\src\mirrors.ustc.edu.cn-61ef6e0cd06fb9b8\bindgen-0.59.2\src/lib.rs:2144:31
```
### Soluție
Instalați [LLVM](https://releases.llvm.org/download.html) și adăugați variabila de mediu `LIBCLANG_PATH` care să pointeze la `llvm_install_dir/bin`.

View File

@ -0,0 +1,63 @@
---
title: Linux
weight: 10
---
## Cum se construiește pe Linux
### Ubuntu 18 (Debian 10)
```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake
```
### Fedora 28 (CentOS 8)
```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel
```
### Arch Linux (Manjaro)
```sh
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pulseaudio
```
### Instalare vcpkg
```sh
git clone --recurse-submodules https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.10.19
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$PWD/vcpkg
vcpkg/vcpkg install --x-install-root="$VCPKG_ROOT/installed"
```
### Corectare libvpx (pentru Fedora)
```sh
cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $VCPKG_ROOT/installed/x64-linux/lib/
cd
```
### Compilare
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
# Notă: VCPKG_ROOT rămâne setat
cargo run
```

View File

@ -0,0 +1,122 @@
---
title: macOS
weight: 21
---
Există mai multe moduri de a proceda; acest ghid pornește de la premisa că `Xcode`, `Git` și `Homebrew` sunt deja instalate.
Cea mai mare provocare este, probabil, să găsiți versiuni ale tuturor uneltelor care funcționează împreună, în special deoarece părți din toolchain, precum Xcode și LLVM, sunt dictate de versiunea macOS. Versiunile folosite în acest ghid s-ar putea să nu fie exact cele de care aveți nevoie. Un loc bun de început pentru a vedea ce versiuni s-au folosit este să verificați [workflow-ul de build de pe GitHub](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) pentru versiunea RustDesk pe care doriți să o compilați. Alegeți tag-ul dorit din colțul stânga-sus al paginii. Totuși, asta nu garantează succesul, deoarece tool-urile de pe runner-ul GitHub pot avea versiuni diferite față de cele de pe sistemul dvs. local.
### Export
Folosiți `export` pentru a seta diverse variabile de mediu. Când rulați `export`, variabila este setată doar pentru sesiunea terminalului curent, deci va trebui repetată pentru fiecare fereastră de terminal nouă în care doriți să compilați RustDesk. De regulă este preferabil să adăugați toate `export`-urile într-un script care se execută automat la deschiderea fiecărui terminal, de exemplu `~/.bash_profile`. Comenzile `export` listate aici pot fi adăugate pur și simplu la acel fișier, dar trebuie rulate și în terminalul curent deoarece fișierul nu va fi citit decât la deschiderea unui *nou* terminal.
## Instalați uneltele prin Homebrew
```sh
brew install python3 create-dmg nasm cmake gcc wget ninja pkg-config wget rustup
```
Unele instalări pot eșua deoarece anumite directoare țintă nu există pe sistem. În acest caz, creați folderul, setați proprietarul și permisiunile și rulați din nou comanda `brew`. Exemplu dacă `/usr/local/include` nu există:
```sh
sudo mkdir /usr/local/include
sudo chown <username>:admin /usr/local/include
sudo chmod 775 /usr/local/include
```
## Instalați vcpkg
Vcpkg este folosit pentru a gestiona dependențele C/C++ folosite de RustDesk. Alegeți unde doriți instalarea și rulați următoarele din folderul în care doriți să rezide `vcpkg`. În exemplul de mai jos se folosește `/Users/<username>/repos/` ca locație și tag-ul `2023.04.15` ca versiune.
```sh
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
./bootstrap-vcpkg.sh -disableMetrics
./vcpkg install libvpx libyuv opus aom
export VCPKG_ROOT=~/repos/vcpkg
```
## Instalați și configurați Rust
Folosim `rustup` pentru a gestiona Rust, care ar fi fost instalat mai sus prin Homebrew. Totuși, acesta mai trebuie configurat. Urmați instrucțiunile și asigurați-vă că atât `rustup`, cât și `rustc` sunt în `PATH`. În exemplu se folosește versiunea Rust `1.75.0`, dar este posibil să aveți nevoie de o versiune diferită. Puteți instala și administra mai multe versiuni de Rust cu `rustup`.
```sh
rustup-init
rustup default 1.75.0
rustup component add rustfmt
```
Pentru o privire de ansamblu asupra toolchain-urilor instalate și a celei implicite, rulați `rustup show`.
## Descărcați sursele RustDesk
Alegeți unde doriți sursele RustDesk și rulați următoarele din folderul în care vreți să apară directorul `rustdesk`. În exemplu se folosește `/Users/<username>/repos/`.
```sh
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk/libs/portable/
python3 -m pip install --upgrade pip
pip3 install -r requirements.txt
```
Dacă `python3` sau `pip` nu sunt recunoscute, adăugați-le în `PATH` cu ceva de genul (folosiți căile reale de pe sistemul dvs.):
```sh
export PATH=~/Library/Python/3.9/bin:$PATH
```
După aceea rulați din nou comenzile care au eșuat. Nu uitați să editați și `~/.bash_profile` pentru persistență.
## Instalați componentele interfeței
RustDesk poate fi compilat cu [Sciter](https://sciter.com/) sau cu [Flutter](https://flutter.dev/). Ambele necesită componente adiționale, așa că urmați pașii pentru versiunea relevantă (sau pentru ambele).
### Sciter
Din folderul `rustdesk`, rulați:
```sh
wget https://github.com/c-smile/sciter-sdk/raw/master/bin.osx/libsciter.dylib
```
### Flutter
[FVM](https://fvm.app/) vă permite să gestionați ce versiune de Flutter se folosește și este, probabil, cea mai simplă metodă pentru a testa versiuni diferite de Flutter.
```sh
brew tap leoafarias/fvm
brew install fvm cocoapods
```
Instalați și folosiți, de exemplu, Flutter `3.16.9` cu:
```sh
fvm global 3.16.9
```
FVM oferă un setup mai complex care poate furniza versiuni diferite de Flutter pentru proiecte diferite, dar asta depășește scopul ghidului. Ca soluție simplă, adăugați manual locația Flutter implicit furnizată de FVM în `PATH`, ceea ce înseamnă că trebuie să folosiți `fvm global` pentru a comuta versiunea de Flutter:
```sh
export PATH=$HOME/fvm/default/bin:$PATH
```
După aceea, dezactivați telemetria și verificați configurarea:
```sh
flutter --disable-analytics
dart --disable-analytics
flutter doctor -v
```
Nu este grav dacă unele verificări eșuează — important este ca mediul pe care intenționați să-l folosiți să fie corect, în special `Xcode`. Dacă apar probleme, rezolvați-le înainte de a continua.
După ce Flutter este funcțional, instalați „bridge”-ul care leagă Rust de Flutter. Acesta este încă un element cu versiuni care trebuie să se potrivească; în exemplu folosim `1.80.1`:
```sh
cargo install flutter_rust_bridge_codegen --version "1.80.1" --features "uuid"
```
## Build
Compilați din folderul `rustdesk`. Pentru versiunea Sciter rulați:
```sh
python3 ./build.py
```
Pentru versiunea Flutter rulați:
```sh
flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
python3 ./build.py --flutter
```
Dacă totul merge bine, ar trebui să aveți un fișier `dmg` pregătit pentru instalare în folderul `rustdesk`.

View File

@ -0,0 +1,58 @@
---
title: Windows
weight: 20
---
{{% notice note %}}
Comenzile din linia de comandă de aici trebuie rulate în Git Bash, nu în Command Prompt, altfel veți primi erori de sintaxă.
{{% /notice %}}
## Dependențe
### Mediu de build C++
Descărcați [MSVC](https://visualstudio.microsoft.com/) și instalați-l.
Selectați `Windows` ca OS pentru mașina Developer și bifați `C++`, apoi descărcați și instalați Visual Studio Community. Instalarea poate dura ceva timp.
### Mediu de dezvoltare Rust
Descărcați [rustup-init.exe](https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe) și rulați-l ca administrator pentru a instala `rust`.
### vcpkg
Mergeți în folderul în care doriți să clonați `vcpkg` și folosiți [Git Bash](https://git-scm.com/download/win) pentru a rula comenzile de mai jos; acestea vor descărca `vcpkg` și vor instala versiunea pe 64-bit a pachetelor `libvpx`, `libyuv` și `opus`.
Dacă nu aveți `Git` instalat, descărcați-l de [aici](https://git-scm.com/download/win).
```sh
git clone https://github.com/microsoft/vcpkg
vcpkg/bootstrap-vcpkg.bat
export VCPKG_ROOT=$PWD/vcpkg
vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
```
Adăugați variabila de sistem `VCPKG_ROOT`=`<path>\vcpkg`. `<path>` ar trebui să fie locația în care ați clonat `vcpkg`.
![](/docs/en/dev/build/windows/images/env.png)
### Sciter
Versiunile desktop folosesc [Sciter](https://sciter.com/) pentru GUI; descărcați `sciter.dll` de la: https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll
### LLVM
`rust-bindgen` depinde de `clang`; descărcați [LLVM](https://github.com/llvm/llvm-project/releases) și instalați-l, apoi adăugați variabila de sistem `LIBCLANG_PATH`=`<llvm_install_dir>/bin`.
Puteți descărca versiunea 15.0.2 a binarelor LLVM aici: [64 bit](https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.2/LLVM-15.0.2-win64.exe) / [32 bit](https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.2/LLVM-15.0.2-win32.exe).
## Build
### Implicit
```sh
git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll
mv sciter.dll target/debug
cargo run
```

View File

@ -19,7 +19,7 @@ There are technically two executables (servers):
When you install via installation script / docker compose / deb, the two services will be both installed.
Here is [illustrations](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) of how RustDesk client communicates with `hbbr` / `hbbs`.
Here are [illustrations](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) of how RustDesk client communicates with `hbbr` / `hbbs`.
As long as RustDesk is running on a machine, the machine constantly pings the ID server (`hbbs`) to make its current IP address and port known.

View File

@ -0,0 +1,50 @@
---
title: Găzduire proprie
description: "Aflați cum să vă găzduiți propriul server RustDesk. Ghid complet care acoperă instalarea, configurarea și implementarea infrastructurii serverului RustDesk pentru acces remote securizat."
keywords: ["rustdesk self-host", "rustdesk server", "remote desktop server", "self-hosting guide", "rustdesk installation", "hbbs hbbr", "rustdesk pro server"]
weight: 5
pre: "<b>2. </b>"
---
Dacă folosiți RustDesk, ar trebui să aveți propriul server RustDesk; aceste documentații vă vor ghida în proces.
Suportul este disponibil prin [Discord](https://discord.com/invite/nDceKgxnkV) pentru OSS și prin [email](mailto:support@rustdesk.com) pentru Pro.
## Cum funcționează un server self-host?
Din punct de vedere tehnic există două executabile (servere):
- `hbbs` - serverul RustDesk ID (rendezvous / signaling), ascultă pe TCP (`21114` - pentru http doar în Pro, `21115`, `21116`, `21118` pentru websocket) și pe UDP (`21116`)
- `hbbr` - serverul RustDesk relay, ascultă pe TCP (`21117`, `21119` pentru websocket)
Când instalați folosind scriptul de instalare / docker compose / pachet deb, ambele servicii vor fi instalate.
Iată câteva [ilustrații](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) despre modul în care clientul RustDesk comunică cu `hbbr` / `hbbs`.
Atâta timp cât RustDesk rulează pe o mașină, aceasta va efectua periodic ping către serverul ID (`hbbs`) pentru a-și anunța adresa IP și portul curent.
Când porniți o conexiune de la calculatorul A către calculatorul B, A contactează serverul ID și solicită comunicarea cu B.
Serverul ID încearcă apoi să conecteze A și B direct între ele folosind hole punching (NAT traversal).
Dacă hole punching eșuează, A va comunica cu B prin intermediul serverului relay (`hbbr`).
În majoritatea cazurilor, hole punching are succes și serverul relay nu este utilizat.
Aici este o discuție despre [Ar trebui să vă găzduiți propriul server rustdesk?](https://www.reddit.com/r/rustdesk/comments/1cr8kfv/should_you_selfhost_a_rustdesk_server/)
## Porturi necesare
Porturile necesare pentru găzduirea unui server RustDesk depind în mare măsură de mediul dvs. și de modul în care doriți să folosiți RustDesk. Exemplele din documentație vor sugera, în general, deschiderea tuturor porturilor indicate.
Porturi de bază: \
TCP `21114-21119` \
UDP `21116`
Porturile `21115-21117` sunt minimul necesar pentru funcționarea RustDesk; acestea gestionează semnalizarea, porturile de relay și traversarea NAT.
Porturile TCP `21118` și `21119` sunt porturile WebSocket pentru [RustDesk Web Client](https://rustdesk.com/web/). Aveți nevoie de un reverse proxy pentru a suporta HTTPS; consultați acest [exemplu de configurare Nginx](/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-the-web-client).
Pentru utilizatorii Pro fără un SSL Proxy va fi necesar să deschideți portul TCP `21114` pentru ca API-ul să funcționeze; alternativ, folosind un SSL Proxy se va deschide portul TCP `443`.
{{% children depth="4" showhidden="true" %}}

View File

@ -43,7 +43,7 @@ hbbs.example.com:21116
### Set `Key`
In order to establish an encrypted connection to your self-hosted server, you need to enter its public key. The key is usualy generated on the first run of `hbbs` and can be found in the file `id_ed25519.pub` in your working directory / data folder.
In order to establish an encrypted connection to your self-hosted server, you need to enter its public key. The key is usually generated on the first run of `hbbs` and can be found in the file `id_ed25519.pub` in your working directory / data folder.
As a `Pro` user you will additionally be able to retrieve the `Key` from the [web console](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/).

View File

@ -0,0 +1,85 @@
---
title: Configurare client
description: "Configurați clienții RustDesk pentru servere self-hosted. Funcții: generator personalizat de client (Pro) pentru aplicații branduite cu logo-ul dvs., configurare manuală, import/export setări și strategii de implementare enterprise."
keywords: ["rustdesk client configuration", "custom client generator", "rustdesk branded client", "rustdesk white label", "rustdesk enterprise deployment", "rustdesk client setup", "custom rustdesk app", "rustdesk pro client", "rustdesk configuration management", "rustdesk corporate branding"]
weight: 300
pre: "<b>2.3. </b>"
---
## Prezentare generală
Există mai multe modalități de a configura clienții RustDesk pentru a folosi propriul server self-hosted; mai jos sunt prezentate câteva dintre ele.
## 1. Generator de client personalizat (doar Pro, plan basic sau plan custom)
Puteți avea propriul nume, logo, iconiță, configurație, semnare digitală și altele.
În prezent sunt suportate: Windows X64, Mac Arm64 / X64, [Linux](https://twitter.com/rustdesk/status/1788905463678951787) și Android Arm64.
[Video](https://twitter.com/rustdesk/status/1769171628426944539)
![](/docs/en/self-host/client-configuration/images/custom-client-qs.png)
![](/docs/en/self-host/client-configuration/images/web_console_custom_client_config.jpeg)
## 2. Configurare manuală
În fereastra principală a clientului RustDesk faceți clic pe butonul Meniu [ &#8942; ] lângă ID-ul dvs., apoi pe `Network`. Puteți debloca acum setările folosind privilegii elevate și seta `ID`, `Relay`, `API` și `Key`. Este important de reținut că acest `Key` este cheia publică folosită pentru criptarea conexiunii, diferită de cheia de licență primită la achiziția versiunii Pro.
![](/docs/en/self-host/client-configuration/images/network-config.png)
Introduceți host-ul sau adresa IP a `hbbs` în câmpul **ID Server** (pe partea locală și pe partea la distanță). Celelalte două adrese pot fi lăsate necompletate; RustDesk le va deduce automat (dacă nu sunt setate special), iar Relay Server se referă la `hbbr` (port 21117).
de ex.
```nolang
hbbs.example.com
```
sau
```nolang
hbbs.example.com:21116
```
### Setarea `Key`
Pentru a stabili o conexiune criptată către serverul dvs. self-hosted, trebuie să introduceți cheia sa publică. Cheia este de obicei generată la prima rulare a `hbbs` și poate fi găsită în fișierul `id_ed25519.pub` din directorul de lucru / folderul de date.
Ca utilizator `Pro` veți putea, de asemenea, să recuperați `Key` din [web console](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/).
![](/docs/en/self-host/rustdesk-server-pro/console/images/console-home.png?v2)
### Setarea `API Server`
Aceasta este pentru utilizatorii `Pro` doar. Dacă vă puteți autentifica în consola web, dar nu reușiți să vă autentificați în clientul RustDesk, cel mai probabil nu ați setat corect `API Server`.
Dacă API Server nu rulează pe portul implicit `21114` (este posibil să nu fi deschis acest port în firewall dacă veniți din versiunea open source), specificați `API Server` în mod explicit.
de ex. dacă API Server rulează pe portul HTTPS implicit, specificați `API Server` cu `https://hbbs.example.com`.
Dacă încă nu puteți confirma valoarea `API Server`, accesați pagina de bun venit a consolei web; `API Server` este afișat în imaginea de mai sus (în caseta de input cu eticheta `API:`).
## 3. Configurare folosind Import sau Export
1. Folosiți pașii [de mai sus](https://rustdesk.com/docs/en/self-host/client-configuration/#manual-config) pentru a configura clientul RustDesk pe un dispozitiv.
2. Pe mașina respectivă mergeți la Settings → Network și deblocați setările.
3. Click pe `Export Server Config`.
4. Lipiți șirul copiat într-un editor de text (Notepad etc.).
5. Mergeți la noul client, copiați șirul în clipboard.
6. În clientul RustDesk accesați Settings → Network, deblocați și click pe `Import Server Config`.
7. Setările vor fi lipite automat.
8. Click `Apply`.
## 4. Configurare automată
Cea mai simplă modalitate de configurare automată este folosirea scripturilor de implementare găsite [aici](https://rustdesk.com/docs/en/self-host/client-deployment/).
## 5. Import setări din `Pro` prin clipboard
![](/docs/en/self-host/rustdesk-server-pro/console/images/console-home.png?v2)
https://github.com/rustdesk/rustdesk-server-pro/discussions/372#discussioncomment-10473298
## 6. Folosiți linia de comandă `--config`
`rustdesk.exe --config <config-string>`
Puteți obține șirul de configurare din consola web (apare în imaginea de mai sus) sau din clientul RustDesk la „Settings → Network” ([discuție](https://github.com/rustdesk/rustdesk/discussions/7118)).

View File

@ -808,21 +808,6 @@ Die "Datenschutzmodus"-Option in den Einstellungen jedes Peers steuert dann, ob
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Diese Option setzt die "Touch-Modus"-Option für jeden Peer nach der ersten Verbindung.
Die "Touch-Modus"-Option in den Einstellungen jedes Peers steuert dann, ob Touch-Modus oder Maus-Modus verwendet wird.
**Ort**:
1. **Desktop**
2. **Mobil** Einstellungen → Anzeigeeinstellungen → Andere Standardoptionen → Touch-Modus
| Installation erforderlich | Werte | Standard | Beispiel |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Diese Option setzt die "i444"-Option für jeden Peer nach der ersten Verbindung.
@ -928,7 +913,25 @@ Die "Scroll-Stil"-Option in den Einstellungen jedes Peers steuert dann den Scrol
| Installation erforderlich | Werte | Standard | Beispiel |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Hinweis**: Die `scrolledge`-Option ist ab RustDesk 1.4.4 verfügbar.
### edge-scroll-edge-thickness
Diese Option steuert die Randdicke, wenn `scroll-style` auf `scrolledge` gesetzt ist. Die Randdicke bestimmt die Größe des scrollbaren Bereichs an den Bildschirmrändern.
Diese Option ist nur wirksam, wenn `scroll-style=scrolledge`.
**Ort**:
1. **Desktop** Einstellungen → Anzeige → Randscroll-Randdicke
| Installation erforderlich | Werte | Standard | Beispiel |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Hinweis**: Diese Option ist ab RustDesk 1.4.4 verfügbar.
### image-quality
@ -1015,9 +1018,9 @@ Die Option „trackpad-speed“ in den Einstellungen jedes Peers steuert dann di
## Sonstiges
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Voreingestellter Adressbuchname und -tag, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Voreingestellter Adressbuchname, Geräte-Tag, Geräte-Alias, Geräte-Passwort, Geräte-Notiz, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Sie können nur preset-address-book-name setzen, wenn Sie keinen Tag setzen möchten.
Bitte verwenden Sie gültige Adressbuchnamen und -tags auf Ihrer Adressbuchseite der Web-Konsole.
@ -1025,6 +1028,11 @@ Bitte verwenden Sie gültige Adressbuchnamen und -tags auf Ihrer Adressbuchseite
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<Adressbuchname>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<Adressbuch-Tag-Name>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<Geräte-Alias>` |
| preset-address-book-password | N | | | `preset-address-book-password=<Geräte-Passwort>` |
| preset-address-book-note | N | | | `preset-address-book-note=<Geräte-Notiz>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note sind verfügbar in RustDesk-Client >=1.4.3, Pro >= 1.6.6.
### disable-group-panel
@ -1175,14 +1183,16 @@ Steuert, ob nur TCP verwendet wird. Es wird UDP 21116 nicht mehr verwenden, stat
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Weisen Sie Benutzer / Strategie / Gerätegruppe dem Gerät zu. Sie können dies auch über die [Befehlszeile](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices) tun.
Weisen Sie Benutzer / Strategie / Gerätegruppe / Geräte-Benutzername / Geräte-Name(Hostname) / Notiz dem Gerät zu. Sie können dies auch über die [Befehlszeile](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices) tun.
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
Gerätegruppe ist verfügbar in RustDesk-Client >=1.3.8, Pro >= 1.5.0
preset-device-username, preset-device-name, preset-note sind verfügbar in RustDesk-Client >=1.4.3, Pro >= 1.6.6.
### default-connect-password
Sie verwenden das `Standard-Verbindungspasswort`, um Verbindungen zu Remote-Geräten herzustellen. Dieses Passwort wird auf der Steuerungsseite konfiguriert und sollte nicht mit einem [voreingestellten Passwort](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) verwechselt werden, das auf dem gesteuerten (nur eingehenden) Client zu finden ist.
@ -1283,6 +1293,11 @@ WebSocket-Protokoll zur Verbindung von Server und Client verwenden. Nur verfügb
Um WebSocket zum Laufen zu bringen, müssen Sie Ihren Reverse-Proxy korrekt konfigurieren, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Standort**:
**Desktop** Einstellungen → Netzwerk → Websocket verwenden
**Mobil** Einstellungen → Websocket verwenden
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1309,7 +1324,7 @@ Das Gerät nicht registrieren, Sie werden es nicht auf der Geräteseite in der W
Wenn `register-device=N`, funktioniert das Folgende nicht für dieses Gerät.
- Anmelden
- `--assign`-Befehl
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Audit-Logs
- Strategie
@ -1317,4 +1332,108 @@ Wenn `register-device=N`, funktioniert das Folgende nicht für dieses Gerät.
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Hauptfenster immer im Vordergrund halten.
**Diskussion**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Nur in RustDesk-Client 1.4.2 verfügbar.
| Installation erforderlich | Werte | Standard | Beispiel |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Deaktivieren Sie das Panel "Entdeckt" (neben dem Panel "Favoriten") im RustDesk-Client.
| Option | Installation erforderlich | Werte | Standard | Beispiel |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Steuert, ob während Fernsteuerungssitzungen der TouchModus oder der MausModus verwendet wird.
#### Unterschiede im Verhalten nach Version
##### RustDesk (steuernde Seite) < 1.4.3
Nach der ersten Verbindung setzt diese Option die Einstellung "touch-mode" für jeden Peer. Danach bestimmen die individuellen Einstellungen jedes Peers, ob Touch oder MausModus verwendet wird.
**Ort**:
1. **Desktop**
2. **Mobile** Einstellungen → Anzeige → Weitere StandardOptionen → TouchModus
##### RustDesk (steuernde Seite) >= 1.4.3
Diese Option steuert einheitlich, ob alle PeerGeräte den TouchModus oder den MausModus verwenden und überschreibt damit die individuellen Geräteeinstellungen.
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Steuert die Anzeige der virtuellen Maus beim Modus mobil → Desktop.
**Ort**:
1. **Desktop**
2. **Mobile** Fernsitzung → untere Navigationsleiste → GestenHilfe
Verfügbar seit RustDesk 1.4.3
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Hinweis**: Diese Option sollte in **Default settings** und nicht in **Override settings** konfiguriert werden.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Steuert die Anzeige des virtuellen Joysticks beim Modus mobil → Desktop.
Diese Option erfordert, dass **show-virtual-mouse** aktiviert ist.
**Ort**:
1. **Desktop**
2. **Mobile** Fernsitzung → untere Navigationsleiste → GestenHilfe
Verfügbar seit RustDesk 1.4.3
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Hinweis**: Diese Option sollte in **Default settings** und nicht in **Override settings** konfiguriert werden.
### allow-insecure-tls-fallback
Standardmäßig überprüft RustDesk das Serverzertifikat für Protokolle, die TLS verwenden.
Mit dieser Option aktiviert, fällt RustDesk bei Überprüfungsfehlern auf das Überspringen des Überprüfungsschritts zurück und fährt fort.
**Standort**:
**Desktop** Einstellungen → Netzwerk → Unsicheren TLS-Fallback zulassen
**Mobil** Einstellungen → Unsicheren TLS-Fallback zulassen
Verfügbar seit RustDesk 1.4.4
| Werte | Standard | Beispiel |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -809,21 +809,6 @@ The "privacy-mode" option in each peer's settings will then control whether to u
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
This option will set the "touch-mode" option for every peer after the first connection.
The "touch-mode" option in each peer's settings will then control whether to use touch mode or mouse mode.
**Location**:
1. **Desktop**
2. **Mobile** Settings → Display settings → Other default options → Touch mode
| Install required | Values | Default | Example |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
This option will set the "i444" option for every peer after the first connection.
@ -931,7 +916,25 @@ The "scroll-style" option in each peer's settings will then control the scroll s
| Install required | Values | Default | Example |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Note**: The `scrolledge` option is available starting from RustDesk 1.4.4.
### edge-scroll-edge-thickness
This option controls the edge thickness when `scroll-style` is set to `scrolledge`. The edge thickness determines the size of the scrollable area at the screen edges.
This option is only effective when `scroll-style=scrolledge`.
**Location**:
1. **Desktop** Settings → Display → Edge scroll edge thickness
| Install required | Values | Default | Example |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Note**: This option is available starting from RustDesk 1.4.4.
### image-quality
@ -1027,9 +1030,9 @@ The "trackpad-speed" option in each peer's settings will then control the fps if
## Others
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Preset address book name and tag, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Preset address book name, device tag, device alias, device password, device note, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
You can set preset-address-book-name only if you do not want to set tag.
Please use valid address book name and tag on your address book page of web console.
@ -1037,6 +1040,11 @@ Please use valid address book name and tag on your address book page of web cons
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<address book name>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<address book tag name>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<device alias>` |
| preset-address-book-password | N | | | `preset-address-book-password=<device password>` |
| preset-address-book-note | N | | | `preset-address-book-note=<device note>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note are available in RustDesk client >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1187,14 +1195,16 @@ Controls whether to use TCP only. It will not use UDP 21116 any more, TCP 21116
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Assign user / strategy / device group to device. You can also do this via [command line](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Assign user / strategy / device group / device username / device-name(hostname) / note to device. You can also do this via [command line](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
device group is available in RustDesk client >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note are available in RustDesk client >=1.4.3, pro >= 1.6.6.
### default-connect-password
You use the `default connection password` to establish connections to remote devices. This password is configured on the controlling side and should not be confused with any [preset password](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) found on the controlled (incoming-only) client.
@ -1296,6 +1306,11 @@ Use WebSocket protocol to connect server and client. Only available in RustDesk
To make WebSocket work, you need to configure your reverse proxy correctly, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Location**:
**Desktop** Settings → Network → Use Websocket
**Mobile** Settings → Use Websocket
| Values | Default | Example |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1322,7 +1337,7 @@ Do not register the device, you will not see it in the devices page on web conso
If `register-device=N`, below will not work for this device.
- Log in
- `--assign` command
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Audit Logs
- Strategy
@ -1332,3 +1347,106 @@ If `register-device=N`, below will not work for this device.
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Always keep the main window on top.
**Discussion**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Only available in RustDesk client 1.4.2.
| Install required | Values | Default | Example |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Disable `Discovered` panel (next to `Favorites` panel) on RustDesk client
| Option | Install required | Values | Default | Example |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Controls whether to use touch mode or mouse mode during remote control sessions.
#### Version Behavior Differences
##### RustDesk (Controlling Side) < 1.4.3
After the first connection, this option sets the "touch-mode" setting for each peer. Thereafter, the individual settings of each peer determine whether to use touch mode or mouse mode.
**Location**:
1. **Desktop**
2. **Mobile** Settings → Display settings → Other default options → Touch mode
##### RustDesk (Controlling Side) >= 1.4.3
This option uniformly controls whether all peer devices use touch mode or mouse mode, overriding individual device settings.
| Values | Default | Example |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Controls the display of the virtual mouse when mobile -> desktop.
**Location**:
1. **Desktop**
2. **Mobile** Remote session -> bottom navigation bar -> gesture helper
Available since RustDesk 1.4.3
| Values | Default | Example |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Note**: This option should be configured in **Default settings** rather than **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Controls the display of the virtual joystick when mobile -> desktop.
This option requires the **show-virtual-mouse** to be enabled.
**Location**:
1. **Desktop**
2. **Mobile** Remote session -> bottom navigation bar -> gesture helper
Available since RustDesk 1.4.3
| Values | Default | Example |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Note**: This option should be configured in **Default settings** rather than **Override settings**.
### allow-insecure-tls-fallback
By default, RustDesk verifies the server certificate for protocols using TLS.
With this option enabled, RustDesk will fall back to skipping the verification step and proceed in case of verification failure.
**Location**:
**Desktop** Settings → Network → Allow insecure TLS fallback
**Mobile** Settings → Allow insecure TLS fallback
Available since RustDesk 1.4.4
| Values | Default | Example |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -808,21 +808,6 @@ La opción "modo privacidad" en las configuraciones de cada par controlará lueg
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Esta opción establecerá la opción "modo táctil" para cada par después de la primera conexión.
La opción "modo táctil" en las configuraciones de cada par controlará luego si usar modo táctil o modo ratón.
**Ubicación**:
1. **Escritorio**
2. **Móvil** Configuración → Configuración de pantalla → Otras opciones predeterminadas → Modo táctil
| Instalación requerida | Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Esta opción establecerá la opción "i444" para cada par después de la primera conexión.
@ -928,7 +913,25 @@ La opción "estilo de scroll" en las configuraciones de cada par controlará lue
| Instalación requerida | Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Nota**: La opción `scrolledge` está disponible a partir de RustDesk 1.4.4.
### edge-scroll-edge-thickness
Esta opción controla el grosor del borde cuando `scroll-style` está configurado en `scrolledge`. El grosor del borde determina el tamaño del área desplazable en los bordes de la pantalla.
Esta opción solo es efectiva cuando `scroll-style=scrolledge`.
**Ubicación**:
1. **Escritorio** Configuración → Pantalla → Grosor del borde de scroll
| Instalación requerida | Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Nota**: Esta opción está disponible a partir de RustDesk 1.4.4.
### image-quality
@ -1015,9 +1018,9 @@ La opción "trackpad-speed" en la configuración de cada par controlará los fps
## Otros
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Nombre y etiqueta de libreta de direcciones preestablecidos, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Nombre de libreta de direcciones, etiqueta de dispositivo, alias de dispositivo, contraseña de dispositivo, nota de dispositivo preestablecidos, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Puedes establecer preset-address-book-name solamente si no quieres establecer etiqueta.
Por favor usa un nombre y etiqueta de libreta de direcciones válidos en tu página de libreta de direcciones de consola web.
@ -1025,6 +1028,11 @@ Por favor usa un nombre y etiqueta de libreta de direcciones válidos en tu pág
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<nombre de libreta de direcciones>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<nombre de etiqueta de libreta de direcciones>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<alias de dispositivo>` |
| preset-address-book-password | N | | | `preset-address-book-password=<contraseña de dispositivo>` |
| preset-address-book-note | N | | | `preset-address-book-note=<nota de dispositivo>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note están disponibles en cliente RustDesk >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1175,14 +1183,16 @@ Controla si usar solo TCP. No usará más UDP 21116, TCP 21116 se usará en su l
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Asigna usuario / estrategia / grupo de dispositivo a dispositivo. También puedes hacer esto vía [línea de comandos](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Asigna usuario / estrategia / grupo de dispositivo / nombre de usuario de dispositivo / nombre de dispositivo(hostname) / nota a dispositivo. También puedes hacer esto vía [línea de comandos](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
grupo de dispositivo está disponible en cliente RustDesk >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note están disponibles en cliente RustDesk >=1.4.3, pro >= 1.6.6.
### default-connect-password
Usas la `contraseña de conexión predeterminada` para establecer conexiones a dispositivos remotos. Esta contraseña se configura en el lado de control y no debe confundirse con ninguna [contraseña preestablecida](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) encontrada en el cliente controlado (solo entrante).
@ -1283,6 +1293,11 @@ Usar protocolo WebSocket para conectar servidor y cliente. Solo disponible en cl
Para hacer funcionar WebSocket, necesitas configurar tu proxy reverso correctamente, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Ubicación**:
**Escritorio** Configuración → Red → Usar Websocket
**Móvil** Configuración → Usar Websocket
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1309,7 +1324,7 @@ No registrar el dispositivo, no lo verás en la página de dispositivos en conso
Si `register-device=N`, lo siguiente no funcionará para este dispositivo.
- Iniciar sesión
- Comando `--assign`
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Registros de auditoría
- Estrategia
@ -1317,4 +1332,108 @@ Si `register-device=N`, lo siguiente no funcionará para este dispositivo.
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Mantener siempre la ventana principal en la parte superior.
**Discusión**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Solo disponible en el cliente RustDesk 1.4.2.
| Instalación requerida | Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Desactivar el panel "Descubierto" (junto al panel "Favoritos") en el cliente RustDesk.
| Opción | Instalación requerida | Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Controla si se debe usar el modo táctil o el modo ratón durante las sesiones de control remoto.
#### Diferencias de comportamiento según la versión
##### RustDesk (lado controlador) < 1.4.3
Tras la primera conexión, esta opción establece la configuración "touch-mode" para cada peer. A partir de entonces, las configuraciones individuales de cada peer determinan si se usa el modo táctil o el modo ratón.
**Ubicación**:
1. **Escritorio**
2. **Móvil** Configuración → Pantalla → Otras opciones predeterminadas → Modo táctil
##### RustDesk (lado controlador) >= 1.4.3
Esta opción controla de forma uniforme si todos los dispositivos peer usan el modo táctil o el modo ratón, sobrescribiendo las configuraciones individuales de cada dispositivo.
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Controla la visualización del ratón virtual cuando móvil → escritorio.
**Ubicación**:
1. **Escritorio**
2. **Móvil** Sesión remota → barra de navegación inferior → ayuda de gestos
Disponible desde RustDesk 1.4.3
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Nota**: Esta opción debe configurarse en **Default settings** en lugar de en **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Controla la visualización del joystick virtual cuando móvil → escritorio.
Esta opción requiere que **show-virtual-mouse** esté habilitado.
**Ubicación**:
1. **Escritorio**
2. **Móvil** Sesión remota → barra de navegación inferior → ayuda de gestos
Disponible desde RustDesk 1.4.3
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Nota**: Esta opción debe configurarse en **Default settings** en lugar de en **Override settings**.
### allow-insecure-tls-fallback
Por defecto, RustDesk verifica el certificado del servidor para protocolos que usan TLS.
Con esta opción habilitada, RustDesk recurrirá a omitir el paso de verificación y continuar en caso de fallo de verificación.
**Ubicación**:
**Escritorio** Configuración → Red → Permitir respaldo TLS inseguro
**Móvil** Configuración → Permitir respaldo TLS inseguro
Disponible desde RustDesk 1.4.4
| Valores | Predeterminado | Ejemplo |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -808,21 +808,6 @@ L'option "mode privé" dans les paramètres de chaque pair contrôlera ensuite s
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Cette option définira l'option "mode tactile" pour chaque pair après la première connexion.
L'option "mode tactile" dans les paramètres de chaque pair contrôlera ensuite s'il faut utiliser le mode tactile ou le mode souris.
**Emplacement** :
1. **Bureau**
2. **Mobile** Paramètres → Paramètres d'affichage → Autres options par défaut → Mode tactile
| Installation requise | Valeurs | Défaut | Exemple |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Cette option définira l'option "i444" pour chaque pair après la première connexion.
@ -928,7 +913,25 @@ L'option "style de défilement" dans les paramètres de chaque pair contrôlera
| Installation requise | Valeurs | Défaut | Exemple |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Note** : L'option `scrolledge` est disponible à partir de RustDesk 1.4.4.
### edge-scroll-edge-thickness
Cette option contrôle l'épaisseur du bord lorsque `scroll-style` est défini sur `scrolledge`. L'épaisseur du bord détermine la taille de la zone défilable aux bords de l'écran.
Cette option n'est effective que lorsque `scroll-style=scrolledge`.
**Emplacement** :
1. **Bureau** Paramètres → Affichage → Épaisseur du bord de défilement
| Installation requise | Valeurs | Défaut | Exemple |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Note** : Cette option est disponible à partir de RustDesk 1.4.4.
### image-quality
@ -1015,9 +1018,9 @@ L'option "trackpad-speed" dans les paramètres de chaque pair contrôlera alors
## Autres
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Nom et tag de carnet d'adresses prédéfinis, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Nom de carnet d'adresses, tag d'appareil, alias d'appareil, mot de passe d'appareil, note d'appareil prédéfinis, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Vous pouvez définir preset-address-book-name uniquement si vous ne voulez pas définir de tag.
Veuillez utiliser un nom et un tag de carnet d'adresses valides sur votre page de carnet d'adresses de la console web.
@ -1025,6 +1028,11 @@ Veuillez utiliser un nom et un tag de carnet d'adresses valides sur votre page d
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<nom du carnet d'adresses>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<nom du tag du carnet d'adresses>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<alias d'appareil>` |
| preset-address-book-password | N | | | `preset-address-book-password=<mot de passe d'appareil>` |
| preset-address-book-note | N | | | `preset-address-book-note=<note d'appareil>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note sont disponibles dans le client RustDesk >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1175,14 +1183,16 @@ Contrôle s'il faut utiliser TCP uniquement. Il n'utilisera plus UDP 21116, TCP
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Assigne utilisateur / stratégie / groupe d'appareils à l'appareil. Vous pouvez aussi faire cela via [ligne de commande](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Assigne utilisateur / stratégie / groupe d'appareils / nom d'utilisateur d'appareil / nom d'appareil(hostname) / note à l'appareil. Vous pouvez aussi faire cela via [ligne de commande](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
le groupe d'appareils est disponible dans le client RustDesk >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note sont disponibles dans le client RustDesk >=1.4.3, pro >= 1.6.6.
### default-connect-password
Vous utilisez le `mot de passe de connexion par défaut` pour établir des connexions aux appareils distants. Ce mot de passe est configuré du côté contrôleur et ne doit pas être confondu avec un [mot de passe prédéfini](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) trouvé sur le client contrôlé (entrant uniquement).
@ -1283,6 +1293,11 @@ Utilise le protocole WebSocket pour connecter le serveur et le client. Uniquemen
Pour faire fonctionner WebSocket, vous devez configurer votre proxy inverse correctement, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Emplacement** :
**Bureau** Paramètres → Réseau → Utiliser Websocket
**Mobile** Paramètres → Utiliser Websocket
| Valeurs | Défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1309,7 +1324,7 @@ Ne pas enregistrer l'appareil, vous ne le verrez pas dans la page des appareils
Si `register-device=N`, les éléments suivants ne fonctionneront pas pour cet appareil.
- Connexion
- Commande `--assign`
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Journaux d'audit
- Stratégie
@ -1317,4 +1332,108 @@ Si `register-device=N`, les éléments suivants ne fonctionneront pas pour cet a
| Valeurs | Défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Toujours garder la fenêtre principale au premier plan.
**Discussion**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Uniquement disponible dans le client RustDesk 1.4.2.
| Installation requise | Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Désactiver le panneau "Découvert" (à côté du panneau "Favoris") sur le client RustDesk.
| Option | Installation requise | Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Contrôle l'utilisation du mode tactile ou du mode souris pendant les sessions de contrôle à distance.
#### Différences de comportement selon la version
##### RustDesk (côté contrôleur) < 1.4.3
Après la première connexion, cette option définit le paramètre "touch-mode" pour chaque pair. Par la suite, les paramètres individuels de chaque pair déterminent l'utilisation du mode tactile ou du mode souris.
**Emplacement** :
1. **Bureau**
2. **Mobile** Paramètres → Affichage → Autres options par défaut → Mode tactile
##### RustDesk (côté contrôleur) >= 1.4.3
Cette option contrôle de manière uniforme si tous les appareils pairs utilisent le mode tactile ou le mode souris, en remplaçant les paramètres individuels des appareils.
| Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Contrôle l'affichage de la souris virtuelle en cas de mobile → bureau.
**Emplacement** :
1. **Bureau**
2. **Mobile** Session à distance → barre de navigation inférieure → aide aux gestes
Disponible depuis RustDesk 1.4.3
| Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Remarque** : Cette option doit être configurée dans **Default settings** plutôt que dans **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Contrôle l'affichage du joystick virtuel en cas de mobile → bureau.
Cette option exige que **show-virtual-mouse** soit activé.
**Emplacement** :
1. **Bureau**
2. **Mobile** Session à distance → barre de navigation inférieure → aide aux gestes
Disponible depuis RustDesk 1.4.3
| Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Remarque** : Cette option doit être configurée dans **Default settings** plutôt que dans **Override settings**.
### allow-insecure-tls-fallback
Par défaut, RustDesk vérifie le certificat du serveur pour les protocoles utilisant TLS.
Avec cette option activée, RustDesk reviendra à ignorer l'étape de vérification et continuera en cas d'échec de vérification.
**Emplacement** :
**Bureau** Paramètres → Réseau → Autoriser le repli TLS non sécurisé
**Mobile** Paramètres → Autoriser le repli TLS non sécurisé
Disponible depuis RustDesk 1.4.4
| Valeurs | Par défaut | Exemple |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -808,21 +808,6 @@ L'opzione "modalità privacy" nelle impostazioni di ogni peer controllerà quind
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Questa opzione imposterà l'opzione "modalità touch" per ogni peer dopo la prima connessione.
L'opzione "modalità touch" nelle impostazioni di ogni peer controllerà quindi se usare modalità touch o modalità mouse.
**Posizione**:
1. **Desktop**
2. **Mobile** Impostazioni → Impostazioni display → Altre opzioni predefinite → Modalità touch
| Installazione richiesta | Valori | Predefinito | Esempio |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Questa opzione imposterà l'opzione "i444" per ogni peer dopo la prima connessione.
@ -928,7 +913,25 @@ L'opzione "stile scorrimento" nelle impostazioni di ogni peer controllerà quind
| Installazione richiesta | Valori | Predefinito | Esempio |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Nota**: L'opzione `scrolledge` è disponibile a partire da RustDesk 1.4.4.
### edge-scroll-edge-thickness
Questa opzione controlla lo spessore del bordo quando `scroll-style` è impostato su `scrolledge`. Lo spessore del bordo determina la dimensione dell'area scorrevole ai bordi dello schermo.
Questa opzione è efficace solo quando `scroll-style=scrolledge`.
**Posizione**:
1. **Desktop** Impostazioni → Display → Spessore bordo scorrimento
| Installazione richiesta | Valori | Predefinito | Esempio |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Nota**: Questa opzione è disponibile a partire da RustDesk 1.4.4.
### image-quality
@ -1015,9 +1018,9 @@ L'opzione "trackpad-speed" nelle impostazioni di ogni peer controllerà quindi g
## Altri
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Nome e tag rubrica preimpostati, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Nome rubrica, tag dispositivo, alias dispositivo, password dispositivo, nota dispositivo preimpostati, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Puoi impostare preset-address-book-name solo se non vuoi impostare il tag.
Usa un nome e tag rubrica validi nella tua pagina rubrica della console web.
@ -1025,6 +1028,11 @@ Usa un nome e tag rubrica validi nella tua pagina rubrica della console web.
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<nome rubrica>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<nome tag rubrica>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<alias dispositivo>` |
| preset-address-book-password | N | | | `preset-address-book-password=<password dispositivo>` |
| preset-address-book-note | N | | | `preset-address-book-note=<nota dispositivo>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note sono disponibili nel client RustDesk >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1175,14 +1183,16 @@ Controlla se usare solo TCP. Non userà più UDP 21116, TCP 21116 sarà usato in
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Assegna utente / strategia / gruppo dispositivo al dispositivo. Puoi anche farlo tramite [riga di comando](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Assegna utente / strategia / gruppo dispositivo / nome utente dispositivo / nome dispositivo(hostname) / nota al dispositivo. Puoi anche farlo tramite [riga di comando](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
gruppo dispositivo è disponibile nel client RustDesk >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note sono disponibili nel client RustDesk >=1.4.3, pro >= 1.6.6.
### default-connect-password
Usi la `password di connessione predefinita` per stabilire connessioni ai dispositivi remoti. Questa password è configurata sul lato di controllo e non deve essere confusa con alcuna [password preimpostata](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) trovata sul client controllato (solo in ingresso).
@ -1283,6 +1293,11 @@ Usa protocollo WebSocket per connettere server e client. Disponibile solo nel cl
Per far funzionare WebSocket, devi configurare correttamente il tuo proxy inverso, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Posizione**:
**Desktop** Impostazioni → Rete → Usa Websocket
**Mobile** Impostazioni → Usa Websocket
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1309,7 +1324,7 @@ Non registrare il dispositivo, non lo vedrai nella pagina dispositivi sulla cons
Se `register-device=N`, quanto segue non funzionerà per questo dispositivo.
- Login
- Comando `--assign`
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Log di audit
- Strategia
@ -1317,4 +1332,108 @@ Se `register-device=N`, quanto segue non funzionerà per questo dispositivo.
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Mantieni sempre la finestra principale in primo piano.
**Discussione**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Disponibile solo nel client RustDesk 1.4.2.
| Installazione richiesta | Valori | Predefinito | Esempio |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Disabilita il pannello "Rilevato" (accanto al pannello "Preferiti") sul client RustDesk.
| Opzione | Installazione richiesta | Valori | Predefinito | Esempio |
| :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Controlla se usare la modalità touch o la modalità mouse durante le sessioni di controllo remoto.
#### Differenze di comportamento per versione
##### RustDesk (lato controllante) < 1.4.3
Dopo la prima connessione, questa opzione imposta la configurazione "touch-mode" per ogni peer. Successivamente, le impostazioni individuali di ciascun peer determinano se utilizzare la modalità touch o quella mouse.
**Posizione**:
1. **Desktop**
2. **Mobile** Impostazioni → Schermo → Altre opzioni predefinite → Modalità touch
##### RustDesk (lato controllante) >= 1.4.3
Questa opzione controlla in modo uniforme se tutti i dispositivi peer utilizzano la modalità touch o la modalità mouse, sovrascrivendo le impostazioni dei singoli dispositivi.
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Controlla la visualizzazione del mouse virtuale quando mobile → desktop.
**Posizione**:
1. **Desktop**
2. **Mobile** Sessione remota → barra di navigazione inferiore → guida ai gesti
Disponibile da RustDesk 1.4.3
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Nota**: Questa opzione dovrebbe essere configurata nelle **Default settings** e non nelle **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Controlla la visualizzazione del joystick virtuale quando mobile → desktop.
Questa opzione richiede che **show-virtual-mouse** sia abilitato.
**Posizione**:
1. **Desktop**
2. **Mobile** Sessione remota → barra di navigazione inferiore → guida ai gesti
Disponibile da RustDesk 1.4.3
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Nota**: Questa opzione dovrebbe essere configurata nelle **Default settings** e non nelle **Override settings**.
### allow-insecure-tls-fallback
Per impostazione predefinita, RustDesk verifica il certificato del server per i protocolli che utilizzano TLS.
Con questa opzione abilitata, RustDesk tornerà a saltare il passaggio di verifica e continuerà in caso di errore di verifica.
**Posizione**:
**Desktop** Impostazioni → Rete → Consenti fallback TLS non sicuro
**Mobile** Impostazioni → Consenti fallback TLS non sicuro
Disponibile da RustDesk 1.4.4
| Valori | Predefinito | Esempio |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -770,21 +770,6 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
このオプションは、最初の接続後に各ピアの「タッチモード」オプションを設定します。
各ピアの設定の「タッチモード」オプションは、タッチモードまたはマウスモードを使用するかどうかを制御します。
**場所**
1. **デスクトップ**
2. **モバイル** 設定 → ディスプレイ設定 → その他のデフォルトオプション → タッチモード
| インストール必要 | 値 | デフォルト | 例 |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
このオプションは、最初の接続後に各ピアの「i444」オプションを設定します。
@ -892,7 +877,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| インストール必要 | 値 | デフォルト | 例 |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**注意**`scrolledge` オプションは RustDesk 1.4.4 以降で利用可能です。
### edge-scroll-edge-thickness
このオプションは、`scroll-style` が `scrolledge` に設定されている場合のエッジの厚さを制御します。エッジの厚さは、画面の端でのスクロール可能な領域のサイズを決定します。
このオプションは、`scroll-style=scrolledge` の場合にのみ有効です。
**場所**
1. **デスクトップ** 設定 → ディスプレイ → エッジスクロールの厚さ
| インストール必要 | 値 | デフォルト | 例 |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**注意**:このオプションは RustDesk 1.4.4 以降で利用可能です。
### image-quality
@ -1026,9 +1029,9 @@ RustDesk 1.4.1, RustDesk Server Pro 1.6.2から利用可能
## その他
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
プリセットアドレスブック名とタグ、https://github.com/rustdesk/rustdesk-server-pro/issues/257。
プリセットアドレスブック名、デバイスタグ、デバイスエイリアス、デバイスパスワード、デバイスノート、https://github.com/rustdesk/rustdesk-server-pro/issues/257。
タグを設定したくない場合は、preset-address-book-nameのみを設定できます。
Web コンソールのアドレスブックページで有効なアドレスブック名とタグを使用してください。
@ -1036,6 +1039,11 @@ Web コンソールのアドレスブックページで有効なアドレスブ
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<アドレスブック名>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<アドレスブックタグ名>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<デバイスエイリアス>` |
| preset-address-book-password | N | | | `preset-address-book-password=<デバイスパスワード>` |
| preset-address-book-note | N | | | `preset-address-book-note=<デバイスノート>` |
preset-address-book-alias、preset-address-book-password、preset-address-book-noteはRustDeskクライアント>=1.4.3、pro >= 1.6.6で利用可能。
### disable-group-panel
@ -1186,14 +1194,16 @@ TCPのみを使用するかどうかを制御します。UDP 21116は使用さ
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
ユーザー/ストラテジー/デバイスグループをデバイスに割り当てます。これは[コマンドライン](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)でも行うことができます。
ユーザー/ストラテジー/デバイスグループ/デバイスユーザー名/デバイス名(ホスト名)/ノートをデバイスに割り当てます。これは[コマンドライン](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)でも行うことができます。
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
デバイスグループはRustDeskクライアント>=1.3.8、pro >= 1.5.0で利用可能
preset-device-username、preset-device-name、preset-noteはRustDeskクライアント>=1.4.3、pro >= 1.6.6で利用可能。
### default-connect-password
リモートデバイスへの接続を確立するために`デフォルト接続パスワード`を使用します。このパスワードは制御側で設定され、被制御(受信のみ)クライアントで見つかる[プリセットパスワード](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access)と混同してはいけません。
@ -1294,6 +1304,11 @@ WebSocketプロトコルを使用してサーバーとクライアントを接
WebSocketを動作させるには、リバースプロキシを正しく設定する必要があります、https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**場所**:
**デスクトップ** 設定 → ネットワーク → WebSocket を使用する
**モバイル** 設定 → WebSocket を使用する
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1320,7 +1335,7 @@ RustDeskクライアント>=1.4.1およびProサーバー>= 1.5.9でのみ利用
`register-device=N`の場合、このデバイスでは以下が動作しません。
- ログイン
- `--assign`コマンド
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- 監査ログ
- ストラテジー
@ -1328,4 +1343,107 @@ RustDeskクライアント>=1.4.1およびProサーバー>= 1.5.9でのみ利用
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
メインウィンドウを常に最前面に表示します。
**ディスカッション**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
RustDeskクライアント1.4.2でのみ利用可能です。
| インストール必要 | 値 | デフォルト | 例 |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
RustDeskクライアントの「お気に入り」パネルの隣にある「発見済み」パネルを無効にします。
| オプション | インストール必要 | 値 | デフォルト | 例 |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
リモート操作セッション中にタッチモードまたはマウスモードを使用するかを制御します。
#### バージョンによる挙動の違い
##### RustDesk操作側 < 1.4.3
最初の接続後、このオプションは各ピアの "touch-mode" 設定を適用します。その後は各ピアの個別設定がタッチモードまたはマウスモードの使用を決定します。
**場所**:
1. **デスクトップ**
2. **モバイル** 設定 → 表示 → その他のデフォルトオプション → タッチモード
##### RustDesk操作側 >= 1.4.3
このオプションはすべてのピアデバイスがタッチモードまたはマウスモードを使用するかを一律に制御し、個別デバイスの設定を上書きします。
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
モバイル→デスクトップ時の仮想マウスの表示を制御します。
**場所**:
1. **デスクトップ**
2. **モバイル** リモートセッション → 下部ナビゲーションバー → ジェスチャーヘルパー
RustDesk 1.4.3 以降で利用可能
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**注意**: このオプションは **Default settings** に設定し、**Override settings** では設定しないでください。
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
モバイル→デスクトップ時の仮想ジョイスティックの表示を制御します。
このオプションは **show-virtual-mouse** が有効であることを前提とします。
**場所**:
1. **デスクトップ**
2. **モバイル** リモートセッション → 下部ナビゲーションバー → ジェスチャーヘルパー
RustDesk 1.4.3 以降で利用可能
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**注意**: このオプションは **Default settings** に設定し、**Override settings** では設定しないでください。
### allow-insecure-tls-fallback
デフォルトでは、RustDeskはTLSを使用するプロトコルのサーバー証明書を検証します。
このオプションを有効にすると、検証に失敗した場合、RustDeskは検証ステップをスキップして続行するようにフォールバックします。
**場所**:
**デスクトップ** 設定 → ネットワーク → 安全でないTLSフォールバックを許可
**モバイル** 設定 → 安全でないTLSフォールバックを許可
RustDesk 1.4.4 以降で利用可能
| 値 | デフォルト | 例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -809,21 +809,6 @@ Opcja "privacy-mode" w ustawieniach każdego z partnerów będzie wtedy decydowa
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Ta opcja ustawi opcję "touch-mode" dla każdego peer po pierwszym połączeniu.
Opcja "touch-mode" w ustawieniach każdego partnera będzie wtedy kontrolować, czy używać trybu dotykowego, czy trybu myszy.
**Lokalizacja**:
1. **K. stacjonarny**
2. **Smartfon** Ustawienia → Ustawienia wyświetlania → Inne domyślne opcje → Tryb dotykowy
| Wymagana instalacja | Wartości | Domyślne | Przykład |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Ta opcja ustawi opcję "i444" dla każdego partnera po pierwszym połączeniu.
@ -931,7 +916,25 @@ Opcja "scroll-style" w ustawieniach każdego partnera będzie wtedy kontrolować
| Wymagana instalacja | Wartości | Domyślne | Przykład |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Uwaga**: Opcja `scrolledge` jest dostępna od RustDesk 1.4.4.
### edge-scroll-edge-thickness
Ta opcja kontroluje grubość krawędzi, gdy `scroll-style` jest ustawiony na `scrolledge`. Grubość krawędzi określa rozmiar obszaru przewijanego na krawędziach ekranu.
Ta opcja jest skuteczna tylko wtedy, gdy `scroll-style=scrolledge`.
**Lokalizacja**:
1. **K. stacjonarny** Ustawienia → Wyświetlanie → Grubość krawędzi przewijania
| Wymagana instalacja | Wartości | Domyślne | Przykład |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Uwaga**: Ta opcja jest dostępna od RustDesk 1.4.4.
### image-quality
@ -1027,9 +1030,9 @@ Opcja "trackpad-speed" w ustawieniach każdego partnera będzie wtedy kontrolowa
## Inne
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Nazwa i tag wstępnie ustawionej książki adresowej, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Nazwa książki adresowej, tag urządzenia, alias urządzenia, hasło urządzenia, notatka urządzenia wstępnie ustawione, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Wartość preset-address-book-name można ustawić tylko wtedy, gdy nie chcesz ustawiać tagu.
Użyj prawidłowej nazwy książki adresowej i tagu na stronie książki adresowej konsoli webowej.
@ -1037,6 +1040,11 @@ Użyj prawidłowej nazwy książki adresowej i tagu na stronie książki adresow
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<nazwa książki adresowej>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<nazwa tagu książki adresowej>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<alias urządzenia>` |
| preset-address-book-password | N | | | `preset-address-book-password=<hasło urządzenia>` |
| preset-address-book-note | N | | | `preset-address-book-note=<notatka urządzenia>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note są dostępne w kliencie RustDesk >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1187,14 +1195,16 @@ Kontroluje, czy używać wyłącznie protokołu TCP. Nie będzie już używać p
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Przypisz użytkownika / strategię / grupę urządzeń do urządzenia. Możesz to również zrobić za pomocą [wiersza poleceń](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Przypisz użytkownika / strategię / grupę urządzeń / nazwę użytkownika urządzenia / nazwę urządzenia(hostname) / notatkę do urządzenia. Możesz to również zrobić za pomocą [wiersza poleceń](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
funkcja grup urządzeń jest dostępna w klientach RustDeska >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note są dostępne w kliencie RustDesk >=1.4.3, pro >= 1.6.6.
### default-connect-password
Używasz `domyślnego hasła połączenia`, żeby połączyć się z urządzeniami zdalnymi. Hasło to jest konfigurowane po stronie kontrolującej i nie należy go mylić z żadnym [hasłem domyślnym](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) znajdującym się na kliencie kontrolowanym (tylko przychodzącym).
@ -1295,6 +1305,11 @@ Użyj protokołu WebSocket do połączenia serwera i klienta. Dostępne tylko w
Aby WebSocket działał poprawnie, należy odpowiednio skonfigurować zwrotny serwer proxy, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Lokalizacja**:
**Komputer** Ustawienia → Sieć → Użyj Websocket
**Mobilny** Ustawienia → Użyj Websocket
| Wartości | Domyślnie | Przykład |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1321,7 +1336,7 @@ Nie rejestruj urządzenia, nie będzie ono widoczne na stronie urządzeń w kons
Jeśli `register-device=N`, poniższe nie będzie działać dla tego urządzenia.
- Logowanie się
- Polecenie `--assign`
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Dzienniki audytowe
- Strategie
@ -1331,3 +1346,106 @@ Jeśli `register-device=N`, poniższe nie będzie działać dla tego urządzenia
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Zawsze trzymaj główne okno na wierzchu.
**Dyskusja**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Dostępne tylko w kliencie RustDesk 1.4.2.
| Wymagana instalacja | Wartości | Domyślne | Przykład |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Wyłącz panel "Odkryte" (obok panelu "Ulubione") w kliencie RustDesk.
| Opcja | Wymagana instalacja | Wartości | Domyślne | Przykład |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Kontroluje, czy podczas sesji zdalnego sterowania używany jest tryb dotykowy czy tryb myszy.
#### Różnice w zachowaniu w zależności od wersji
##### RustDesk (strona kontrolująca) < 1.4.3
Po pierwszym połączeniu ta opcja ustawia parametr "touch-mode" dla każdego peer. Następnie indywidualne ustawienia każdego peer decydują o użyciu trybu dotykowego lub trybu myszy.
**Lokalizacja**:
1. **Desktop**
2. **Mobile** Ustawienia → Ekran → Inne domyślne opcje → Tryb dotyku
##### RustDesk (strona kontrolująca) >= 1.4.3
Opcja ta jednolicie kontroluje, czy wszystkie urządzenia peer używają trybu dotykowego czy trybu myszy, nadpisując indywidualne ustawienia urządzeń.
| Wartości | Domyślnie | Przykład |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Kontroluje wyświetlanie wirtualnego kursora przy trybie mobile → desktop.
**Lokalizacja**:
1. **Desktop**
2. **Mobile** Sesja zdalna → dolny pasek nawigacji → pomocnik gestów
Dostępne od RustDesk 1.4.3
| Wartości | Domyślnie | Przykład |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Uwaga**: Opcja ta powinna być skonfigurowana w **Default settings**, a nie w **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Kontroluje wyświetlanie wirtualnego joysticka przy trybie mobile → desktop.
Opcja ta wymaga, aby **show-virtual-mouse** był włączony.
**Lokalizacja**:
1. **Desktop**
2. **Mobile** Sesja zdalna → dolny pasek nawigacji → pomocnik gestów
Dostępne od RustDesk 1.4.3
| Wartości | Domyślnie | Przykład |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Uwaga**: Opcja ta powinna być skonfigurowana w **Default settings**, a nie w **Override settings**.
### allow-insecure-tls-fallback
Domyślnie RustDesk weryfikuje certyfikat serwera dla protokołów używających TLS.
Po włączeniu tej opcji RustDesk w przypadku niepowodzenia weryfikacji pominie etap weryfikacji i będzie kontynuował.
**Lokalizacja**:
**Komputer** Ustawienia → Sieć → Zezwalaj na niezabezpieczone powrót do TLS
**Mobilny** Ustawienia → Zezwalaj na niezabezpieczone powrót do TLS
Dostępne od RustDesk 1.4.4
| Wartości | Domyślnie | Przykład |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -808,21 +808,6 @@ A opção "modo privacidade" nas configurações de cada par controlará então
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `privacy-mode=Y` |
### touch-mode
Esta opção definirá a opção "modo toque" para cada par após a primeira conexão.
A opção "modo toque" nas configurações de cada par controlará então se deve usar modo toque ou modo mouse.
**Localização**:
1. **Desktop**
2. **Móvel** Configurações → Configurações de display → Outras opções padrão → Modo toque
| Instalação necessária | Valores | Padrão | Exemplo |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `touch-mode=Y` |
### i444
Esta opção definirá a opção "i444" para cada par após a primeira conexão.
@ -930,7 +915,25 @@ A opção "estilo de rolagem" nas configurações de cada par controlará então
| Instalação necessária | Valores | Padrão | Exemplo |
| :------: | :------: | :------: | :------: |
| N | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**Nota**: A opção `scrolledge` está disponível a partir do RustDesk 1.4.4.
### edge-scroll-edge-thickness
Esta opção controla a espessura da borda quando `scroll-style` está definido como `scrolledge`. A espessura da borda determina o tamanho da área rolável nas bordas da tela.
Esta opção só é efetiva quando `scroll-style=scrolledge`.
**Localização**:
1. **Desktop** Configurações → Display → Espessura da borda de rolagem
| Instalação necessária | Valores | Padrão | Exemplo |
| :------: | :------: | :------: | :------: |
| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**Nota**: Esta opção está disponível a partir do RustDesk 1.4.4.
### image-quality
@ -1017,9 +1020,9 @@ A opção "trackpad-speed" nas definições de cada par irá então controlar os
## Outros
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
Nome e tag de catálogo de endereços predefinidos, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Nome do catálogo de endereços, tag do dispositivo, alias do dispositivo, senha do dispositivo, nota do dispositivo predefinidos, https://github.com/rustdesk/rustdesk-server-pro/issues/257.
Você pode definir preset-address-book-name apenas se não quiser definir tag.
Por favor, use nome e tag de catálogo de endereços válidos na sua página de catálogo de endereços do console web.
@ -1027,6 +1030,11 @@ Por favor, use nome e tag de catálogo de endereços válidos na sua página de
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | N | | | `preset-address-book-name=<nome do catálogo de endereços>` |
| preset-address-book-tag | N | | | `preset-address-book-tag=<nome da tag do catálogo de endereços>` |
| preset-address-book-alias | N | | | `preset-address-book-alias=<alias do dispositivo>` |
| preset-address-book-password | N | | | `preset-address-book-password=<senha do dispositivo>` |
| preset-address-book-note | N | | | `preset-address-book-note=<nota do dispositivo>` |
preset-address-book-alias, preset-address-book-password, preset-address-book-note estão disponíveis no cliente RustDesk >=1.4.3, pro >= 1.6.6.
### disable-group-panel
@ -1177,14 +1185,16 @@ Controla se deve usar apenas TCP. Não usará mais UDP 21116, TCP 21116 será us
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
Atribui usuário / estratégia / grupo de dispositivo ao dispositivo. Você também pode fazer isso via [linha de comando](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
Atribui usuário / estratégia / grupo de dispositivo / nome de usuário do dispositivo / nome do dispositivo(hostname) / nota ao dispositivo. Você também pode fazer isso via [linha de comando](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices).
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
grupo de dispositivo está disponível no cliente RustDesk >=1.3.8, pro >= 1.5.0
preset-device-username, preset-device-name, preset-note estão disponíveis no cliente RustDesk >=1.4.3, pro >= 1.6.6.
### default-connect-password
Você usa a `senha de conexão padrão` para estabelecer conexões com dispositivos remotos. Esta senha é configurada no lado de controle e não deve ser confundida com qualquer [senha predefinida](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) encontrada no cliente controlado (apenas entrada).
@ -1285,6 +1295,11 @@ Usar protocolo WebSocket para conectar servidor e cliente. Disponível apenas no
Para fazer WebSocket funcionar, você precisa configurar seu proxy reverso corretamente, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**Localização**:
**Desktop** Configurações → Rede → Usar Websocket
**Móvel** Configurações → Usar Websocket
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1311,7 +1326,7 @@ Não registrar o dispositivo, você não o verá na página de dispositivos no c
Se `register-device=N`, o seguinte não funcionará para este dispositivo.
- Login
- Comando `--assign`
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- Logs de Auditoria
- Estratégia
@ -1319,4 +1334,108 @@ Se `register-device=N`, o seguinte não funcionará para este dispositivo.
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
Mantenha sempre a janela principal no topo.
**Discussão**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
Disponível apenas no cliente RustDesk 1.4.2.
| Instalação necessária | Valores | Padrão | Exemplo |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
Desabilita o painel `Descobertos` (ao lado do painel `Favoritos`) no cliente RustDesk
| Opção | Instalação necessária | Valores | Padrão | Exemplo |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
Controla se deve ser usado o modo toque (touch) ou o modo mouse durante sessões de controle remoto.
#### Diferenças de comportamento por versão
##### RustDesk (lado controlador) < 1.4.3
Após a primeira conexão, esta opção define a configuração "touch-mode" para cada peer. A partir daí, as configurações individuais de cada peer determinam se será usado o modo toque ou o modo mouse.
**Localização**:
1. **Desktop**
2. **Mobile** Configurações → Tela → Outras opções padrão → Modo toque
##### RustDesk (lado controlador) >= 1.4.3
Esta opção controla de forma uniforme se todos os dispositivos peer usam o modo toque ou o modo mouse, sobrescrevendo as configurações individuais dos dispositivos.
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
Controla a exibição do mouse virtual quando mobile → desktop.
**Localização**:
1. **Desktop**
2. **Mobile** Sessão remota → barra de navegação inferior → auxiliar de gestos
Disponível desde RustDesk 1.4.3
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**Nota**: Esta opção deve ser configurada nas **Default settings**, e não nas **Override settings**.
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
Controla a exibição do joystick virtual quando mobile → desktop.
Esta opção requer que **show-virtual-mouse** esteja ativado.
**Localização**:
1. **Desktop**
2. **Mobile** Sessão remota → barra de navegação inferior → auxiliar de gestos
Disponível desde RustDesk 1.4.3
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**Nota**: Esta opção deve ser configurada nas **Default settings**, e não nas **Override settings**.
### allow-insecure-tls-fallback
Por padrão, o RustDesk verifica o certificado do servidor para protocolos que usam TLS.
Com esta opção habilitada, o RustDesk irá recorrer a pular a etapa de verificação e prosseguir em caso de falha de verificação.
**Localização**:
**Desktop** Configurações → Rede → Permitir fallback TLS inseguro
**Móvel** Configurações → Permitir fallback TLS inseguro
Disponível desde RustDesk 1.4.4
| Valores | Padrão | Exemplo |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

File diff suppressed because it is too large Load Diff

View File

@ -809,21 +809,6 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `privacy-mode=Y` |
### touch-mode
此选项将为每个对等端在首次连接后设置"触控模式"选项。
每个对等端设置中的"触控模式"选项将控制是否使用触控模式或鼠标模式。
**位置**
1. **桌面**
2. **移动端** 设置 → 显示设置 → 其他默认选项 → 触控模式
| 安装需要 | 值 | 默认值 | 示例 |
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `touch-mode=Y` |
### i444
此选项将为每个对等端在首次连接后设置"i444"选项。
@ -929,7 +914,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| 安装需要 | 值 | 默认值 | 示例 |
| :------: | :------: | :------: | :------: |
| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
**注意**`scrolledge` 选项从 RustDesk 1.4.4 开始可用。
### edge-scroll-edge-thickness
此选项控制当 `scroll-style` 设置为 `scrolledge` 时的边缘厚度。边缘厚度决定了屏幕边缘可滚动区域的大小。
此选项仅在 `scroll-style=scrolledge` 时有效。
**位置**
1. **桌面** 设置 → 显示 → 边缘滚动边缘厚度
| 安装需要 | 值 | 默认值 | 示例 |
| :------: | :------: | :------: | :------: |
| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
**注意**:此选项从 RustDesk 1.4.4 开始可用。
### image-quality
@ -1016,9 +1019,9 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
## 其他
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
预设通讯录名称和标签https://github.com/rustdesk/rustdesk-server-pro/issues/257。
预设通讯录名称、设备标签、设备别名、设备密码、设备备注https://github.com/rustdesk/rustdesk-server-pro/issues/257。
如果不想设置标签可以仅设置preset-address-book-name。
请在Web控制台的通讯录页面上使用有效的通讯录名称和标签。
@ -1026,6 +1029,11 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | 否 | | | `preset-address-book-name=<通讯录名称>` |
| preset-address-book-tag | 否 | | | `preset-address-book-tag=<通讯录标签名称>` |
| preset-address-book-alias | 否 | | | `preset-address-book-alias=<设备别名>` |
| preset-address-book-password | 否 | | | `preset-address-book-password=<设备密码>` |
| preset-address-book-note | 否 | | | `preset-address-book-note=<设备备注>` |
preset-address-book-alias、preset-address-book-password、preset-address-book-note在RustDesk客户端>=1.4.3、pro >= 1.6.6中可用。
### disable-group-panel
@ -1176,14 +1184,16 @@ https://github.com/rustdesk/rustdesk-server-pro/issues/277
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
将用户/策略/设备组分配给设备。您也可以通过[命令行](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)执行此操作。
将用户/策略/设备组/设备用户名/设备名(主机名)/备注分配给设备。您也可以通过[命令行](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)执行此操作。
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
设备组在RustDesk客户端>=1.3.8、pro >= 1.5.0中可用
preset-device-username、preset-device-name、preset-note在RustDesk客户端>=1.4.3、pro >= 1.6.6中可用。
### default-connect-password
您使用`默认连接密码`来建立到远程设备的连接。此密码在控制端配置,不应与受控(仅传入)客户端上找到的任何[预设密码](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access)混淆。
@ -1286,6 +1296,11 @@ D3D渲染可以获得高帧率并减少CPU使用率但在某些设备上远
要使WebSocket工作您需要正确配置反向代理 https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**位置**:
**桌面** 设置 → 网络 → 使用 Websocket
**移动端** 设置 → 使用 Websocket
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1312,7 +1327,7 @@ D3D渲染可以获得高帧率并减少CPU使用率但在某些设备上远
如果`register-device=N`,以下功能对此设备不起作用。
- 登录
- `--assign`命令
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- 审计日志
- 策略
@ -1321,3 +1336,107 @@ D3D渲染可以获得高帧率并减少CPU使用率但在某些设备上远
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
始终将主窗口保持在最顶层。
**讨论**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
仅在 RustDesk 客户端 1.4.2 中可用。
| 需要安装 | 值 | 默认值 | 示例 |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
在 RustDesk 客户端上禁用“已发现”面板(在“收藏夹”面板旁边)。
| 选项 | 需要安装 | 值 | 默认值 | 示例 |
| :------: | :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
控制远程会话时,使用 触控模式 或 鼠标模式。
#### 版本行为差异
##### RustDesk (控制端) < 1.4.3
首次连接后,此选项会为每个被控设备设置 "touch-mode" 选项。之后各被控设备的独立设置将决定使用 触控模式 还是 鼠标模式 。
**位置**
1. **桌面**
2. **移动端** 设置 → 显示设置 → 其他默认选项 → 触控模式
##### RustDesk (控制端) >= 1.4.3
此选项将统一控制所有被控设备使用 触控模式 或 鼠标模式 ,覆盖各设备的独立设置。
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
控制 移动端 -> 桌面端 时,是否显示虚拟鼠标。
**位置**
1. **桌面**
2. **移动端** 远程会话 → 底部导航栏 → 手势助手
自 RustDesk 1.4.3 版本起可用。
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**注意**: 此选项应在 **Default settings** 中配置,而非 **Override settings** 中。
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
控制 移动端 -> 桌面端 时,是否显示虚拟摇杆。
此选项需要 **show-virtual-mouse** 选项处于启用状态。
**位置**
1. **桌面**
2. **移动端** 远程会话 → 底部导航栏 → 手势助手
自 RustDesk 1.4.3 版本起可用。
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**注意**: 此选项应在 **Default settings** 中配置,而非 **Override settings** 中。
### allow-insecure-tls-fallback
默认情况下,对于使用 TLS 的协议RustDesk 会验证服务器证书。
启用此选项后在验证失败时RustDesk 将转为跳过验证步骤并继续连接。
**位置**:
**桌面** 设置 → 网络 → 允许回退到不安全的 TLS 连接
**移动端** 设置 → 允许回退到不安全的 TLS 连接
自 RustDesk 1.4.4 版本起可用。
| 值 | 默认值 | 示例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -572,6 +572,44 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `filter-ab-by-intersection=N` |
### use-texture-render
**位置**:
**桌面端** 設定 → 通用 → 其他 → 使用紋理渲染
使用紋理渲染可以使畫面更流暢。如果遇到渲染問題,可以嘗試禁用此選項。僅在桌面端可用。
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | linux:Y, macOS:N, win7:N, win10+:Y | `use-texture-render=Y` |
### enable-udp-punch
**位置**:
**桌面端** 設定 → 通用 → 其他 → 啟用 UDP 打洞
**行動端** 設定 → 啟用 UDP 打洞
自 RustDesk 1.4.1, RustDesk Server Pro 1.6.2 起可用
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `enable-udp-punch=N` |
### enable-ipv6-punch
**位置**:
**桌面端** 設定 → 通用 → 其他 → 啟用 IPv6 P2P 連線
**行動端** 設定 → 通用 → 其他 → 啟用 IPv6 P2P 連線
自 RustDesk 1.4.1, RustDesk Server Pro 1.6.2 起可用
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | selfhost:N, 其他:Y | `enable-ipv6-punch=N` |
## 顯示設定
### view-only
@ -771,21 +809,6 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `privacy-mode=Y` |
### touch-mode
此選項將為每個對等端在首次連接後設定「觸控模式」選項。
每個對等端設定中的「觸控模式」選項將控制是否使用觸控模式或滑鼠模式。
**位置**
1. **桌面**
2. **行動裝置** 設定 → 顯示設定 → 其他預設選項 → 觸控模式
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `touch-mode=Y` |
### i444
此選項將為每個對等端在首次連接後設定「i444」選項。
@ -848,22 +871,22 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `displays-as-individual-windows=Y` |
### use-all-my-displays-for-the-remote_session
### use-all-my-displays-for-the-remote-session
此選項將為每個對等端在首次連接後設定「為遠端會話使用我的所有顯示器」選項。
此選項將為每個對等端在首次連接後設定「使用所有的螢幕用於遠端連線」選項。
每個對等端設定中的「為遠端會話使用我的所有顯示器」選項將控制是否為遠端會話使用我的所有顯示器
每個對等端設定中的「使用所有的螢幕用於遠端連線」選項將控制是否為遠端連線使用我的所有螢幕
**預覽**[PR 6064](https://github.com/rustdesk/rustdesk/pull/6064)
**位置**
**位置**:
1. **桌面** 設定 → 顯示 → 其他預設選項 → 為遠端會話使用我的所有顯示器
2. **行動裝置**
1. **桌面** 設定 → 顯示 → 其他預設選項 → 使用所有的螢幕用於遠端連線
2. **行動端** 設定 → 顯示設定 → 其他預設選項 → 使用所有的螢幕用於遠端連線
| 安裝需要 | 值 | 預設值 | 範例 |
| 是否需要安裝 | 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `use-all-my-displays-for-the-remote_session=Y` |
| 否 | Y, N | N | `use-all-my-displays-for-the-remote-session=Y` |
### view-style
@ -893,477 +916,25 @@ ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko,
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
| 否 | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` |
### image-quality
**注意**`scrolledge` 選項從 RustDesk 1.4.4 開始可用。
此選項將為每個對等端在首次連接後設定「影像品質」選項。
### edge-scroll-edge-thickness
每個對等端設定中的「影像品質」選項將控制影像品質。
此選項控制當 `scroll-style` 設定為 `scrolledge` 時的邊緣厚度。邊緣厚度決定了螢幕邊緣可滾動區域的大小。
此選項僅在 `scroll-style=scrolledge` 時有效。
**位置**
1. **桌面** 設定 → 顯示 → 預設影像品質
2. **行動裝置** 設定 → 顯示設定 → 預設影像品質
1. **桌面** 設定 → 顯示 → 邊緣滾動邊緣厚度
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | best, balanced, low, custom | balanced | `image-quality=balanced` |
| 否 | 20-150 | 100 | `edge-scroll-edge-thickness=100` |
### custom-image-quality
此選項將為每個對等端在首次連接後設定「自訂影像品質」選項。
如果「影像品質」設定為自訂,每個對等端設定中的「自訂影像品質」選項將控制影像品質。
**位置**
1. **桌面** 設定 → 顯示 → 預設影像品質 → 自訂
2. **行動裝置** 設定 → 顯示設定 → 預設影像品質 → 自訂
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | [10.0, 2000.0] | 50.0 | `custom-image-quality=50` |
### custom-fps
此選項將為每個對等端在首次連接後設定「自訂幀率」選項。
如果「影像品質」設定為自訂,每個對等端設定中的「自訂幀率」選項將控制幀率。
**位置**
1. **桌面** 設定 → 顯示 → 預設影像品質 → 自訂
2. **行動裝置** 設定 → 顯示設定 → 預設影像品質 → 自訂
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | [5, 120] | 30 | `custom-fps=30` |
### codec-preference
此選項將為每個對等端在首次連接後設定「編解碼器偏好」選項。
每個對等端設定中的「編解碼器偏好」選項將控制影像的編解碼器。
**位置**
1. **桌面** 設定 → 顯示 → 預設編解碼器
2. **行動裝置** 設定 → 顯示設定 → 預設編解碼器
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | auto, vp8, vp9, av1, h264, h265 | auto | `codec-preference=auto` |
**注意**除了「vp8」和「vp9」之外的選項可能無法工作。這取決於您的機器支援什麼。
## 其他
### preset-address-book-name & preset-address-book-tag
預設通訊錄名稱和標籤https://github.com/rustdesk/rustdesk-server-pro/issues/257。
如果不想設定標籤可以僅設定preset-address-book-name。
請在Web控制台的通訊錄頁面上使用有效的通訊錄名稱和標籤。
| 選項 | 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | 否 | | | `preset-address-book-name=<通訊錄名稱>` |
| preset-address-book-tag | 否 | | | `preset-address-book-tag=<通訊錄標籤名稱>` |
### disable-group-panel
在RustDesk用戶端上禁用群組面板在通訊錄面板旁邊自1.3.8版本起命名為「可存取設備」https://github.com/rustdesk/rustdesk-server-pro/issues/250。
| 選項 | 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: | :------: |
| disable-group-panel | 否 | Y, N | N | `disable-group-panel=Y` |
### pre-elevate-service
Windows便攜版執行時自動提升權限https://github.com/rustdesk/rustdesk-server-pro/issues/252。
| 選項 | 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: | :------: |
| pre-elevate-service | 否 | Y, N | N | `pre-elevate-service=Y` |
### disable-floating-window
當Android服務啟動時它會顯示一個浮動視窗這有助於防止系統終止RustDesk服務。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `disable-floating-window=Y` |
### floating-window-size
當Android服務啟動時它會顯示一個浮動視窗這有助於防止系統終止RustDesk服務。當大小小於120時浮動視窗將難以被點擊。非常小的尺寸可能無法在某些設備上保持背景服務。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| [32, 320] | 120 | `floating-window-size=120` |
### floating-window-untouchable
預設情況下點擊浮動視窗會彈出選單。設定為「不可觸控」後點擊或滑動將穿過浮動視窗並傳輸到底層視窗。設定為「不可觸控」後浮動視窗的位置無法更改系統可能會自動將浮動視窗設定為半透明。但是此功能可能在少數應用程式中不起作用例如GitHub應用程式。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `floating-window-untouchable=Y` |
### floating-window-transparency
Android浮動視窗具有可調節的透明度。如果要啟用但隱藏浮動視窗可以將透明度設定為0浮動視窗將自動設定為「不可觸控」以穿透點擊事件。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| [0, 10] | 10 | `floating-window-transparency=5` |
### floating-window-svg
如果沒有為Android浮動視窗設定圖示它將預設顯示RustDesk圖示。
設定時請將SVG的文字內容寫成一行並注意[SVG支援限制](https://bigbadaboom.github.io/androidsvg/index.html)。
| 預設值 | 範例 |
| :------: | :------: |
| RustDesk圖示 | `floating-window-svg=<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1717559129252" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4248" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32"><path d="M950.857143 512c0 242.285714-196.571429 438.857143-438.857143 438.857143S73.142857 754.285714 73.142857 512 269.714286 73.142857 512 73.142857s438.857143 196.571429 438.857143 438.857143z" fill="#1296db" p-id="4249"></path></svg>` |
### keep-screen-on
這是針對Android受控端的。請注意保持螢幕開啟依賴於浮動視窗。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| never, during-controlled, service-on | during-controlled | `keep-screen-on=never` |
### enable-directx-capture
這是針對Windows受控端的。如果沒有遇到任何問題建議使用預設設定優先使用DirectX進行截圖而不是直接使用GDI。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `enable-directx-capture=N` |
### enable-android-software-encoding-half-scale
這是針對Android受控端的。預設情況下當解析度大於1200時硬體編碼使用原始解析度而軟體編碼使用一半解析度因為軟體編碼較慢。此選項用於設定軟體編碼是否應縮放到一半解析度。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `enable-android-software-encoding-half-scale=N` |
### allow-remote-cm-modification
控制是否允許控制端點擊連接管理視窗來接受連接、更改權限等。
https://github.com/rustdesk/rustdesk/issues/7425
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-remote-cm-modification=Y` |
### remove-preset-password-warning
控制當自訂用戶端中有預設密碼時是否移除GUI上的安全警告。
https://github.com/rustdesk/rustdesk-server-pro/discussions/286
https://github.com/rustdesk/rustdesk/discussions/7956
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `remove-preset-password-warning=Y` |
### hide-security-settings / hide-network-settings / hide-server-settings / hide-proxy-settings / hide-websocket-settings / hide-remote-printer-settings
控制是否隱藏某些設定。請確保`禁用設定`已關閉,否則這些不會生效。
https://github.com/rustdesk/rustdesk-server-pro/issues/263
https://github.com/rustdesk/rustdesk-server-pro/issues/276
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `hide-security-settings=Y` |
### hide-username-on-card
控制是否在設備清單中顯示使用者名稱。因為有時使用者名稱太長,會隱藏其他資訊。
https://github.com/rustdesk/rustdesk-server-pro/issues/284#issuecomment-2216521407
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `hide-username-on-card=Y` |
### hide-help-cards
控制是否在GUI上顯示UAC/權限警告。
https://github.com/rustdesk/rustdesk/issues/8687
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `hide-help-cards=Y` |
### display-name
更改將在連接到遠端設備時彈出視窗中顯示的顯示名稱。預設情況下,它首先顯示登入使用者的名稱,否則顯示您的作業系統使用者名稱。
https://github.com/rustdesk/rustdesk-server-pro/issues/277
### disable-udp
控制是否僅使用TCP。它將不再使用UDP 21116而是使用TCP 21116。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
將使用者/策略/設備群組分配給設備。您也可以透過[命令列](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)執行此操作。
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
設備群組在RustDesk用戶端>=1.3.8、pro >= 1.5.0中可用
### default-connect-password
您使用`預設連接密碼`來建立到遠端設備的連接。此密碼在控制端設定,不應與受控(僅傳入)用戶端上找到的任何[預設密碼](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access)混淆。
例如 `default-connect-password=abcd1234`
### enable-trusted-devices
允許受信任的設備跳過2FA驗證。
https://github.com/rustdesk/rustdesk/discussions/8513#discussioncomment-10234494
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `enable-trusted-devices=N` |
### hide-tray
禁用系統匣中的匣圖示。
https://github.com/rustdesk/rustdesk-server-pro/issues/332
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `hide-tray=Y` |
### one-way-clipboard-redirection
禁用從受控端到控制端的剪貼簿同步在RustDesk用戶端>=1.3.1(受控端)中可用
https://github.com/rustdesk/rustdesk/discussions/7837
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `one-way-clipboard-redirection=Y` |
### one-way-file-transfer
禁用從受控端到控制端的檔案傳輸在RustDesk用戶端>=1.3.1(受控端)中可用
https://github.com/rustdesk/rustdesk/discussions/7837
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `one-way-file-transfer=Y` |
### sync-init-clipboard
建立連接時是否同步初始剪貼簿僅從控制端到受控端在RustDesk用戶端>=1.3.1(控制端)中可用
https://github.com/rustdesk/rustdesk/discussions/9010
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `sync-init-clipboard=Y` |
### allow-logon-screen-password
在使用[僅點擊批准模式](https://rustdesk.com/docs/en/self-host/client-configuration/advanced-settings/#approve-mode)時是否允許在登入畫面上輸入密碼在RustDesk用戶端>=1.3.1(受控端)中可用
https://github.com/rustdesk/rustdesk/discussions/9269
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-logon-screen-password=Y` |
### allow-https-21114
通常HTTPS使用連接埠443。當API伺服器的連接埠錯誤地設定為21114時RustDesk用戶端預設會移除21114連接埠設定。將選項設定為Y允許使用21114作為HTTPS連接埠。在RustDesk用戶端>=1.3.9中可用。
https://github.com/rustdesk/rustdesk-server-pro/discussions/570
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-https-21114=Y` |
### allow-d3d-render
D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠端控制螢幕可能會變黑。在RustDesk用戶端>=1.3.9中可用僅Windows。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-d3d-render=Y` |
### allow-hostname-as-id
[使用主機名作為ID](https://github.com/rustdesk/rustdesk-server-pro/discussions/483),主機名中的空格會被替換為'-'。這不是100%保證的只在第一次執行RustDesk用戶端時發生即在新安裝的用戶端上如果發生衝突將分配一個隨機ID。
在RustDesk用戶端版本1.4.0及更高版本中可用。
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-hostname-as-id=Y` |
### allow-websocket
使用WebSocket協定連接伺服器和用戶端。僅在RustDesk用戶端>=1.4.0和Pro伺服器>= 1.5.7中可用。請注意WebSocket僅支援中繼連接。
要使WebSocket工作您需要正確設定反向代理 https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
### allow-numeric-one-time-password
此選項啟用或禁用僅數字一次性密碼的使用。
僅在RustDesk用戶端>=1.4.1和Pro伺服器>= 1.5.9中可用。
**討論** https://github.com/rustdesk/rustdesk-server-pro/discussions/685
**預覽** https://github.com/rustdesk/rustdesk/pull/11846
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-numeric-one-time-password=Y` |
### register-device
不註冊設備您不會在Web控制台的設備頁面中看到它。
**僅在Pro伺服器>= 1.6.0中可用,需要[custom2許可證](https://rustdesk.com/pricing#custom2)且並行連接數>= 2。**
如果`register-device=N`,以下功能對此設備不起作用。
- 登入
- `--assign`命令
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- 稽核日誌
- 策略
**討論** https://github.com/rustdesk/rustdesk-server-pro/discussions/672 和 https://github.com/rustdesk/rustdesk-server-pro/discussions/182
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
### use-texture-render
**位置**:
**桌面端** 設定 → 通用 → 其他 → 使用紋理渲染
使用紋理渲染可以使畫面更流暢。如果遇到渲染問題,可以嘗試禁用此選項。僅在桌面端可用。
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | linux:Y, macOS:N, win7:N, win10+:Y | `use-texture-render=Y` |
### enable-udp-punch
**位置**:
**桌面端** 設定 → 通用 → 其他 → 啟用 UDP 打洞
**行動端** 設定 → 啟用 UDP 打洞
自 RustDesk 1.4.1, RustDesk Server Pro 1.6.2 起可用
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `enable-udp-punch=N` |
### enable-ipv6-punch
**位置**:
**桌面端** 設定 → 通用 → 其他 → 啟用 IPv6 P2P 連線
**行動端** 設定 → 通用 → 其他 → 啟用 IPv6 P2P 連線
自 RustDesk 1.4.1, RustDesk Server Pro 1.6.2 起可用
| 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | selfhost:N, 其他:Y | `enable-ipv6-punch=N` |
## 顯示設定
### view-only
此選項將為每個對等端在首次連接後設定「僅檢視」選項。
然後每個對等端設定中的「僅檢視」選項將控制連接是否為僅檢視模式。
**位置**
1. **桌面** 設定 → 顯示 → 其他預設選項 → 檢視模式
2. **行動裝置** 設定 → 顯示設定 → 其他預設選項 → 檢視模式
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `view-only=Y` |
### use-all-my-displays-for-the-remote-session
此選項將在首次連線後為每個裝置設定「use-all-my-displays-for-the-remote-session」選項。
然後每個裝置設定中的「use-all-my-displays-for-the-remote-session」選項將控制是否為遠端工作階段使用我的所有顯示器。
**位置**:
1. **桌面端** 設定 → 顯示 → 其他預設選項 → 為遠端工作階段使用我的所有顯示器
2. **行動端** 設定 → 顯示設定 → 其他預設選項 → 為遠端工作階段使用我的所有顯示器
| 是否需要安裝 | 可選值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | Y, N | N | `use-all-my-displays-for-the-remote_session=Y` |
### view-style
此選項將在首次連線後為每個裝置設定「view-style」選項。
每個對等端設定中的「檢視樣式」選項將控制檢視樣式。
**位置**
1. **桌面** 設定 → 顯示 → 預設檢視樣式
2. **行動裝置** 設定 → 顯示設定 → 預設檢視樣式
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | original, adaptive | original | `view-style=original` |
### scroll-style
此選項將為每個對等端在首次連接後設定「滾動樣式」選項。
每個對等端設定中的「滾動樣式」選項將控制滾動樣式。
**位置**
1. **桌面** 設定 → 顯示 → 預設滾動樣式
2. **行動裝置**
| 安裝需要 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| 否 | scrollauto, scrollbar | scrollauto | `scroll-style=scrollauto` |
**注意**:此選項從 RustDesk 1.4.4 開始可用。
### image-quality
@ -1459,9 +1030,9 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
## 其他
### preset-address-book-name & preset-address-book-tag
### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note
預設通訊錄名稱和標籤https://github.com/rustdesk/rustdesk-server-pro/issues/257。
預設通訊錄名稱、設備標籤、設備別名、設備密碼、設備備註https://github.com/rustdesk/rustdesk-server-pro/issues/257。
如果不想設定標籤可以僅設定preset-address-book-name。
請在Web控制台的通訊錄頁面上使用有效的通訊錄名稱和標籤。
@ -1469,6 +1040,11 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
| :------: | :------: | :------: | :------: | :------: |
| preset-address-book-name | 否 | | | `preset-address-book-name=<通訊錄名稱>` |
| preset-address-book-tag | 否 | | | `preset-address-book-tag=<通訊錄標籤名稱>` |
| preset-address-book-alias | 否 | | | `preset-address-book-alias=<設備別名>` |
| preset-address-book-password | 否 | | | `preset-address-book-password=<設備密碼>` |
| preset-address-book-note | 否 | | | `preset-address-book-note=<設備備註>` |
preset-address-book-alias、preset-address-book-password、preset-address-book-note在RustDesk用戶端>=1.4.3、pro >= 1.6.6中可用。
### disable-group-panel
@ -1619,14 +1195,16 @@ https://github.com/rustdesk/rustdesk-server-pro/issues/277
| :------: | :------: | :------: |
| Y, N | N | `disable-udp=Y` |
### preset-user-name / preset-strategy-name / preset-device-group-name
### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note
將使用者/策略/設備群組分配給設備。您也可以透過[命令列](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)執行此操作。
將使用者/策略/設備群組/設備使用者名稱/設備名稱(主機名)/備註分配給設備。您也可以透過[命令列](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/#assign-device-usersgroupsstrategies-to-devices)執行此操作。
https://github.com/rustdesk/rustdesk-server-pro/discussions/304
設備群組在RustDesk用戶端>=1.3.8、pro >= 1.5.0中可用
preset-device-username、preset-device-name、preset-note在RustDesk用戶端>=1.4.3、pro >= 1.6.6中可用。
### default-connect-password
您使用`預設連接密碼`來建立到遠端設備的連接。此密碼在控制端設定,不應與受控(僅傳入)用戶端上找到的任何[預設密碼](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access)混淆。
@ -1712,7 +1290,6 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
| :------: | :------: | :------: |
| Y, N | N | `allow-d3d-render=Y` |
### allow-hostname-as-id
[使用主機名作為ID](https://github.com/rustdesk/rustdesk-server-pro/discussions/483),主機名中的空格會被替換為'-'。這不是100%保證的只在第一次執行RustDesk用戶端時發生即在新安裝的用戶端上如果發生衝突將分配一個隨機ID。
@ -1729,6 +1306,11 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
要使WebSocket工作您需要正確設定反向代理 https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
**位置**
1. **桌面** 設定 → 網路 → 使用 WebSocket
2. **行動** 設定 → 使用 WebSocket
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-websocket=Y` |
@ -1755,7 +1337,7 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
如果`register-device=N`,以下功能對此設備不起作用。
- 登入
- `--assign`命令
- `preset-address-book-name`, `--preset-address-book-tag`, `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`
- `preset-address-book-name`, `preset-address-book-tag`, `preset-address-book-alias`, `preset-address-book-password`, `preset-address-book-note` `preset-user-name`, `preset-strategy-name`, `preset-device-group-name`, `preset-device-username`, `preset-device-name`, `preset-note`
- 稽核日誌
- 策略
@ -1764,3 +1346,107 @@ D3D渲染可以獲得高幀率並減少CPU使用率但在某些設備上遠
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | Y | `register-device=N` |
### main-window-always-on-top
始終將主視窗保持在最上層。
**討論**: https://github.com/rustdesk/rustdesk-server-pro/issues/761
僅在 RustDesk 客戶端 1.4.2 中可用。
| 需要安裝 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| N | Y, N | N | `main-window-always-on-top=N` |
### relay-server
https://github.com/rustdesk/rustdesk-server-pro/issues/776#issuecomment-3306524913
### disable-discovery-panel
在 RustDesk 客戶端上停用「已發現」面板(在「我的最愛」面板旁邊)。
| 選項 | 需要安裝 | 值 | 預設值 | 範例 |
| :------: | :------: | :------: | :------: |
| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` |
### touch-mode
控制在遠端控制會話期間使用觸控模式或滑鼠模式。
#### 不同版本的行為差異
##### RustDesk控制端 < 1.4.3
在首次連線後該選項會為每個裝置peer設定 "touch-mode"。此後,每個裝置的個別設定將決定是否使用觸控模式或滑鼠模式。
**位置**
1. **桌面**
2. **行動** 設定 → 顯示 → 其他預設選項 → 觸控模式
##### RustDesk控制端 >= 1.4.3
此選項會統一控制所有裝置是否使用觸控模式或滑鼠模式,並覆寫個別裝置設定。
| 值 | 預設 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `touch-mode=Y` |
### show-virtual-mouse
https://github.com/rustdesk/rustdesk/pull/12911
控制在 行動 → 桌面 模式下虛擬滑鼠的顯示。
**位置**
1. **桌面**
2. **行動** 遠端連線 → 底部導覽列 → 手勢輔助
自 RustDesk 1.4.3 起可用
| 值 | 預設 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-mouse=Y` |
**注意**:此選項應在 **Default settings** 中配置,而非 **Override settings**
### show-virtual-joystick
https://github.com/rustdesk/rustdesk/pull/12911
控制在 行動 → 桌面 模式下虛擬搖桿的顯示。
此選項需要先啟用 **show-virtual-mouse**
**位置**
1. **桌面**
2. **行動** 遠端連線 → 底部導覽列 → 手勢輔助
自 RustDesk 1.4.3 起可用
| 值 | 預設 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `show-virtual-joystick=Y` |
**注意**:此選項應在 **Default settings** 中配置,而非 **Override settings**
### allow-insecure-tls-fallback
預設情況下RustDesk 會驗證使用 TLS 協定的伺服器憑證。
啟用此選項後如果驗證失敗RustDesk 將回退到跳過驗證步驟並繼續進行。
**位置**:
**桌面** 設定 → 網路 → 允許回退到不安全的 TLS 連接
**行動裝置** 設定 → 允許回退到不安全的 TLS 連接
自 RustDesk 1.4.4 起可用
| 值 | 預設值 | 範例 |
| :------: | :------: | :------: |
| Y, N | N | `allow-insecure-tls-fallback=Y` |

View File

@ -0,0 +1,376 @@
---
title: Deployare client
weight: 400
pre: "<b>2.4. </b>"
---
Cea mai simplă metodă este să folosiți clientul personalizat, https://twitter.com/rustdesk/status/1788905463678951787.
Puteți implementa prin mai multe metode; unele sunt acoperite în [Client Configuration](https://rustdesk.com/docs/en/self-host/client-configuration/).
Alternativ, puteți folosi scripturi de implementare în masă cu RMM, Intune, etc. ID-ul și parola sunt afișate de script. Ar trebui să colectați aceste valori sau să le separați în scripturi diferite pentru a prelua ID-ul și parola.
Parola permanentă poate fi schimbată din valoarea aleatorie într-una preferată prin modificarea conținutului din interiorul parantezelor `()` după `rustdesk_pw` pentru PowerShell și linia corespunzătoare pentru orice altă platformă.
## PowerShell
```powershell
$ErrorActionPreference= 'silentlycontinue'
# Assign the value random password to the password variable
$rustdesk_pw=(-join ((65..90) + (97..122) | Get-Random -Count 12 | % {[char]$_}))
# Get your config string from your Web portal and Fill Below
$rustdesk_cfg="configstring"
################################## Please Do Not Edit Below This Line #########################################
# Run as administrator and stays in the current directory
if (-Not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
{
if ([int](Get-CimInstance -Class Win32_OperatingSystem | Select-Object -ExpandProperty BuildNumber) -ge 6000)
{
Start-Process PowerShell -Verb RunAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"cd '$pwd'; & '$PSCommandPath';`"";
Exit;
}
}
# This function will return the latest version and download link as an object
function getLatest()
{
$Page = Invoke-WebRequest -Uri 'https://github.com/rustdesk/rustdesk/releases/latest' -UseBasicParsing
$HTML = New-Object -Com "HTMLFile"
try
{
$HTML.IHTMLDocument2_write($Page.Content)
}
catch
{
$src = [System.Text.Encoding]::Unicode.GetBytes($Page.Content)
$HTML.write($src)
}
# Current example link: https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe
$Downloadlink = ($HTML.Links | Where {$_.href -match '(.)+\/rustdesk\/rustdesk\/releases\/download\/\d{1}.\d{1,2}.\d{1,2}(.{0,3})\/rustdesk(.)+x86_64.exe'} | select -first 1).href
# bugfix - sometimes you need to replace "about:"
$Downloadlink = $Downloadlink.Replace('about:', 'https://github.com')
$Version = "unknown"
if ($Downloadlink -match './rustdesk/rustdesk/releases/download/(?<content>.*)/rustdesk-(.)+x86_64.exe')
{
$Version = $matches['content']
}
if ($Version -eq "unknown" -or $Downloadlink -eq "")
{
Write-Output "ERROR: Version or download link not found."
Exit
}
# Create object to return
$params += @{Version = $Version}
$params += @{Downloadlink = $Downloadlink}
$Result = New-Object PSObject -Property $params
return($Result)
}
$RustDeskOnGitHub = getLatest
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
if ($rdver -eq $RustDeskOnGitHub.Version)
{
Write-Output "RustDesk $rdver is the newest version."
Exit
}
if (!(Test-Path C:\Temp))
{
New-Item -ItemType Directory -Force -Path C:\Temp | Out-Null
}
cd C:\Temp
Invoke-WebRequest $RustDeskOnGitHub.Downloadlink -Outfile "rustdesk.exe"
Start-Process .\rustdesk.exe --silent-install
Start-Sleep -seconds 20
$ServiceName = 'Rustdesk'
$arrService = Get-Service -Name $ServiceName -ErrorAction SilentlyContinue
if ($arrService -eq $null)
{
Write-Output "Installing service"
cd $env:ProgramFiles\RustDesk
Start-Process .\rustdesk.exe --install-service
Start-Sleep -seconds 20
$arrService = Get-Service -Name $ServiceName
}
while ($arrService.Status -ne 'Running')
{
Start-Service $ServiceName
Start-Sleep -seconds 5
$arrService.Refresh()
}
cd $env:ProgramFiles\RustDesk\
.\rustdesk.exe --get-id | Write-Output -OutVariable rustdesk_id
.\rustdesk.exe --config $rustdesk_cfg
.\rustdesk.exe --password $rustdesk_pw
Write-Output "..............................................."
# Show the value of the ID Variable
Write-Output "RustDesk ID: $rustdesk_id"
# Show the value of the Password Variable
Write-Output "Password: $rustdesk_pw"
Write-Output "..............................................."
```
## Windows batch/cmd
```bat
@echo off
REM Assign the value random password to the password variable
setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
set rustdesk_pw=
for /L %%b in (1, 1, 12) do (
set /A rnd_num=!RANDOM! %% 62
for %%c in (!rnd_num!) do (
set rustdesk_pw=!rustdesk_pw!!alfanum:~%%c,1!
)
)
REM Get your config string from your Web portal and Fill Below
set rustdesk_cfg="configstring"
REM ############################### Please Do Not Edit Below This Line #########################################
if not exist C:\Temp\ md C:\Temp\
cd C:\Temp\
curl -L "https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe" -o rustdesk.exe
rustdesk.exe --silent-install
timeout /t 20
cd "C:\Program Files\RustDesk\"
rustdesk.exe --install-service
timeout /t 20
for /f "delims=" %%i in ('rustdesk.exe --get-id ^| more') do set rustdesk_id=%%i
rustdesk.exe --config %rustdesk_cfg%
rustdesk.exe --password %rustdesk_pw%
echo ...............................................
REM Show the value of the ID Variable
echo RustDesk ID: %rustdesk_id%
REM Show the value of the Password Variable
echo Password: %rustdesk_pw%
echo ...............................................
```
## MSI
Puteți folosi MSI în loc de `rustdesk.exe --silent-install`.
https://rustdesk.com/docs/en/client/windows/msi/
## Winget
puteți implementa prin powershell cu winget de asemenea (instalează via managerul Microsoft - parte din cele mai recente instalări Windows)
dintr-o fereastră powershell sau via script (de exemplu prin GPO)
```
winget install --id=RustDesk.RustDesk -e
```
## macOS Bash
```sh
#!/bin/bash
# Assign the value random password to the password variable
rustdesk_pw=$(openssl rand -hex 4)
# Get your config string from your Web portal and Fill Below
rustdesk_cfg="configstring"
################################## Please Do Not Edit Below This Line #########################################
# Root password request for privilege escalation
[ "$UID" -eq 0 ] || exec sudo bash "$0" "$@"
# Specify the mount point for the DMG (temporary directory)
mount_point="/Volumes/RustDesk"
# Download the rustdesk.dmg file
echo "Downloading RustDesk Now"
if [[ $(arch) == 'arm64' ]]; then
rd_link=$(curl -sL https://github.com/rustdesk/rustdesk/releases/latest | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*/\d{1}.\d{1,2}.\d{1,2}/rustdesk.\d{1}.\d{1,2}.\d{1,2}.aarch64.dmg")
dmg_file=$(echo $rd_link | grep -Eo "rustdesk.\d{1}.\d{1,2}.\d{1,2}.aarch64.dmg")
curl -L "$rd_link" --output "$dmg_file"
else
rd_link=$(curl -sL https://github.com/rustdesk/rustdesk/releases/latest | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*/\d{1}.\d{1,2}.\d{1,2}/rustdesk.\d{1}.\d{1,2}.\d{1,2}.x86_64.dmg")
dmg_file=$(echo $rd_link | grep -Eo "rustdesk.\d{1}.\d{1,2}.\d{1,2}.x86_64.dmg")
curl -L "$rd_link" --output "$dmg_file"
fi
# Mount the DMG file to the specified mount point
hdiutil attach "$dmg_file" -mountpoint "$mount_point" &> /dev/null
# Check if the mounting was successful
if [ $? -eq 0 ]; then
# Move the contents of the mounted DMG to the /Applications folder
cp -R "$mount_point/RustDesk.app" "/Applications/" &> /dev/null
# Unmount the DMG file
hdiutil detach "$mount_point" &> /dev/null
else
echo "Failed to mount the RustDesk DMG. Installation aborted."
exit 1
fi
# Run the rustdesk command with --get-id and store the output in the rustdesk_id variable
cd /Applications/RustDesk.app/Contents/MacOS/
rustdesk_id=$(./RustDesk --get-id)
# Apply new password to RustDesk
./RustDesk --server &
/Applications/RustDesk.app/Contents/MacOS/RustDesk --password $rustdesk_pw &> /dev/null
/Applications/RustDesk.app/Contents/MacOS/RustDesk --config $rustdesk_cfg
# Kill all processes named RustDesk
rdpid=$(pgrep RustDesk)
kill $rdpid &> /dev/null
echo "..............................................."
# Check if the rustdesk_id is not empty
if [ -n "$rustdesk_id" ]; then
echo "RustDesk ID: $rustdesk_id"
else
echo "Failed to get RustDesk ID."
fi
# Echo the value of the password variable
echo "Password: $rustdesk_pw"
echo "..............................................."
echo "Please complete install on GUI, launching RustDesk now."
open -n /Applications/RustDesk.app
```
## Linux
```sh
#!/bin/bash
# Assign a random value to the password variable
rustdesk_pw=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
# Get your config string from your Web portal and Fill Below
rustdesk_cfg="configstring"
################################## Please Do Not Edit Below This Line #########################################
# Check if the script is being run as root
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root."
exit 1
fi
# Identify OS
if [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
UPSTREAM_ID=${ID_LIKE,,}
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
UPSTREAM_ID="$(echo ${ID_LIKE,,} | sed s/\"//g | cut -d' ' -f1)"
fi
elif type lsb_release >/dev/null 2>&1; then
# linuxbase.org
OS=$(lsb_release -si)
VER=$(lsb_release -sr)
elif [ -f /etc/lsb-release ]; then
# For some versions of Debian/Ubuntu without lsb_release command
. /etc/lsb-release
OS=$DISTRIB_ID
VER=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then
# Older Debian, Ubuntu, etc.
OS=Debian
VER=$(cat /etc/debian_version)
elif [ -f /etc/SuSE-release ]; then
# Older SuSE etc.
OS=SuSE
VER=$(cat /etc/SuSE-release)
elif [ -f /etc/redhat-release ]; then
# Older Red Hat, CentOS, etc.
OS=RedHat
VER=$(cat /etc/redhat-release)
else
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
OS=$(uname -s)
VER=$(uname -r)
fi
# Install RustDesk
echo "Installing RustDesk"
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.deb
apt-get install -fy ./rustdesk-1.2.6-x86_64.deb > null
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "$OS" = "Fedora Linux" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "$OS" = "Almalinux" ] || [ "$OS" = "Rocky*" ] ; then
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-0.x86_64.rpm
yum localinstall ./rustdesk-1.2.6-0.x86_64.rpm -y > null
else
echo "Unsupported OS"
# here you could ask the user for permission to try and install anyway
# if they say yes, then do the install
# if they say no, exit the script
exit 1
fi
# Run the rustdesk command with --get-id and store the output in the rustdesk_id variable
rustdesk_id=$(rustdesk --get-id)
# Apply new password to RustDesk
rustdesk --password $rustdesk_pw &> /dev/null
rustdesk --config $rustdesk_cfg
systemctl restart rustdesk
echo "..............................................."
# Check if the rustdesk_id is not empty
if [ -n "$rustdesk_id" ]; then
echo "RustDesk ID: $rustdesk_id"
else
echo "Failed to get RustDesk ID."
fi
# Echo the value of the password variable
echo "Password: $rustdesk_pw"
echo "..............................................."
```

View File

@ -0,0 +1,131 @@
---
title: Probleme NAT Loopback
weight: 500
pre: "<b>2.5. </b>"
---
{{% notice note %}}
Această explicație implică noțiuni complexe de rețea; vă rugăm să ne ajutați să o îmbunătățim pentru lizibilitate.
{{% /notice %}}
Pentru mai multe detalii despre NAT Loopback, consultați pagina [Wikipedia](https://en.m.wikipedia.org/wiki/Network_address_translation#NAT_hairpinning).
Când implementați un server RustDesk pe rețeaua de acasă sau pe orice rețea din spatele unui NAT/firewall, serverul RustDesk și clienții dvs. **TREBUIE** fie:
A: Să folosească adrese IP locale pentru a se accesa reciproc SAU
B: Să folosească un router/firewall care suportă și are activată funcția NAT Loopback.
Este posibil să observați că nu reușiți să vă conectați la server utilizând **IP-ul public** sau **domeniul** (care, în teorie, indică IP-ul public).
## Problema
În acest exemplu urmărim ce se întâmplă când un dispozitiv LAN încearcă să se conecteze la `rustdesk.example.com`. Să presupunem că IP-ul public al routerului este `172.16.16.1`, IP-ul LAN al serverului este `192.168.11.20`, domeniul dorit este `rustdesk.example.com`, iar clientul folosește `192.168.11.2`.
Când configurați un server în spatele NAT-ului routerului, puteți adăuga o regulă de port forwarding în router astfel încât orice mesaje care vin către IP-ul PUBLIC `172.16.16.1` să fie redirecționate către serverul `192.168.11.20`.
Când un dispozitiv din LAN vrea să acceseze internetul, de exemplu un webserver la `8.8.8.8`, trimite cererea ca provenind de la `192.168.11.2` către router. Routerul va intercepta cererea și o va rescrie astfel încât solicitarea către `8.8.8.8` pare că vine de la `172.16.16.1`. Când `8.8.8.8` răspunde la `172.16.16.1`, routerul caută o conexiune anterioară și redirecționează răspunsul înapoi la `192.168.11.2`.
Dacă utilizatorul de la `8.8.8.8` trimite un mesaj către rețeaua noastră folosind `172.16.16.1`, regula de port forwarding va rescrie destinația `172.16.16.1` către serverul `192.168.11.20`, păstrând sursa cererii `8.8.8.8` astfel încât serverul poate răspunde (mai mult sau mai puțin) direct la `8.8.8.8`.
Dacă cineva de la `8.8.8.8` pretinde că trimite mesaje de la `192.168.11.2`, routerul știe că traficul provenit de la `192.168.11.2` este valid doar din interiorul rețelei LAN și va bloca tipic acel trafic.
Problema apare când încercați să faceți loop-back în LAN. Dacă dispozitivul LAN încearcă să se conecteze la `rustdesk.example.com` (adică `172.16.16.1`), routerul are mai multe opțiuni de procesare. Practic a trimis un pachet de pe portul LAN către portul WAN al său, provenind de la `192.168.11.2` și având destinația `172.16.16.1`. Odată ajuns pe portul WAN, acest pachet este, din perspectiva routerului, nedistinct de un pachet trimis din exterior (un potențial atac).
Funcția NAT Loopback va modifica sursa (partea "From 192.168.11.2") mai devreme în proces, astfel încât routerul să folosească tabela NAT pentru a trece pachetele între server și client înapoi în rețea.
Dacă aveți probleme doar când sunteți în LAN, dar lucrurile funcționează normal din exterior, este foarte probabil să aveți o problemă legată de NAT Loopback.
## Soluții
Există trei metode principale de rezolvare.
### 1. Activați NAT Loopback pe router
Puteți configura NAT Loopback pe router, dacă acesta suportă funcția, dar acest lucru necesită cunoștințe de rețelistică. Unele routere nu au această capacitate, deci nu este soluția universală.
{{% notice note %}}
Un articol de la [MikroTik](https://help.mikrotik.com/docs/display/ROS/NAT#NAT-HairpinNAT) explică conceptul foarte bine. Puteți începe de aici.
{{% /notice %}}
### 2. Rulați un server DNS în LAN
Alegeți una din soluțiile populare, de exemplu [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome/wiki/Docker) sau [Pi-hole](https://github.com/pi-hole/docker-pi-hole). Le puteți rula în Docker sau pe aceeași mașină cu serverul RustDesk. Exemplul de mai jos arată pașii generali.
Ambele sunt, în esență, servere DNS cu funcții de blocare a reclamelor, dar puteți dezactiva blocarea dacă nu o doriți.
Mai întâi, indicați domeniul dvs. către IP-ul LAN al serverului RustDesk (ex.: `192.168.11.20`). Apoi, în setările DHCP ale routerului (ATENȚIE: nu în setarea WAN), setați adresa DNS primară la serverul pe care ați instalat AdGuard Home sau Pi-hole. DNS-ul secundar poate fi DNS-ul ISP sau un DNS public (ex. `1.1.1.1` sau `8.8.8.8`).
Exemple practice:
#### AdGuard Home
Dacă doriți să dezactivați funcția de blocare (pentru a evita probleme), folosiți butonul "Disable protection".
![](/docs/en/self-host/nat-loopback-issues/images/adguard_home_disable_protection.png)
<br>
Accesați setarea "DNS rewrites".
![](/docs/en/self-host/nat-loopback-issues/images/adguard_home_click_dns_rewrites.png)
<br>
Click pe "Add DNS rewrite", apoi introduceți domeniul (`domain`) și IP-ul LAN al serverului.
![](/docs/en/self-host/nat-loopback-issues/images/adguard_home_dns_rewrite_dialog.png)
Rezultatul final ar trebui să arate astfel:
![](/docs/en/self-host/nat-loopback-issues/images/adguard_home_dns_rewrite_final_result.png)
***Nu uitați să assignați AdGuard Home ca DNS în DHCP-ul routerului!***
<hr>
#### Pi-hole
Dacă doriți să dezactivați blocarea reclamelor, folosiți opțiunea "Indefinitely" din meniul "Disable Blocking".
![](/docs/en/self-host/nat-loopback-issues/images/pi_hole_disable_blocking.png)
Mergeți la "Local DNS → DNS Records" și adăugați o înregistrare cu domeniul și IP-ul serverului.
![](/docs/en/self-host/nat-loopback-issues/images/pi_hole_local_dns_dns_records.png)
***Nu uitați să assignați Pi-hole ca DNS în DHCP-ul routerului!***
### 3. Adăugați reguli în fișierul hosts
Această metodă este recomandată doar pentru un număr mic de dispozitive. Dacă aveți multe dispozitive, folosiți soluția DNS descrisă mai sus, deoarece altfel va trebui să editați hosts pe fiecare dispozitiv.
{{% notice warning %}}
Dacă folosiți această metodă pe un dispozitiv portabil (de ex. laptop), acesta nu va putea accesa serverul când este în afara rețelei LAN.
{{% /notice %}}
Path-uri pentru diferite sisteme de operare:
#### Windows
```text
C:\Windows\system32\drivers\etc\hosts
```
Puteți edita fișierul cu privilegii elevate sau copia fișierul pe Desktop, edita și apoi copia înapoi la locația originală.
#### macOS
```text
/etc/hosts
```
Puteți folosi `vim` (preinstalat):
```sh
sudo vim /etc/hosts
```
#### Linux
```text
/etc/hosts
```
Puteți folosi `vim` sau `nano`:
```sh
sudo vim /etc/hosts
```
Formatul este același pe toate sistemele. IP-ul pe primul loc, urmat de domeniu; câte o intrare pe linie.
Exemplu:
```text
192.168.11.20 rustdesk.example.com
```

View File

@ -0,0 +1,134 @@
---
title: Docker
weight: 7
---
> Iată un alt tutorial bun: [Construirea propriului tău Remote Desktop: RustDesk Self-Hosted on Cloud cu Docker (Hetzner)](https://www.linkedin.com/pulse/building-your-own-remote-desktop-solution-rustdesk-cloud-montinaro-bv94f)
## Instalează propriul server cu Docker
### Cerințe
Trebuie să ai instalat Docker/Podman pentru a rula rustdesk-server ca un container Docker. Dacă nu ești sigur, instalează Docker urmând acest [ghid](https://docs.docker.com/engine/install) pentru a te asigura că ai cea mai recentă versiune!
Asigură-te că deschizi următoarele porturi în firewall:
- `hbbs`:
- `21114` (TCP): folosit pentru consola web, disponibil doar în versiunea `Pro`.
- `21115` (TCP): folosit pentru testul tipului NAT.
- `21116` (TCP/UDP): **Reține că `21116` trebuie activat atât pentru TCP, cât și pentru UDP.** `21116/UDP` este folosit pentru înregistrarea ID-ului și serviciul de heartbeat. `21116/TCP` este folosit pentru TCP hole punching și serviciul de conectare.
- `21118` (TCP): folosit pentru a suporta clienții web.
- `hbbr`:
- `21117` (TCP): folosit pentru serviciile Relay.
- `21119` (TCP): folosit pentru a suporta clienții web.
*Dacă nu ai nevoie de suport pentru clienți web, porturile corespunzătoare `21118`, `21119` pot fi dezactivate.*
### Exemple Docker
```sh
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr
```
<a name="net-host"></a>
{{% notice note %}}
`--net=host` funcționează doar pe **Linux**, ceea ce face ca `hbbs`/`hbbr` să vadă adresa IP reală de intrare în locul adresei IP a containerului (172.17.0.1).
Dacă `--net=host` funcționează corect, opțiunile `-p` nu se folosesc. Pe Windows, omite `sudo` și `--net=host`.
**Te rugăm să elimini `--net=host` dacă ai probleme de conectivitate pe platforma ta.**
{{% /notice %}}
{{% notice note %}}
Dacă nu poți vedea jurnalele cu `-td`, le poți vizualiza cu `docker logs hbbs`. Sau poți rula cu `-it`; în acest caz `hbbs/hbbr` nu vor rula în modul daemon.
{{% /notice %}}
### Exemple Docker Compose
Pentru a rula fișierele Docker cu `compose.yml` așa cum sunt descrise aici, trebuie să ai instalat [Docker Compose](https://docs.docker.com/compose/).
```yaml
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
```
Dacă trebuie să faci modificări de configurare, de exemplu să setezi ALWAYS_USE_RELAY=Y, poți folosi variabile de mediu în `docker-compose.yml`:
```yaml
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest
environment:
- ALWAYS_USE_RELAY=Y
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
```
### Exemple Podman Quadlet
Dacă dorești să rulezi containerele cu Podman ca serviciu systemd poți folosi aceste configurații Quadlet de exemplu:
```ini
[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbs
Volume=/path/to/rustdesk-server/data:/root
Network=host
[Service]
Restart=always
[Install]
WantedBy=default.target
```
sau
```ini
[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbr
Volume=/path/to/rustdesk-server/data:/root
Network=host
[Service]
Restart=always
[Install]
WantedBy=default.target
```

View File

@ -0,0 +1,13 @@
---
title: RustDesk Server OSS
weight: 100
pre: "<b>2.1. </b>"
---
Vă rugăm să vă alăturați [Discord](https://discord.com/invite/nDceKgxnkV) dacă doriți să discutați cu noi despre găzduirea propriei versiuni [open source RustDesk Server](https://github.com/rustdesk/rustdesk-server).
{{% notice note %}}
Dacă ați compilat/instalat propriul server acasă sau la birou și nu reușiți să vă conectați la el printr-un IP sau domeniu public, vă rugăm să verificați [acest articol](https://rustdesk.com/docs/en/self-host/nat-loopback-issues/).
{{% /notice %}}
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,52 @@
---
title: Instalare
weight: 1
---
## Tutoriale video
Există multe tutoriale video pe YouTube: https://github.com/rustdesk/rustdesk/wiki/FAQ#video-tutorials.
## Cerințe server
Cerințele hardware sunt foarte mici; o configurație minimă a unui server cloud de bază este suficientă, iar cerințele de CPU și memorie sunt minime. Poți folosi, de asemenea, un Raspberry Pi sau ceva similar. În ceea ce privește consumul de rețea, dacă conexiunea directă prin TCP hole punching eșuează, traficul va trece prin relay. Traficul unei conexiuni relay variază între 30 K/s și 3 M/s (ecran 1920x1080), în funcție de setările de rezoluție și de actualizarea ecranului. Dacă este folosit doar pentru activități de birou, traficul este în jur de 100 K/s.
## Firewall
Dacă ai UFW instalat, folosește următoarele comenzi pentru a configura firewall-ul:
```
ufw allow 21114:21119/tcp
ufw allow 21116/udp
sudo ufw enable
```
## Instalare
### Metoda 1: Docker (Recomandat)
```
bash <(wget -qO- https://get.docker.com)
wget rustdesk.com/oss.yml -O compose.yml
sudo docker compose up -d
```
Pentru mai multe detalii, verifică [Docker](/docs/en/self-host/rustdesk-server-oss/docker/).
### Metoda 2: Instalează propriul server ca serviciu systemd folosind un script de instalare ușor de rulat
Scriptul este găzduit la [Techahold](https://github.com/techahold/rustdeskinstall) și este susținut în comunitatea noastră de pe [Discord](https://discord.com/invite/nDceKgxnkV).
În prezent, scriptul va descărca și configura serverele Relay și Signal (hbbr și hbbs), va genera configurațiile și le va găzdui pe o pagină web protejată prin parolă pentru o implementare simplă către clienți.
Rulează următoarele comenzi:
```
wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh
chmod +x install.sh
./install.sh
```
Există, de asemenea, un script de actualizare în repository-ul [Techahold](https://github.com/techahold/rustdeskinstall).
După instalare, notează IP/DNS și Key afișate la final și introdu-le în client la Settings > Network > câmpurile `ID server` și `Key`, lăsând celelalte câmpuri necompletate (vezi nota de mai jos).
### Metoda 3: Instalează propriul server ca serviciu systemd folosind pachet .deb pentru distribuții Debian
Te rog [descarcă](https://github.com/rustdesk/rustdesk-server/releases/latest) fișierele .deb și instalează-le cu `apt-get -f install <filename>.deb` sau `dpkg -i <filename>.deb`.
## Configurează clientul
Te rog verifică [această pagină](/docs/en/self-host/client-configuration/#2-manual-config).

View File

@ -0,0 +1,10 @@
---
title: Synology
weight: 22
---
Synology are două tipuri de instalare pentru containere: „Docker” și „Container Manager”. Dacă folosești DSM 7.2 sau o versiune ulterioară, urmează ghidul pentru DSM 7.2; dacă folosești un sistem mai vechi, urmează ghidul pentru DSM 6.
Dacă folosești Synology împreună cu Portainer, te rugăm să consulți [acest tutorial](https://mariushosting.com/how-to-install-rustdesk-on-your-synology-nas/).
{{% children depth="3" showhidden="true" %}}

View File

@ -0,0 +1,71 @@
---
title: Synology DSM 6
weight: 22
---
> Un tutorial alternatiu și actualizat de la terți este disponibil [aici](https://mariushosting.com/how-to-install-rustdesk-on-your-synology-nas/).
Acest tutorial se bazează pe versiunile DSM v6 și v7.
{{% notice note %}}
După actualizarea la DSM 7.2, Docker a fost înlocuit cu noul „Container Manager”; te rugăm să consulți [acest articol](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7) în schimb.
{{% /notice %}}
## Instalare Docker
| Deschide Package Center | Instalează Docker |
| --- | --- |
| ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/package-manager.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/docker.png) |
## Instalare RustDesk Server
| Caută rustdesk-server în registrul Docker și instalează făcând dublu click | Imaginea rustdesk-server instalată, dublu click pentru a crea containerul rustdesk-server |
| --- | --- |
| ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/pull-rustdesk-server.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/rustdesk-server-installed.png) |
## Creare container hbbs
După cum s-a menționat mai sus, fă dublu click pe imaginea rustdesk-server pentru a crea un container nou și setează-i numele `hbbs`.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/hbbs.png)
Click pe `Advanced Settings` din imaginea de mai sus.
- Activează `Enable auto-restart`.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/auto-restart.png)
- Activează `Use the same network as Docker Host`. Pentru mai multe detalii despre host net, verifică [acest ghid](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/#net-host).
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/host-net.png)
- Montează un director de pe gazdă (de exemplu `/home/rustdesk/`) la `/root`; hbbs va genera fișiere (baza de date și fișiere `key`) în acest director care trebuie păstrate persistent peste reporniri.
| Mount | Fișiere generate în directorul gazdă |
| --- | --- |
| ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/mount.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/mounted-dir.png) |
- Setează comanda
{{% notice note %}}
Sistemul de operare al Synology este bazat pe Debian, deci host net (`--net=host`) funcționează corect; nu este necesar să mapăm porturi cu opțiunea `-p`.
{{% /notice %}}
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/hbbs-cmd.png?v3)
- Gata
## Creare container hbbr
Repetă pașii de mai sus pentru `hbbs`, dar denumește containerul `hbbr` iar comanda pentru pasul Set Command trebuie să fie `hbbr`.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/hbbr-config.png)
## Containerele hbbr/hbbs
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/containers.png)
| Dublu click pe container și verifică jurnalul | Confirmă că hbbs/hbbr folosesc rețeaua host |
| --- | --- |
| ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/log.png) | ![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-6/images/network-types.png) |
## Recuperează-ți Key-ul
Accesează folderul montat folosind File Station, descarcă `id_ed25519.pub` și deschide-l cu un editor de text pentru a obține cheia ta.

View File

@ -0,0 +1,90 @@
---
title: Synology DSM 7.2
weight: 20
---
<!-- Pentru traducători: Când traduceți elemente din interfață (de ex. "butone"), nu doar traduceți literal, consultați denumirile reale din interfața Synology. -->
După actualizarea la DSM 7.2, Synology și-a redenumit pachetul „Docker” în „Container Manager”. Acesta aduce o interfață nouă și include suport pentru "docker-compose" în GUI, ceea ce facilitează crearea containerelor Docker.
## Modele suportate și cerințe
Container Manager aduce suport ARM64 pentru unele modele mai simple, cum ar fi seria J; pentru lista detaliată a modelelor suportate, verifică [site-ul Synology](https://www.synology.com/en-us/dsm/packages/ContainerManager).
De cele mai multe ori nu va fi necesară instalarea de memorie RAM suplimentară pentru a rula Docker și RustDesk Server.
## 1. Instalează Container Manager (Docker)
Deschide „Package Center”, caută și instalează „Container Manager”.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/images/dsm7_install_container_manager_though_package_center.png)
## 2. Creează folderele necesare
După ce ai instalat „Container Manager”, acesta va crea un Shared Folder numit `docker`; vom folosi acest loc pentru datele serverului.
Deschide File Station și creează un folder numit `rustdesk-server` (sau orice denumire preferi). Apoi creează în el un folder numit `data`, exact ca în imagine.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/images/dsm7_create_required_folders.png)
## 3. Creează containerul
Deschide Container Manager, mergi la Projects și click pe Create.
Introdu numele proiectului `rustdesk-server` și schimbă Source din "Upload compose.yml" în "Create compose.yml", apoi copiază conținutul de mai jos în casetă.
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/images/dsm7_creating_project_init.png?v2)
```yaml
services:
hbbs:
container_name: hbbs
image: rustdesk/rustdesk-server:latest # Please change this to rustdesk/rustdesk-server-pro:latest if you want to install Pro.
command: hbbs
volumes:
- ./data:/root
network_mode: host
depends_on:
- hbbr
restart: always
hbbr:
container_name: hbbr
image: rustdesk/rustdesk-server:latest # Please change this to rustdesk/rustdesk-server-pro:latest if you want to install Pro.
command: hbbr
volumes:
- ./data:/root
network_mode: host
restart: always
# Because using docker host mode
# Just in case you forgot the ports:
# 21114 TCP for web console, only available in Pro version
# 21115 TCP for NAT type test
# 21116 TCP TCP hole punching
# 21116 UDP heartbeat/ID server
# 21117 TCP relay
```
Sari peste `Web portal settings`, apoi finalizează (Done).
## 4. Verifică că funcționează
Deschide File Station; în `docker/rustdesk-server/data` ar trebui să vezi fișierele `id_ed25519` și `id_ed25519.pub`. Le poți descărca și deschide cu orice editor de text sau cu [Synology Text Editor](https://www.synology.com/en-us/dsm/packages/TextEditor). Aceasta este cheia publică de care ai nevoie pentru clientul RustDesk.
Cheia publică arată aproximativ așa:
![](/docs/en/self-host/rustdesk-server-oss/synology/dsm-7/images/dsm7_viewing_public_key_though_syno_text_editor.png)
Verifică [aici](/docs/en/client) pentru configurarea clientului. Sunt necesare doar câmpurile `ID server` și `Key`. `Relay server` nu este necesar deoarece această informație este furnizată automat de către `hbbs`.
## 5. Configurează port forwarding pe router
Accesează pagina de administrare a routerului, caută setările legate de `Port forwarding`; acestea se găsesc de obicei în secțiunea `WAN` sau `Firewall`.
Dacă nu găsești setarea, caută pe Google `{Nume Router} + port forwarding` sau `{Model Router} + port forwarding`. Dacă routerul a fost furnizat de ISP, întreabă-i pe ei.
Deschide următoarele porturi necesare:
* `21114` TCP pentru consola web (doar în versiunea Pro)
* `21115` TCP pentru testul tipului NAT
* `21116` TCP pentru TCP hole punching
* `21116` UDP pentru heartbeat/ID server
* `21117` TCP pentru relay

View File

@ -0,0 +1,110 @@
---
title: Windows & PM2 sau NSSM
weight: 20
---
{{% notice note %}}
Politicile de securitate Windows pot fi complicate; dacă acest tutorial nu funcționează pentru tine sau întâmpini conexiuni instabile, mută serverul pe o mașină Linux.
{{% /notice %}}
{{% notice note %}}
Versiunea GUI, `RustDeskServer.setup.exe`, nu mai este întreținută și nu este recomandată.
{{% /notice %}}
## La o răscruce
Acum ai două opțiuni: poți folosi PM2 (mai ușor) sau NSSM (puțin mai dificil) pentru a porni RustDesk Server.
Există câteva avantaje în folosirea NSSM:
- Compatibilitate cu versiuni mai vechi de Windows (Windows Server 2008 R2/Windows 7 și anterioare — neconfirmat).
- Potrivit pentru Windows Server.
- Pornire automată la boot fără autentificare (utilizatorul care a creat intrarea de pornire nu trebuie să se autentifice pentru ca serviciul să pornească).
- Rulează ambele binare ca servicii.
- Independent (fără dependență de Node.js).
Avantajele PM2 includ:
- Recomandat dacă rulezi serverul pe același calculator pe care îl folosești zilnic.
- Te autentifici regulat cu utilizatorul care a creat intrarea de pornire RustDesk.
- Mai prietenos pentru utilizator.
## Instalare folosind NSSM
### Instalare NSSM
Te rog [descarcă](https://github.com/dkxce/NSSM/releases/download/v2.25/NSSM_v2.25.zip) și despachetează NSSM, selectând arhitectura corespunzătoare sistemului tău Windows (dacă e x86 folosește conținutul din folderul `win32`, dacă e x64 folosește `win64`). Este recomandat să muți binarul NSSM în `Program Files\NSSM` (odată pornit ca serviciu, NSSM nu poate fi mutat din directorul în care a fost plasat; este mai bine să-l pui în `Program Files`). De asemenea, este indicat să adaugi calea (de ex. `C:\Program Files\NSSM`) la variabila PATH.
### Verificare instalare NSSM
Dacă totul e corect, folderul `C:\Program Files\NSSM` ar trebui să conțină doar fișierul `nssm.exe` (în exemplul nostru folosim unitatea C:, dar poți folosi orice unitate sau cale dorești).
Deschide Command Prompt și rulează `nssm`; dacă vezi pagina de help, poți continua.
### Rulează hbbr și hbbs
Descarcă versiunea pentru Windows a [RustDesk Server](https://github.com/rustdesk/rustdesk-server/releases). Dezarhivează programul în `C:\Program Files\RustDesk Server` (sau oriunde dorești, doar asigură-te că locația nu se schimbă după instalarea serviciului). Revenind în Command Prompt:
Vom folosi `C:\Program Files\RustDesk Server` în exemplu.
```cmd
nssm install "RustDesk hbbs service" "C:\Program Files\RustDesk Server\hbbs.exe"
nssm install "RustDesk hbbr service" "C:\Program Files\RustDesk Server\hbbr.exe"
```
**Notă:**
- Poți schimba `RustDesk hbbs service` cu orice nume dorești pentru serviciul hbbs
- Poți schimba `RustDesk hbbr service` cu orice nume dorești pentru serviciul hbbr
- Poți schimba `C:\Program Files\RustDesk Server\hbbs.exe` cu locația în care ai plasat binarele RustDesk
- Poți schimba `C:\Program Files\RustDesk Server\hbbr.exe` cu locația în care ai plasat binarele RustDesk
**Template comenzi:**
Modelul de comandă dacă vrei să copiezi și să editezi:
```cmd
nssm install <Nume dorit serviciu hbbs> <Cale binar hbbs> <Argumente hbbs>
nssm install <Nume dorit serviciu hbbr> <Cale binar hbbr> <Argumente hbbr>
```
**Pornește serviciile**
După instalarea serviciilor, pornește-le:
```cmd
nssm start <Nume dorit serviciu hbbs>
nssm start <Nume dorit serviciu hbbr>
```
GATA!
(Metoda de mai sus a fost testată pe Windows Server Core 2022 Standard).
## sau
## Instalare folosind PM2
### Instalare Node.js
Te rog [descarcă](https://nodejs.org/dist/v16.14.2/node-v16.14.2-x86.msi) și instalează Node.js. Node.js este mediul de execuție pentru PM2, deci trebuie instalat înainte.
### Instalare PM2
Deschide `cmd.exe` și rulează următoarele comenzi (apăsând Enter după fiecare):
```cmd
npm install -g pm2
npm install pm2-windows-startup -g
pm2-startup install
```
### Rulează hbbr și hbbs
Descarcă versiunea Windows a [RustDesk Server](https://github.com/rustdesk/rustdesk-server/releases). Dezarhivează programul pe unitatea C:. Rulează următoarele comenzi:
```cmd
cd C:\rustdesk-server-windows-x64
pm2 start hbbs.exe
pm2 start hbbr.exe
pm2 save
```
### Vizualizează jurnalele
```cmd
pm2 log hbbr
pm2 log hbbs
```
## Tutoriale alternative
https://pedja.supurovic.net/setting-up-self-hosted-rustdesk-server-on-windows/?lang=lat

View File

@ -0,0 +1,97 @@
---
title: 2FA
weight: 16
---
La autentificarea în contul tău, activarea verificării cu două factori (2FA) poate îmbunătăți securitatea contului.
Consola web suportă în prezent două tipuri de 2FA:
1. Verificare prin email
2. TOTP. Este necesară o aplicație de autentificare terță parte pentru a genera codul de verificare, de exemplu [Authy](https://authy.com), [Microsoft Authenticator](https://www.microsoft.com/en-us/security/mobile-authenticator-app/) sau [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2).
Mai întâi trebuie să accesezi pagina de setări a contului.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/1-settings-account.png)
## Verificare prin email
Pentru a activa verificarea prin email la autentificare, ai nevoie de:
1. Să setezi o adresă de email.
2. Să activezi opțiunea `Enable email login verification`.
3. Să apeși `Submit`.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/2-2fa-email-1.png)
La următoarea autentificare, RustDesk îți va trimite un email cu un cod de verificare, iar pagina web te va redirecționa către ecranul de verificare.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/2-2fa-email-2.png)
## TOTP
TOTP este o metodă 2FA larg utilizată; în consola web a RustDesk Server Pro, 2FA se referă la verificarea TOTP.
### Pregătește o aplicație de autentificare
Mai întâi, instalează o aplicație de autentificare. Poți alege din: [Authy](https://authy.com), [Microsoft Authenticator](https://www.microsoft.com/en-us/security/mobile-authenticator-app/) sau [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2).
### Activează 2FA
Când pe pagina de setări apare butonul `Enable 2FA`, înseamnă că 2FA nu este activ momentan.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-1.png)
Apasă butonul și va apărea un formular pentru activarea 2FA.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-2.png)
Deschide aplicația de autentificare și adaugă un cont scanând codul QR.
Dacă nu poți scana codul QR, poți introduce manual codul afișat.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-3.png)
După ce ai adăugat contul în aplicația de autentificare, introdu codul generat în aplicație pentru a activa 2FA.
După activare, RustDesk Server Pro va genera și lega 6 coduri de rezervă (backup codes). Aceste coduri pot fi folosite pentru a trece verificarea în cazul în care nu poți folosi aplicația de autentificare.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-4.png)
{{% notice note %}}
1. Aceste coduri de rezervă pot fi folosite o singură dată fiecare.
2. Păstrează codurile de rezervă într-un loc sigur.
{{% /notice %}}
### Verificare la autentificare
Odată activat 2FA, verificarea prin email nu se mai folosește. La autentificare se va folosi verificarea 2FA.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-login-5.png)
La autentificare, vei fi redirecționat către pagina de verificare.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-enable-login-6.png)
### Modificarea setărilor
După ce 2FA este activat, modificarea setărilor contului va necesita verificare 2FA suplimentară.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-settings-1.png)
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-settings-2.png)
### Starea 2FA
2FA are în total 3 stări: neactivat, activat și expirat.
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-not-enabled.png)
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-enabled.png)
![](/docs/en/self-host/rustdesk-server-pro/2fa/images/3-2fa-state-expired.png)
{{% notice note %}}
2FA poate fi folosit în continuare chiar și după ce apare ca "expirat". Aceasta înseamnă doar că setările 2FA nu au fost actualizate o perioadă (implicit 180 de zile). Din motive de securitate, recomandăm reactivarea 2FA pentru a regenera secretul.
{{% /notice %}}

View File

@ -0,0 +1,107 @@
---
title: RustDesk Server Pro
description: "Complete guide to RustDesk Server Pro - the premium self-hosted remote desktop solution. Features enterprise authentication (OIDC, LDAP, 2FA), web console, API access, and advanced security controls for professional deployment."
keywords: ["rustdesk server pro", "rustdesk pro server", "remote desktop server", "enterprise remote access", "rustdesk professional", "self-hosted rdp", "rustdesk enterprise", "remote desktop solution", "rustdesk licensing", "rustdesk web console"]
weight: 200
pre: "<b>2.2. </b>"
---
RustDesk Server Pro oferă mai multe funcționalități comparativ cu versiunea open source.
- Conturi
- [Consolă web](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/console/)
- [API](https://github.com/rustdesk/rustdesk/wiki/FAQ#api-of-rustdesk-server-pro)
- [OIDC](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/oidc/), [LDAP](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/ldap/), [2FA](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/2fa/)
- Agendă de adrese
- Management jurnale (conexiuni, transfer fișiere, alarme etc.)
- Management dispozitive
- [Sincronizare setări de securitate](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/strategy/)
- [Control acces](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/permissions/)
- [Multiple servere relay](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/) (selectează automat cel mai apropiat relay)
- [Generator client personalizat](https://rustdesk.com/docs/en/self-host/client-configuration/#1-custom-client-generator-pro-only)
- WebSocket
- Client web self-host
{{% notice note %}}
Dacă ai construit propriul server acasă sau la birou și nu te poți conecta printr-un IP/domeniu public, verifică [acest articol](https://rustdesk.com/docs/en/self-host/nat-loopback-issues/).
{{% /notice %}}
{{% notice note %}}
Recomandăm lecturarea acestei pagini înainte de a continua: [Cum funcționează serverul self-hosted?](/docs/en/self-host/#how-does-self-hosted-server-work).
{{% /notice %}}
## Cerințe hardware
Un VPS la nivel minim este suficient pentru majoritatea cazurilor. Software-ul serverului nu este intensiv în CPU sau memorie. Serverul nostru public pentru ID găzduit pe un Vultr 2 CPU/4 GB deservește peste 1 milion de endpoint-uri. Fiecare conexiune relay consumă în medie 180 KB pe secundă. 1 nucleu CPU și 1 GB RAM sunt suficiente pentru a susține 1000 de conexiuni relay concurente.
## Articole/tutoriale
[Ghid pas cu pas: Self-Host RustDesk Server Pro în cloud cu Docker pentru acces securizat](https://www.linkedin.com/pulse/step-by-step-guide-self-host-rustdesk-server-pro-cloud-montinaro-fwnmf/)
## Tutoriale video
[Ghid pentru începători: Self-Host RustDesk Server Pro pentru utilizatori Linux începători](https://www.youtube.com/watch?v=MclmfYR3frk)
[Ghid rapid: Self-Host RustDesk Server Pro pentru utilizatori Linux avansați](https://youtu.be/gMKFEziajmo)
## Licență
Poți obține o licență de la https://rustdesk.com/pricing.html; verifică pagina de [licențiere](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) pentru detalii.
## Începe
### 1. Instalare
```
bash <(wget -qO- https://get.docker.com)
wget rustdesk.com/pro.yml -O compose.yml
sudo docker compose up -d
```
Pentru mai multe detalii, verifică [Docker](/docs/en/self-host/rustdesk-server-pro/installscript/docker/).
### 2. Porturi necesare
Trebuie să ai porturile `21114`-`21119` TCP și `21116` UDP deschise; asigură-te că acestea sunt configurate în regulile firewall-ului și în mapările Docker.
Mai multe informații despre aceste porturi sunt disponibile [aici](/docs/en/self-host/rustdesk-server-oss/install/#ports).
### 3. Setează licența
Deschide consola web la `http://<adresa-serverului>:21114`, [autentifică-te](/docs/en/self-host/rustdesk-server-pro/console/#log-in) folosind credențialele implicite `admin`/`test1234`. Urmează [acest ghid](/docs/en/self-host/rustdesk-server-pro/license/#set-license) pentru a introduce licența.
### 4. Configurează HTTPS pentru consola web
> Poți sări peste acest pas în perioada de testare dacă nu dorești HTTPS, dar amintește-ți să schimbi adresa API a clientului după instalarea HTTPS.
Iată un tutorial simplu pentru [configurare HTTPS manuală](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually).
### 5. Configurează clientul să folosească serverul self-hosted
https://rustdesk.com/docs/en/self-host/client-configuration/
### 6. Configurează WebSocket
Pentru a activa clientul web sau pentru ca [clientul desktop/mobile](/docs/en/self-host/client-configuration/advanced-settings/#allow-websocket) să funcționeze corect cu WebSocket, adaugă următoarele setări în configurația reverse proxy-ului tău.
https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#8-add-websocket-secure-wss-support-for-the-id-server-and-relay-server-to-enable-secure-communication-for-all-platforms
## Upgrade server
Acest [ghid](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#there-is-a-new-version-of-rustdesk-server-pro-out-how-can-i-upgrade) explică cum să faci upgrade pentru RustDesk Server Pro între versiuni și acoperă diferite metode de instalare.
## Migrare pe un host nou și backup/restore
Aici este un [tutorial detaliat](https://github.com/rustdesk/rustdesk-server-pro/discussions/184).
## Migrare licență
Urmărește acest [ghid](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-license-retrieval-and-migration) pentru migrarea licenței.
## Upgrade licență
Urmărește [acest ghid](/docs/en/self-host/rustdesk-server-pro/license/#renewupgrade-license) pentru a-ți upgrada licența pentru mai mulți utilizatori sau dispozitive.
## Despre securitate
https://github.com/rustdesk/rustdesk/discussions/9835

View File

@ -83,18 +83,427 @@ Gmail in diesem Beispiel
7. Geben Sie in `Von` Ihr Gmail-Konto ein, z. B. `myrustdeskserver@gmail.com`.
8. Klicken Sie zum Speichern auf `Check`.
## Gerätebenutzer, -gruppen und -strategien den Geräten zuweisen
Der Benutzer ist der RustDesk-Benutzer, der auf dem Gerät eingeloggt ist oder dem Gerät zugewiesen wurde, indem Sie auf `Bearbeiten` neben dem Gerät klicken. Klicken Sie auf das Feld `Benutzer` und wählen Sie Ihren Benutzer aus der Dropdown-Liste aus. Damit wird die Gruppe auf der Grundlage der Gruppe, der der Benutzer zugewiesen wurde, automatisch zugewiesen.
## Gerätebenutzer/Strategien/Gerätegruppen Geräten über die Webkonsole zuweisen
Dies kann auch über die API in der Befehlszeile bei der Bereitstellung oder später erfolgen, indem Sie die ausführbare Datei RustDesk aufrufen, gefolgt von `--assign --token <generatedtoken> --user_name <username>`. Dazu gehen Sie zu `Einstellungen → Token → Erstellen` und erstellen ein Token mit Geräteberechtigungen. Ein Beispiel hierfür wäre unter Windows: `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <newuser>`.
Der Benutzer ist der RustDesk-Benutzer, der auf dem Gerät angemeldet ist oder dem Gerät durch Klicken auf **Bearbeiten (Edit)** neben dem Gerät zugewiesen wurde.
Klicke in das **Benutzer (User)**-Feld und wähle deinen Benutzer aus dem Dropdown-Menü.
Du kannst auch mehrere Geräte einem Benutzer zuweisen, indem du in der **Benutzerliste (User List)** auf **Mehr → Geräte zuweisen (Assign Devices)** klickst.
Sie können die Strategie z. B. auch mit `--assign --token <generatedtoken> --strategy_name <strategyname>` zuweisen.
Um ein Gerät einer Gerätegruppe hinzuzufügen, klicke in der **Geräteliste (Device List)** auf **Bearbeiten (Edit)** neben dem Gerät und ändere die **Gruppe (Group)**, oder gehe zur Liste **Gerätegruppen (Device Groups)**, klicke auf den Namen einer Gruppe und passe die darin enthaltenen Geräte an.
Sie können auch das Adressbuch auf diese Weise zuweisen, z. B. `--assign --token <generatedtoken> --address_book_name <addressbookname>` oder `--assign --token <generatedtoken> --address_book_name <addressbookname> --address_book_tag <addressbooktag> --address_book_alias <alias>`. `--address_book_alias` erfordert RustDesk Server Pro >=1.5.8 und Client >=1.4.1.
Um eine Strategie einem Gerät zuzuweisen, bewege die Maus auf die rechte Seite der **Strategieliste (Strategy List)** und klicke im Menü auf **Geräte bearbeiten (Edit Devices)**, **Benutzer bearbeiten (Edit Users)** oder **Gerätegruppen bearbeiten (Edit Device Groups)**, um die entsprechenden Geräte, Benutzergeräte oder Gerätegruppengeräte zur ausgewählten Strategie hinzuzufügen.
Sie können auch den Geräte-Gruppennamen auf diese Weise zuweisen, z. B. `--assign --token <generatedtoken> --device_group_name <devicegroupname>`.
---
## API-Token
Zuerst musst du zu **Settings → Tokens → Create** gehen und ein Token mit den erforderlichen Berechtigungen erstellen:
**Device, Audit Log, User, Group, Strategy, Address Book**.
Nach der Erstellung kannst du diese Tokens über die **Befehlszeile (Command Line)** oder das **Python CLI** verwenden, um Aktionen mit den entsprechenden Berechtigungen auszuführen.
### Zuweisung über Token in der Befehlszeile
Du kannst auch die RustDesk-Programmdatei mit dem Parameter `--assign` verwenden, um Zuweisungen vorzunehmen.
Damit kannst du Benutzer, Strategien, Adressbücher oder Gerätegruppen direkt über die Befehlszeile einem Gerät zuweisen.
**Beispiel:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
---
Unterstützte Parameter
| Parameter | Beschreibung | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | -------------------------------------------------- | ------------------- | --------------- |
| `--user_name <username>` | Weist dem Gerät einen Benutzer zu | | |
| `--strategy_name <strategyname>` | Weist dem Gerät eine Strategie zu | | |
| `--address_book_name <addressbookname>` | Weist das Gerät einem Adressbuch zu | | |
| `--address_book_tag <addressbooktag>` | Weist über Adressbuch-Tag zu | | |
| `--address_book_alias <alias>` | Weist über Adressbuch-Alias zu | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Setzt das Passwort für den Adressbucheintrag | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Fügt eine Notiz für den Adressbucheintrag hinzu | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Weist das Gerät einer Gerätegruppe zu | | |
| `--note <note>` | Fügt dem Gerät eine Notiz hinzu | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Legt den Gerätenutzernamen fest | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Legt den Gerätenamen fest | 1.6.6 | 1.4.3 |
In der Windows-Befehlszeile wird standardmäßig keine Ausgabe angezeigt.
Um eine Ausgabe zu erhalten, führe den Befehl wie folgt aus:
`"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more`
oder
`"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`
(siehe [hier](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)).
---
### Python CLI Verwaltungstools
#### Benutzerverwaltung (`users.py`)
**Hilfe anzeigen:**
`./users.py -h`
**Benutzer anzeigen:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filter:**
- `--name`: Benutzername (unscharfe Suche)
- `--group_name`: Benutzergruppe (exakte Übereinstimmung)
**Beispiel:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Grundlegende Operationen:**
- **Benutzer deaktivieren:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Benutzer aktivieren:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Benutzer löschen:**
`./users.py --url <url> --token <token> delete --name testuser`
**Benutzererstellung und Einladung:**
- **Neuen Benutzer erstellen:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "Notiz"]`
Erforderlich: `--name`, `--password`, `--group_name`
Optional: `--email`, `--note`
- **Benutzer per E-Mail einladen:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "Notiz"]`
Erforderlich: `--email`, `--name`, `--group_name`
Optional: `--note`
**2FA und Sicherheitsoperationen:**
- **2FA-Erzwingung aktivieren:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Erforderlich: `--web-console-url`
- **2FA-Erzwingung deaktivieren:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Optional: `--web-console-url`
- **2FA zurücksetzen:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **E-Mail-Verifizierung deaktivieren:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Erzwungenes Abmelden:**
`./users.py --url <url> --token <token> force-logout --name username`
**Hinweise:**
- Bei Operationen auf mehrere Benutzer (durch Filter übereinstimmend) wird eine Bestätigung angefordert
- Wenn keine Benutzer übereinstimmen, wird "Found 0 users" angezeigt
---
#### Benutzergruppenverwaltung (`user_group.py`)
**Hilfe anzeigen:**
`./user_group.py -h`
**Benutzergruppen anzeigen:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Beispiel:**
`./user_group.py --url https://example.com --token <token> view --name "Vertriebsteam"`
**Gruppenoperationen:**
- **Benutzergruppe erstellen:**
`./user_group.py --url <url> --token <token> add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '<json>'] [--access-to '<json>']`
Beispiel mit Zugriffskontrolle:
`./user_group.py --url <url> --token <token> add --name "Engineering" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Dev-Server"}]'`
- **Benutzergruppe aktualisieren:**
`./user_group.py --url <url> --token <token> update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Benutzergruppe löschen:**
`./user_group.py --url <url> --token <token> delete --name "Gruppenname"`
Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"`
**Benutzerverwaltung in Gruppen:**
- **Benutzer in Gruppe anzeigen:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filter:
- `--name`: Gruppenname (exakte Übereinstimmung, optional)
- `--user-name`: Benutzername (unscharfe Suche, optional)
Beispiel:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Benutzer zur Gruppe hinzufügen:**
`./user_group.py --url <url> --token <token> add-users --name "Gruppenname" --users "user1,user2,user3"`
**Zugriffskontrollparameter:**
- `--accessed-from`: JSON-Array, das definiert, wer auf diese Benutzergruppe zugreifen kann
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Benutzer (z.B. `[{"type":2,"name":"john"}]`)
- `--access-to`: JSON-Array, das definiert, worauf diese Benutzergruppe zugreifen kann
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Support"}]`)
- Type 1 = Gerätegruppe (z.B. `[{"type":1,"name":"Server"}]`)
**Hinweis:** Verwenden Sie einfache Anführungszeichen um JSON-Arrays, um Shell-Parsing-Probleme zu vermeiden.
**Berechtigungsanforderungen:**
- `view/add/update/delete/add-users` Befehle benötigen **Benutzergruppen-Berechtigung**
- `view-users` Befehl benötigt **Benutzerberechtigung**
---
#### Gerätegruppenverwaltung (`device_group.py`)
**Hilfe anzeigen:**
`./device_group.py -h`
**Gerätegruppen anzeigen:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Beispiel:**
`./device_group.py --url https://example.com --token <token> view`
**Gruppenoperationen:**
- **Gerätegruppe erstellen:**
`./device_group.py --url <url> --token <token> add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '<json>']`
Beispiel:
`./device_group.py --url <url> --token <token> add --name "Produktion" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Gerätegruppe aktualisieren:**
`./device_group.py --url <url> --token <token> update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '<json>']`
- **Gerätegruppe löschen:**
`./device_group.py --url <url> --token <token> delete --name "Gruppenname"`
Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"`
**Geräteverwaltung in Gruppen:**
- **Geräte in Gruppe anzeigen:**
`./device_group.py --url <url> --token <token> view-devices [Filter]`
Verfügbare Filter:
- `--name`: Gerätegruppenname (exakte Übereinstimmung)
- `--id`: Geräte-ID (unscharfe Suche)
- `--device-name`: Gerätename (unscharfe Suche)
- `--user-name`: Benutzername/Besitzer (unscharfe Suche)
- `--device-username`: Am Gerät angemeldeter Benutzername (unscharfe Suche)
Beispiele:
```bash
# Alle Geräte in einer Gruppe anzeigen
./device_group.py --url <url> --token <token> view-devices --name Produktion
# Nach Gerätename suchen
./device_group.py --url <url> --token <token> view-devices --device-name server
# Filter kombinieren
./device_group.py --url <url> --token <token> view-devices --name Produktion --user-name john
```
- **Geräte zur Gruppe hinzufügen:**
`./device_group.py --url <url> --token <token> add-devices --name "Gruppenname" --ids "deviceid1,deviceid2"`
- **Geräte aus Gruppe entfernen:**
`./device_group.py --url <url> --token <token> remove-devices --name "Gruppenname" --ids "deviceid1,deviceid2"`
**Zugriffskontrollparameter:**
- `--accessed-from`: JSON-Array, das definiert, wer auf diese Gerätegruppe zugreifen kann
- Type 0 = Benutzergruppe (z.B. `[{"type":0,"name":"Engineers"}]`)
- Type 2 = Benutzer (z.B. `[{"type":2,"name":"admin"}]`)
**Berechtigungsanforderungen:**
- `view/add/update/delete/add-devices/remove-devices` Befehle benötigen **Gerätegruppen-Berechtigung**
- `view-devices` Befehl benötigt **Geräteberechtigung**
---
#### Geräteverwaltung (`devices.py`)
**Hilfe anzeigen:**
./devices.py -h
**Geräte anzeigen:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filter:**
`--id`: Geräte-ID
`--device_name`: Gerätename
`--user_name`: Zugewiesener Benutzer
`--group_name`: Benutzergruppe
`--device_group_name`: Gerätegruppe
`--offline_days`: Offline-Tage
**Beispiel:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operationen:**
`view` kann durch `enable`, `disable`, `delete` oder `assign` ersetzt werden.
**Beispiel (Gerät zuweisen):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Adressbuchverwaltung (`ab.py`)
**Hilfe anzeigen:**
./ab.py -h
**Freigegebene Adressbücher anzeigen:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Persönliche Adressbuch-GUID abrufen:**
./ab.py --url <url> --token <token> get-personal-ab
**Ein freigegebenes Adressbuch hinzufügen:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Ein freigegebenes Adressbuch aktualisieren oder löschen:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Peers in einem Adressbuch anzeigen:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Peer hinzufügen, aktualisieren oder löschen:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Tag-Verwaltung:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Zugriffsregelverwaltung:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Beispiel (Lesezugriff für Benutzer „mike“ hinzufügen):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Strategieverwaltung (`strategies.py`)
**Hilfe anzeigen:**
`./strategies.py -h`
**Alle Strategien auflisten:**
`./strategies.py --url <url> --token <token> list`
**Spezifische Strategie anzeigen:**
```bash
# Nach Name
./strategies.py --url <url> --token <token> view --name "Default"
# Nach GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Strategie aktivieren oder deaktivieren:**
```bash
./strategies.py --url <url> --token <token> enable --name "StrategieName"
./strategies.py --url <url> --token <token> disable --name "StrategieName"
```
**Strategie Geräten, Benutzern oder Gerätegruppen zuweisen:**
```bash
# Geräten zuweisen (nach Geräte-ID)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Benutzern zuweisen (nach Benutzername)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Gerätegruppen zuweisen (nach Gruppenname)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Gemischte Zuweisung
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Strategie-Zuweisung aufheben:**
```bash
# Von Geräten aufheben
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Von Benutzern aufheben
./strategies.py --url <url> --token <token> unassign --users "admin"
# Von Gerätegruppen aufheben
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Hinweise:**
- Das Skript unterstützt sowohl Namen als auch GUIDs für Benutzer und Gerätegruppen
- Geräte-IDs werden automatisch in GUIDs konvertiert
- Alle assign/unassign-Operationen können mehrere Ziele gleichzeitig bearbeiten
**Berechtigungsanforderungen:**
- `list/view/enable/disable/assign/unassign` Befehle benötigen **Strategie-Berechtigung**
- `--peers` benötigt **Geräte-Berechtigung:r** (für ID zu GUID Lookup)
- `--users` benötigt **Benutzer-Berechtigung:r** (für Benutzername zu GUID Lookup)
- `--device-groups` benötigt **Gerätegruppen-Berechtigung:r** (für Gruppenname zu GUID Lookup)
---
#### Prüfprotokolle (`audits.py`)
**Hilfe anzeigen:**
./audits.py -h
**Verbindungsprotokolle anzeigen:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Dateiübertragungsprotokolle anzeigen:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Alarmprotokolle anzeigen:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Konsolenprotokolle anzeigen:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filter:**
`--remote`: Peer-ID (für Verbindungs- oder Dateiübertragungsprotokolle)
`--conn-type`: 0=Remote Desktop, 1=Dateiübertragung, 2=Portweiterleitung, 3=Kamera anzeigen, 4=Terminal
`--device`: Geräte-ID (für Alarmprotokolle)
`--operator`: Benutzername des Operators (für Konsolenprotokolle)
`--created-at`: Zeitfilter, z. B. "2025-09-16 14:15:57"
`--days-ago`: Filtert Datensätze, die neuer als die angegebene Anzahl von Tagen sind
`--page-size` / `--current`: Seitengröße / Aktuelle Seite
**Beispiel:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
Die Befehlszeile unter Windows hat standardmäßig keine Ausgabe. Um die Ausgabe zu erhalten, führen Sie bitte `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` oder `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String` aus, siehe [hier](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Suche nach einem Gerät
1. Gehen Sie zu Geräte.

View File

@ -88,19 +88,415 @@ Gmail in this example
7. Enter your Gmail account i.e. `myrustdeskserver@gmail.com` in `From`.
8. Click `Check` to save.
## Assign Device Users/Groups/Strategies/DeviceGroup to Devices
The User is the RustDesk User logged in on the device or assigned to the device by clicking `Edit` next to the device, click in the `User` box and drop-down to select your user, this will auto assign the group based on the group the user as been assigned to.
## Assign Device Users/Strategies/Device Groups to Devices via Web Console
This can also be done via the API at command line on deployment or later by calling the RustDesk executable followed by `--assign --token <generatedtoken> --user_name <username>`. You need to go to `Settings → Tokens → Create` and create a token with Device permissions first to do this. An example of this on windows would be `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <newuser>`.
The User is the RustDesk User logged in on the device or assigned to the device by clicking **Edit** next to the device, click in the **User** box and drop-down to select your user.
You can also batch assign devices to a user by clicking **More → Assign Devices** in the **User List**.
You can also assign strategy in this way, e.g. `--assign --token <generatedtoken> --strategy_name <strategyname>`.
To add a device to a device group, you can click **Edit** next to the device in the **Device List** and change the **Group**, or go to the **Device Groups** list, click on a device group name, and adjust the devices within that group.
You can also assign address book in this way, e.g. `--assign --token <generatedtoken> --address_book_name <addressbookname>` or `--assign --token <generatedtoken> --address_book_name <addressbookname> --address_book_tag <addressbooktag> --address_book_alias <alias>`. `--address_book_alias` requires RustDesk server Pro >=1.5.8 and client >=1.4.1.
To assign a strategy to a device, hover over the right side of the **Strategy** list and click **Edit Devices**, **Edit Users**, or **Edit Device Groups** in the menu to add the corresponding devices, user devices, or device group devices to the selected strategy.
You can also assign device group name in this way, e.g. `--assign --token <generatedtoken> --device_group_name <devicegroupname>`.
---
## API Token
You must first go to **Settings → Tokens → Create** and create a token with the required permissions: **Device, Audit Log, User, Group, Strategy, Address Book**.
Once created, you can use these tokens via **command line** or **Python CLI** to perform actions with the corresponding permissions.
### Assign via Token from Command Line
You can also perform assignments using the RustDesk executable with the `--assign` parameter.
This allows assigning users, strategies, address books, or device groups to a device directly from the command line.
**Example:**
```bash
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
```
Supported Parameters
| Parameter | Description | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | --------------------------------------- | ------------------- | --------------- | ------------------- |
| `--user_name <username>` | Assign a user to the device | | |
| `--strategy_name <strategyname>` | Assign a strategy to the device | | |
| `--address_book_name <addressbookname>` | Assign device to an address book | | |
| `--address_book_tag <addressbooktag>` | Assign with address book tag | | |
| `--address_book_alias <alias>` | Assign with address book alias | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Set password for the address book entry | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Set note for the address book entry | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Assign device to a device group | | |
| `--note <note>` | Add note to the device | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Set the device username | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Set the device name | 1.6.6 | 1.4.3 |
The command line on Windows does not have output by default. To get output, please run like this, `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` or `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, see [here](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Python CLI Management Tools
#### Users Management (`users.py`)
**Show help:**
`./users.py -h`
**View users:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filters:**
- `--name`: username (fuzzy search)
- `--group_name`: user group (exact match)
**Example:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Basic operations:**
- **Disable user:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Enable user:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Delete user:**
`./users.py --url <url> --token <token> delete --name testuser`
**User creation and invitation:**
- **Create new user:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]`
Required: `--name`, `--password`, `--group_name`
Optional: `--email`, `--note`
- **Invite user by email:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "note"]`
Required: `--email`, `--name`, `--group_name`
Optional: `--note`
**2FA and security operations:**
- **Enable 2FA enforcement:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Required: `--web-console-url`
- **Disable 2FA enforcement:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Optional: `--web-console-url`
- **Reset 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Disable email verification:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Force logout:**
`./users.py --url <url> --token <token> force-logout --name username`
**Notes:**
- When operating on multiple users (matched by filters), you will be prompted for confirmation
- If no users match the filter, it will display "Found 0 users"
---
#### User Groups Management (`user_group.py`)
**Show help:**
`./user_group.py -h`
**View user groups:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Example:**
`./user_group.py --url https://example.com --token <token> view --name "Sales Team"`
**Group operations:**
- **Create user group:**
`./user_group.py --url <url> --token <token> add --name "GroupName" [--note "description"] [--accessed-from '<json>'] [--access-to '<json>']`
Example with access control:
`./user_group.py --url <url> --token <token> add --name "Engineering" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"DevServers"}]'`
- **Update user group:**
`./user_group.py --url <url> --token <token> update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Delete user group:**
`./user_group.py --url <url> --token <token> delete --name "GroupName"`
Supports comma-separated names: `--name "Group1,Group2,Group3"`
**User management in groups:**
- **View users in group:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filters:
- `--name`: group name (exact match, optional)
- `--user-name`: username (fuzzy search, optional)
Example:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Add users to group:**
`./user_group.py --url <url> --token <token> add-users --name "GroupName" --users "user1,user2,user3"`
**Access control parameters:**
- `--accessed-from`: JSON array defining who can access this user group
- Type 0 = User Group (e.g., `[{"type":0,"name":"Admins"}]`)
- Type 2 = User (e.g., `[{"type":2,"name":"john"}]`)
- `--access-to`: JSON array defining what this user group can access
- Type 0 = User Group (e.g., `[{"type":0,"name":"Support"}]`)
- Type 1 = Device Group (e.g., `[{"type":1,"name":"Servers"}]`)
**Permission requirements:**
- `view/add/update/delete/add-users` commands require **User Group Permission**
- `view-users` command requires **User Permission**
---
#### Device Groups Management (`device_group.py`)
**Show help:**
`./device_group.py -h`
**View device groups:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Example:**
`./device_group.py --url https://example.com --token <token> view`
**Group operations:**
- **Create device group:**
`./device_group.py --url <url> --token <token> add --name "GroupName" [--note "description"] [--accessed-from '<json>']`
Example:
`./device_group.py --url <url> --token <token> add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Update device group:**
`./device_group.py --url <url> --token <token> update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '<json>']`
- **Delete device group:**
`./device_group.py --url <url> --token <token> delete --name "GroupName"`
Supports comma-separated names: `--name "Group1,Group2,Group3"`
**Device management in groups:**
- **View devices in group:**
`./device_group.py --url <url> --token <token> view-devices [filters]`
Available filters:
- `--name`: device group name (exact match)
- `--id`: device ID (fuzzy search)
- `--device-name`: device name (fuzzy search)
- `--user-name`: user name/owner (fuzzy search)
- `--device-username`: logged-in username on device (fuzzy search)
Examples:
```bash
# View all devices in a group
./device_group.py --url <url> --token <token> view-devices --name Production
# Search by device name
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combine filters
./device_group.py --url <url> --token <token> view-devices --name Production --user-name john
```
- **Add devices to group:**
`./device_group.py --url <url> --token <token> add-devices --name "GroupName" --ids "deviceid1,deviceid2"`
- **Remove devices from group:**
`./device_group.py --url <url> --token <token> remove-devices --name "GroupName" --ids "deviceid1,deviceid2"`
**Access control parameter:**
- `--accessed-from`: JSON array defining who can access this device group
- Type 0 = User Group (e.g., `[{"type":0,"name":"Engineers"}]`)
- Type 2 = User (e.g., `[{"type":2,"name":"admin"}]`)
**Permission requirements:**
- `view/add/update/delete/add-devices/remove-devices` commands require **Device Group Permission**
- `view-devices` command requires **Device Permission**
---
#### Devices Management (`devices.py`)
**Show help:**
`./devices.py -h`
**View devices:**
`./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]`
**Filters:**
`--id`: device ID
`--device_name`: device name
`--user_name`: assigned user
`--group_name`: user group
`--device_group_name`: device group
`--offline_days`: days offline
**Example:**
`./devices.py --url https://example.com --token <token> view --user_name mike`
**Operations:**
view can be replaced with `enable`, `disable`, `delete`, or `assign`.
**Example (assign device):**
`./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike`
---
#### Address Book Management (`ab.py`)
**Show help:**
`./ab.py -h`
**View shared address books:**
`./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]`
**Get personal address book GUID:**
`./ab.py --url <url> --token <token> get-personal-ab`
**Add a shared address book:**
`./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]`
**Update or delete a shared address book:**
`./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]`
`./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>`
**View peers in an address book:**
`./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]`
**Add, update, or delete a peer:**
`./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]`
`./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]`
`./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>`
**Tags management:**
`./ab.py --url <url> --token <token> view-tag --ab-guid <guid>`
`./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]`
`./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000`
`./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>`
**Access rules management:**
`./ab.py --url <url> --token <token> view-rule --ab-guid <guid>`
`./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full`
`./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw`
`./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>`
**Example (add read-only rule for user "mike"):**
`./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro`
---
#### Strategies Management (`strategies.py`)
**Show help:**
`./strategies.py -h`
**List all strategies:**
`./strategies.py --url <url> --token <token> list`
**View a specific strategy:**
```bash
# By name
./strategies.py --url <url> --token <token> view --name "Default"
# By GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Enable or disable a strategy:**
```bash
./strategies.py --url <url> --token <token> enable --name "StrategyName"
./strategies.py --url <url> --token <token> disable --name "StrategyName"
```
**Assign strategy to devices, users, or device groups:**
```bash
# Assign to devices (by device ID)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Assign to users (by username)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Assign to device groups (by group name)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Mixed assignment
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Unassign strategy:**
```bash
# Unassign from devices
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Unassign from users
./strategies.py --url <url> --token <token> unassign --users "admin"
# Unassign from device groups
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Notes:**
- The script supports both names and GUIDs for users and device groups
- Device IDs are automatically converted to GUIDs
- All assign/unassign operations can target multiple resources at once
**Permission requirements:**
- `list/view/enable/disable/assign/unassign` commands require **Strategy Permission**
- `--peers` requires **Device Permission:r** (for ID to GUID lookup)
- `--users` requires **User Permission:r** (for username to GUID lookup)
- `--device-groups` requires **Device Group Permission:r** (for name to GUID lookup)
---
#### Audits (`audits.py`)
**Show help:**
`./audits.py -h`
**View connection audits:**
`./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**View file audits:**
`./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**View alarm audits:**
`./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**View console audits:**
`./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**Filters:**
`--remote`: Peer ID (for connection or file audits)
`--conn-type`: 0=Remote Desktop, 1=File Transfer, 2=Port Transfer, 3=View Camera, 4=Terminal
`--device`: Device ID (for alarm audits)
`--operator`: Operator username (for console audits)
`--created-at`: Local time filter, e.g., "2025-09-16 14:15:57"
`--days-ago`: Filter records newer than given days ago
`--page-size` / `--current`: Pagination
**Example:**
`./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7`
## Searching for a device
1. Go to Devices.
2. In the Device Name Search Field type in the name and click `Query` or hit <kbd>Enter</kbd>.

View File

@ -88,18 +88,443 @@ Gmail en este ejemplo
7. Ingrese su cuenta de Gmail, es decir, `myrustdeskserver@gmail.com` en `De`.
8. Haga clic en `Verificar` para guardar.
## Asignar Usuarios/Grupos/Estrategias/GrupoDispositivo de Dispositivo a Dispositivos
El Usuario es el Usuario de RustDesk con sesión iniciada en el dispositivo o asignado al dispositivo haciendo clic en `Editar` junto al dispositivo, haga clic en el cuadro `Usuario` y despliegue para seleccionar su usuario, esto asignará automáticamente el grupo basado en el grupo al que ha sido asignado el usuario.
## Asignar Usuarios/Estrategias/Grupos de Dispositivos a Dispositivos a través de la Consola Web
Esto también se puede hacer a través de la API en la línea de comandos durante la implementación o posteriormente llamando al ejecutable de RustDesk seguido de `--assign --token <token generado> --user_name <nombre de usuario>`. Necesita ir a `Configuración → Tokens → Crear` y crear un token con permisos de Dispositivo primero para hacer esto. Un ejemplo de esto en Windows sería `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <token generado> --user_name <nuevo usuario>`.
El Usuario es el usuario de RustDesk que ha iniciado sesión en el dispositivo o que se asigna al dispositivo haciendo clic en **Editar** junto al dispositivo, haciendo clic en el cuadro **Usuario** y seleccionando su usuario en el menú desplegable.
También puede asignar dispositivos en lote a un usuario haciendo clic en **Más → Asignar Dispositivos** en la **Lista de Usuarios**.
También puede asignar estrategia de esta manera, por ejemplo, `--assign --token <token generado> --strategy_name <nombre de estrategia>`.
Para agregar un dispositivo a un grupo de dispositivos, puede hacer clic en **Editar** junto al dispositivo en la **Lista de Dispositivos** y cambiar el **Grupo**, o ir a la lista de **Grupos de Dispositivos**, hacer clic en el nombre de un grupo de dispositivos y ajustar los dispositivos dentro de ese grupo.
También puede asignar libreta de direcciones de esta manera, por ejemplo, `--assign --token <token generado> --address_book_name <nombre de libreta de direcciones>` o `--assign --token <token generado> --address_book_name <nombre de libreta de direcciones> --address_book_tag <etiqueta de libreta de direcciones> --address_book_alias <alias>`. `--address_book_alias` requiere RustDesk Server Pro ≥1.5.8 y cliente ≥1.4.1.
Para asignar una estrategia a un dispositivo, pase el cursor sobre el lado derecho de la lista **Estrategia** y haga clic en **Editar Dispositivos**, **Editar Usuarios** o **Editar Grupos de Dispositivos** en el menú para agregar los dispositivos correspondientes, los dispositivos de usuario o los dispositivos del grupo de dispositivos a la estrategia seleccionada.
También puede asignar nombre de grupo de dispositivo de esta manera, por ejemplo, `--assign --token <token generado> --device_group_name <nombre de grupo de dispositivo>`.
---
La línea de comandos en Windows no tiene salida por defecto. Para obtener salida, ejecute así, `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` o `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, vea [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Token de API
Primero debe ir a **Configuración → Tokens → Crear** y crear un token con los permisos requeridos: **Dispositivo, Registro de Auditoría, Usuario, Grupo, Estrategia, Libreta de Direcciones**.
Una vez creado, puede usar estos tokens a través de **línea de comandos** o **Python CLI** para realizar acciones con los permisos correspondientes.
### Asignar mediante Token desde la Línea de Comandos
También puede realizar asignaciones usando el ejecutable de RustDesk con el parámetro `--assign`.
Esto permite asignar usuarios, estrategias, libretas de direcciones o grupos de dispositivos a un dispositivo directamente desde la línea de comandos.
**Ejemplo:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Parámetros Soportados
| Parámetro | Descripción | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | --------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Asignar un usuario al dispositivo | | |
| `--strategy_name <strategyname>` | Asignar una estrategia al dispositivo | | |
| `--address_book_name <addressbookname>` | Asignar dispositivo a una libreta | | |
| `--address_book_tag <addressbooktag>` | Asignar con etiqueta de libreta | | |
| `--address_book_alias <alias>` | Asignar con alias de libreta | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Establecer contraseña para la entrada | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Establecer nota para la entrada | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Asignar dispositivo a un grupo | | |
| `--note <note>` | Agregar nota al dispositivo | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Establecer el nombre de usuario del dispositivo | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Establecer el nombre del dispositivo | 1.6.6 | 1.4.3 |
La línea de comandos en Windows no muestra salida por defecto. Para obtener salida, ejecute así:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
ver [aquí](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Herramientas de Gestión Python CLI
#### Gestión de Usuarios (`users.py`)
**Mostrar ayuda:**
`./users.py -h`
**Ver usuarios:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtros:**
- `--name`: nombre de usuario (búsqueda difusa)
- `--group_name`: grupo de usuarios (coincidencia exacta)
**Ejemplo:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Operaciones básicas:**
- **Deshabilitar usuario:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Habilitar usuario:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Eliminar usuario:**
`./users.py --url <url> --token <token> delete --name testuser`
**Creación e invitación de usuarios:**
- **Crear nuevo usuario:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
Requerido: `--name`, `--password`, `--group_name`
Opcional: `--email`, `--note`
- **Invitar usuario por correo:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
Requerido: `--email`, `--name`, `--group_name`
Opcional: `--note`
**Operaciones 2FA y seguridad:**
- **Habilitar aplicación 2FA:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Requerido: `--web-console-url`
- **Deshabilitar aplicación 2FA:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Opcional: `--web-console-url`
- **Restablecer 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Deshabilitar verificación por correo:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Cerrar sesión forzada:**
`./users.py --url <url> --token <token> force-logout --name username`
**Notas:**
- Al operar sobre múltiples usuarios (coincidentes con filtros), se solicitará confirmación
- Si no hay usuarios coincidentes, se mostrará "Found 0 users"
---
#### Gestión de Grupos de Usuarios (`user_group.py`)
**Mostrar ayuda:**
`./user_group.py -h`
**Ver grupos de usuarios:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Ejemplo:**
`./user_group.py --url https://example.com --token <token> view --name "Equipo Ventas"`
**Operaciones de grupo:**
- **Crear grupo de usuarios:**
`./user_group.py --url <url> --token <token> add --name "NombreGrupo" [--note "descripción"] [--accessed-from '<json>'] [--access-to '<json>']`
Ejemplo con control de acceso:
`./user_group.py --url <url> --token <token> add --name "Ingeniería" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'`
- **Actualizar grupo de usuarios:**
`./user_group.py --url <url> --token <token> update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Eliminar grupo de usuarios:**
`./user_group.py --url <url> --token <token> delete --name "NombreGrupo"`
Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"`
**Gestión de usuarios en grupos:**
- **Ver usuarios en grupo:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtros:
- `--name`: nombre del grupo (coincidencia exacta, opcional)
- `--user-name`: nombre de usuario (búsqueda difusa, opcional)
Ejemplo:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Agregar usuarios al grupo:**
`./user_group.py --url <url> --token <token> add-users --name "NombreGrupo" --users "user1,user2,user3"`
**Parámetros de control de acceso:**
- `--accessed-from`: array JSON que define quién puede acceder a este grupo de usuarios
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Usuario (ej. `[{"type":2,"name":"john"}]`)
- `--access-to`: array JSON que define a qué puede acceder este grupo de usuarios
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Soporte"}]`)
- Type 1 = Grupo de dispositivos (ej. `[{"type":1,"name":"Servidores"}]`)
**Nota:** Use comillas simples alrededor de los arrays JSON para evitar problemas de análisis del shell.
**Requisitos de permisos:**
- Los comandos `view/add/update/delete/add-users` requieren **Permiso de Grupo de Usuarios**
- El comando `view-users` requiere **Permiso de Usuario**
---
#### Gestión de Grupos de Dispositivos (`device_group.py`)
**Mostrar ayuda:**
`./device_group.py -h`
**Ver grupos de dispositivos:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Ejemplo:**
`./device_group.py --url https://example.com --token <token> view`
**Operaciones de grupo:**
- **Crear grupo de dispositivos:**
`./device_group.py --url <url> --token <token> add --name "NombreGrupo" [--note "descripción"] [--accessed-from '<json>']`
Ejemplo:
`./device_group.py --url <url> --token <token> add --name "Producción" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Actualizar grupo de dispositivos:**
`./device_group.py --url <url> --token <token> update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '<json>']`
- **Eliminar grupo de dispositivos:**
`./device_group.py --url <url> --token <token> delete --name "NombreGrupo"`
Admite nombres separados por comas: `--name "Grupo1,Grupo2,Grupo3"`
**Gestión de dispositivos en grupos:**
- **Ver dispositivos en grupo:**
`./device_group.py --url <url> --token <token> view-devices [filtros]`
Filtros disponibles:
- `--name`: nombre del grupo de dispositivos (coincidencia exacta)
- `--id`: ID del dispositivo (búsqueda difusa)
- `--device-name`: nombre del dispositivo (búsqueda difusa)
- `--user-name`: nombre de usuario/propietario (búsqueda difusa)
- `--device-username`: nombre de usuario conectado en el dispositivo (búsqueda difusa)
Ejemplos:
```bash
# Ver todos los dispositivos en un grupo
./device_group.py --url <url> --token <token> view-devices --name Producción
# Buscar por nombre de dispositivo
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combinar filtros
./device_group.py --url <url> --token <token> view-devices --name Producción --user-name john
```
- **Agregar dispositivos al grupo:**
`./device_group.py --url <url> --token <token> add-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"`
- **Quitar dispositivos del grupo:**
`./device_group.py --url <url> --token <token> remove-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"`
**Parámetro de control de acceso:**
- `--accessed-from`: array JSON que define quién puede acceder a este grupo de dispositivos
- Type 0 = Grupo de usuarios (ej. `[{"type":0,"name":"Ingenieros"}]`)
- Type 2 = Usuario (ej. `[{"type":2,"name":"admin"}]`)
**Requisitos de permisos:**
- Los comandos `view/add/update/delete/add-devices/remove-devices` requieren **Permiso de Grupo de Dispositivos**
- El comando `view-devices` requiere **Permiso de Dispositivo**
---
#### Gestión de Dispositivos (`devices.py`)
**Mostrar ayuda:**
./devices.py -h
**Ver dispositivos:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtros:**
--id: ID del dispositivo
--device_name: nombre del dispositivo
--user_name: usuario asignado
--group_name: grupo de usuarios
--device_group_name: grupo de dispositivos
--offline_days: días sin conexión
**Ejemplo:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operaciones:**
`view` puede reemplazarse por `enable`, `disable`, `delete`, o `assign`.
**Ejemplo (asignar dispositivo):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Gestión de Libretas de Direcciones (`ab.py`)
**Mostrar ayuda:**
./ab.py -h
**Ver libretas de direcciones compartidas:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Obtener GUID de libreta personal:**
./ab.py --url <url> --token <token> get-personal-ab
**Agregar una libreta compartida:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Actualizar o eliminar una libreta compartida:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Ver peers en una libreta:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Agregar, actualizar o eliminar un peer:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Gestión de etiquetas:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Gestión de reglas de acceso:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Ejemplo (agregar regla de solo lectura para el usuario "mike"):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Gestión de Estrategias (`strategies.py`)
**Mostrar ayuda:**
`./strategies.py -h`
**Listar todas las estrategias:**
`./strategies.py --url <url> --token <token> list`
**Ver una estrategia específica:**
```bash
# Por nombre
./strategies.py --url <url> --token <token> view --name "Default"
# Por GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Habilitar o deshabilitar una estrategia:**
```bash
./strategies.py --url <url> --token <token> enable --name "NombreEstrategia"
./strategies.py --url <url> --token <token> disable --name "NombreEstrategia"
```
**Asignar estrategia a dispositivos, usuarios o grupos de dispositivos:**
```bash
# Asignar a dispositivos (por ID de dispositivo)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Asignar a usuarios (por nombre de usuario)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Asignar a grupos de dispositivos (por nombre de grupo)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Asignación mixta
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Desasignar estrategia:**
```bash
# Desasignar de dispositivos
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Desasignar de usuarios
./strategies.py --url <url> --token <token> unassign --users "admin"
# Desasignar de grupos de dispositivos
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Notas:**
- El script admite nombres y GUIDs para usuarios y grupos de dispositivos
- Los IDs de dispositivos se convierten automáticamente en GUIDs
- Todas las operaciones assign/unassign pueden trabajar con múltiples objetivos a la vez
**Requisitos de permisos:**
- Los comandos `list/view/enable/disable/assign/unassign` requieren **Permiso de Estrategia**
- `--peers` requiere **Permiso de Dispositivo:r** (para búsqueda de ID a GUID)
- `--users` requiere **Permiso de Usuario:r** (para búsqueda de nombre de usuario a GUID)
- `--device-groups` requiere **Permiso de Grupo de Dispositivos:r** (para búsqueda de nombre de grupo a GUID)
---
#### Auditorías (`audits.py`)
**Mostrar ayuda:**
./audits.py -h
**Ver auditorías de conexión:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Ver auditorías de archivos:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Ver auditorías de alarmas:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Ver auditorías de consola:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtros:**
--remote: ID del peer (para auditorías de conexión o archivos)
--conn-type: 0=Escritorio Remoto, 1=Transferencia de Archivos, 2=Transferencia de Puertos, 3=Ver Cámara, 4=Terminal
--device: ID del dispositivo (para auditorías de alarmas)
--operator: nombre de usuario del operador (para auditorías de consola)
--created-at: filtro de hora local, por ejemplo, "2025-09-16 14:15:57"
--days-ago: filtrar registros más recientes que los días indicados
--page-size / --current: paginación
**Ejemplo:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Buscar un dispositivo
1. Vaya a Dispositivos.

View File

@ -88,18 +88,442 @@ Gmail dans cet exemple
7. Entrez votre compte Gmail c'est-à-dire `myrustdeskserver@gmail.com` dans `De`.
8. Cliquez `Vérifier` pour sauvegarder.
## Assigner des Utilisateurs/Groupes/Stratégies/GroupeAppareil aux Appareils
L'Utilisateur est l'Utilisateur RustDesk connecté sur l'appareil ou assigné à l'appareil en cliquant `Modifier` à côté de l'appareil, cliquez dans la boîte `Utilisateur` et déroulez pour sélectionner votre utilisateur, cela assignera automatiquement le groupe basé sur le groupe auquel l'utilisateur a été assigné.
## Attribution des utilisateurs/stratégies/groupes de périphériques aux périphériques via la Console Web
Ceci peut également être fait via l'API en ligne de commande lors du déploiement ou plus tard en appelant l'exécutable RustDesk suivi de `--assign --token <token généré> --user_name <nom d'utilisateur>`. Vous devez aller dans `Paramètres → Tokens → Créer` et créer un token avec les permissions Appareil d'abord pour faire ceci. Un exemple de ceci sur windows serait `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <token généré> --user_name <nouvel utilisateur>`.
LUtilisateur est lutilisateur RustDesk connecté sur le périphérique ou attribué au périphérique en cliquant sur **Modifier** à côté du périphérique, en cliquant dans la case **Utilisateur** et en sélectionnant votre utilisateur dans le menu déroulant.
Vous pouvez également attribuer des périphériques en masse à un utilisateur en cliquant sur **Plus → Attribuer des périphériques** dans la **Liste des utilisateurs**.
Vous pouvez également assigner une stratégie de cette façon, par exemple `--assign --token <token généré> --strategy_name <nom de stratégie>`.
Pour ajouter un périphérique à un groupe de périphériques, vous pouvez cliquer sur **Modifier** à côté du périphérique dans la **Liste des périphériques** et changer le **Groupe**, ou aller dans la liste des **Groupes de périphériques**, cliquer sur le nom dun groupe de périphériques et ajuster les périphériques dans ce groupe.
Vous pouvez également assigner un carnet d'adresses de cette façon, par exemple `--assign --token <token généré> --address_book_name <nom du carnet d'adresses>` ou `--assign --token <token généré> --address_book_name <nom du carnet d'adresses> --address_book_tag <tag du carnet d'adresses> --address_book_alias <alias>`. `--address_book_alias` nécessite RustDesk server Pro ≥1.5.8 et client ≥1.4.1.
Pour attribuer une stratégie à un périphérique, survolez le côté droit de la liste **Stratégie** et cliquez sur **Modifier les périphériques**, **Modifier les utilisateurs** ou **Modifier les groupes de périphériques** dans le menu pour ajouter les périphériques correspondants, les périphériques des utilisateurs ou les périphériques du groupe de périphériques à la stratégie sélectionnée.
Vous pouvez également assigner un nom de groupe d'appareils de cette façon, par exemple `--assign --token <token généré> --device_group_name <nom du groupe d'appareils>`.
---
La ligne de commande sur Windows n'a pas de sortie par défaut. Pour obtenir une sortie, veuillez exécuter comme ceci, `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` ou `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Jeton API
Vous devez dabord aller dans **Paramètres → Jetons → Créer** et créer un jeton avec les permissions requises : **Périphérique, Journal dAudit, Utilisateur, Groupe, Stratégie, Carnet dAdresses**.
Une fois créé, vous pouvez utiliser ces jetons via **ligne de commande** ou **Python CLI** pour effectuer des actions avec les permissions correspondantes.
### Attribution via Jeton depuis la Ligne de Commande
Vous pouvez également effectuer des attributions en utilisant lexécutable RustDesk avec le paramètre `--assign`.
Cela permet dassigner des utilisateurs, des stratégies, des carnets dadresses ou des groupes de périphériques à un périphérique directement depuis la ligne de commande.
**Exemple :**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Paramètres pris en charge
| Paramètre | Description | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Assigner un utilisateur au périphérique | | |
| `--strategy_name <strategyname>` | Assigner une stratégie au périphérique | | |
| `--address_book_name <addressbookname>` | Assigner le périphérique à un carnet | | |
| `--address_book_tag <addressbooktag>` | Assigner avec un tag du carnet | | |
| `--address_book_alias <alias>` | Assigner avec un alias de carnet | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Définir le mot de passe de lentrée | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Définir une note pour lentrée | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Assigner le périphérique à un groupe | | |
| `--note <note>` | Ajouter une note au périphérique | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Définir le nom dutilisateur du périphérique | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Définir le nom du périphérique | 1.6.6 | 1.4.3 |
La ligne de commande sous Windows ne produit pas de sortie par défaut. Pour obtenir une sortie, exécutez :
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Outils de Gestion Python CLI
#### Gestion des Utilisateurs (`users.py`)
**Afficher l'aide :**
`./users.py -h`
**Voir les utilisateurs :**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtres :**
- `--name` : nom d'utilisateur (recherche floue)
- `--group_name` : groupe d'utilisateurs (correspondance exacte)
**Exemple :**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Opérations de base :**
- **Désactiver un utilisateur :**
`./users.py --url <url> --token <token> disable --name testuser`
- **Activer un utilisateur :**
`./users.py --url <url> --token <token> enable --name testuser`
- **Supprimer un utilisateur :**
`./users.py --url <url> --token <token> delete --name testuser`
**Création et invitation d'utilisateurs :**
- **Créer un nouvel utilisateur :**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "note"]`
Requis : `--name`, `--password`, `--group_name`
Optionnel : `--email`, `--note`
- **Inviter un utilisateur par e-mail :**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "note"]`
Requis : `--email`, `--name`, `--group_name`
Optionnel : `--note`
**Opérations 2FA et sécurité :**
- **Activer l'application 2FA :**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Requis : `--web-console-url`
- **Désactiver l'application 2FA :**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Optionnel : `--web-console-url`
- **Réinitialiser 2FA :**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Désactiver la vérification par e-mail :**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Déconnexion forcée :**
`./users.py --url <url> --token <token> force-logout --name username`
**Remarques :**
- Lors d'opérations sur plusieurs utilisateurs (correspondants aux filtres), une confirmation sera demandée
- Si aucun utilisateur ne correspond, "Found 0 users" sera affiché
---
#### Gestion des Groupes d'Utilisateurs (`user_group.py`)
**Afficher l'aide :**
`./user_group.py -h`
**Voir les groupes d'utilisateurs :**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemple :**
`./user_group.py --url https://example.com --token <token> view --name "Équipe Ventes"`
**Opérations sur les groupes :**
- **Créer un groupe d'utilisateurs :**
`./user_group.py --url <url> --token <token> add --name "NomGroupe" [--note "description"] [--accessed-from '<json>'] [--access-to '<json>']`
Exemple avec contrôle d'accès :
`./user_group.py --url <url> --token <token> add --name "Ingénierie" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"Serveurs Dev"}]'`
- **Mettre à jour un groupe d'utilisateurs :**
`./user_group.py --url <url> --token <token> update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Supprimer un groupe d'utilisateurs :**
`./user_group.py --url <url> --token <token> delete --name "NomGroupe"`
Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"`
**Gestion des utilisateurs dans les groupes :**
- **Voir les utilisateurs dans un groupe :**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtres :
- `--name` : nom du groupe (correspondance exacte, optionnel)
- `--user-name` : nom d'utilisateur (recherche floue, optionnel)
Exemple :
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Ajouter des utilisateurs à un groupe :**
`./user_group.py --url <url> --token <token> add-users --name "NomGroupe" --users "user1,user2,user3"`
**Paramètres de contrôle d'accès :**
- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe d'utilisateurs
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Utilisateur (ex. `[{"type":2,"name":"john"}]`)
- `--access-to` : tableau JSON définissant ce à quoi ce groupe d'utilisateurs peut accéder
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Support"}]`)
- Type 1 = Groupe de périphériques (ex. `[{"type":1,"name":"Serveurs"}]`)
**Remarque :** Utilisez des guillemets simples autour des tableaux JSON pour éviter les problèmes d'analyse du shell.
**Exigences de permissions :**
- Les commandes `view/add/update/delete/add-users` nécessitent **Permission de Groupe d'Utilisateurs**
- La commande `view-users` nécessite **Permission d'Utilisateur**
---
#### Gestion des Groupes de Périphériques (`device_group.py`)
**Afficher l'aide :**
`./device_group.py -h`
**Voir les groupes de périphériques :**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemple :**
`./device_group.py --url https://example.com --token <token> view`
**Opérations sur les groupes :**
- **Créer un groupe de périphériques :**
`./device_group.py --url <url> --token <token> add --name "NomGroupe" [--note "description"] [--accessed-from '<json>']`
Exemple :
`./device_group.py --url <url> --token <token> add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Mettre à jour un groupe de périphériques :**
`./device_group.py --url <url> --token <token> update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '<json>']`
- **Supprimer un groupe de périphériques :**
`./device_group.py --url <url> --token <token> delete --name "NomGroupe"`
Prend en charge les noms séparés par des virgules : `--name "Groupe1,Groupe2,Groupe3"`
**Gestion des périphériques dans les groupes :**
- **Voir les périphériques dans un groupe :**
`./device_group.py --url <url> --token <token> view-devices [filtres]`
Filtres disponibles :
- `--name` : nom du groupe de périphériques (correspondance exacte)
- `--id` : ID du périphérique (recherche floue)
- `--device-name` : nom du périphérique (recherche floue)
- `--user-name` : nom d'utilisateur/propriétaire (recherche floue)
- `--device-username` : nom d'utilisateur connecté sur le périphérique (recherche floue)
Exemples :
```bash
# Voir tous les périphériques dans un groupe
./device_group.py --url <url> --token <token> view-devices --name Production
# Rechercher par nom de périphérique
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combiner les filtres
./device_group.py --url <url> --token <token> view-devices --name Production --user-name john
```
- **Ajouter des périphériques à un groupe :**
`./device_group.py --url <url> --token <token> add-devices --name "NomGroupe" --ids "deviceid1,deviceid2"`
- **Retirer des périphériques d'un groupe :**
`./device_group.py --url <url> --token <token> remove-devices --name "NomGroupe" --ids "deviceid1,deviceid2"`
**Paramètre de contrôle d'accès :**
- `--accessed-from` : tableau JSON définissant qui peut accéder à ce groupe de périphériques
- Type 0 = Groupe d'utilisateurs (ex. `[{"type":0,"name":"Ingénieurs"}]`)
- Type 2 = Utilisateur (ex. `[{"type":2,"name":"admin"}]`)
**Exigences de permissions :**
- Les commandes `view/add/update/delete/add-devices/remove-devices` nécessitent **Permission de Groupe de Périphériques**
- La commande `view-devices` nécessite **Permission de Périphérique**
---
#### Gestion des Périphériques (`devices.py`)
**Afficher laide :**
./devices.py -h
**Voir les périphériques :**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtres :**
--id : ID du périphérique
--device_name : nom du périphérique
--user_name : utilisateur assigné
--group_name : groupe dutilisateurs
--device_group_name : groupe de périphériques
--offline_days : jours hors ligne
**Exemple :**
./devices.py --url https://example.com --token <token> view --user_name mike
**Opérations :**
`view` peut être remplacé par `enable`, `disable`, `delete`, ou `assign`.
**Exemple (assigner un périphérique) :**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Gestion du Carnet dAdresses (`ab.py`)
**Afficher laide :**
./ab.py -h
**Voir les carnets partagés :**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Obtenir le GUID du carnet personnel :**
./ab.py --url <url> --token <token> get-personal-ab
**Ajouter un carnet partagé :**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Mettre à jour ou supprimer un carnet partagé :**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Voir les pairs dans un carnet :**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Ajouter, mettre à jour ou supprimer un pair :**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Gestion des étiquettes :**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Gestion des règles daccès :**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Exemple (ajouter une règle en lecture seule pour lutilisateur "mike") :**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Gestion des Stratégies (`strategies.py`)
**Afficher l'aide :**
`./strategies.py -h`
**Lister toutes les stratégies :**
`./strategies.py --url <url> --token <token> list`
**Voir une stratégie spécifique :**
```bash
# Par nom
./strategies.py --url <url> --token <token> view --name "Default"
# Par GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Activer ou désactiver une stratégie :**
```bash
./strategies.py --url <url> --token <token> enable --name "NomStratégie"
./strategies.py --url <url> --token <token> disable --name "NomStratégie"
```
**Attribuer une stratégie aux périphériques, utilisateurs ou groupes de périphériques :**
```bash
# Attribuer aux périphériques (par ID de périphérique)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Attribuer aux utilisateurs (par nom d'utilisateur)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Attribuer aux groupes de périphériques (par nom de groupe)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Attribution mixte
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Retirer l'attribution de stratégie :**
```bash
# Retirer des périphériques
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Retirer des utilisateurs
./strategies.py --url <url> --token <token> unassign --users "admin"
# Retirer des groupes de périphériques
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Remarques :**
- Le script prend en charge les noms et les GUIDs pour les utilisateurs et les groupes de périphériques
- Les IDs de périphériques sont automatiquement convertis en GUIDs
- Toutes les opérations assign/unassign peuvent cibler plusieurs ressources à la fois
**Exigences de permissions :**
- Les commandes `list/view/enable/disable/assign/unassign` nécessitent **Permission de Stratégie**
- `--peers` nécessite **Permission de Périphérique:r** (pour la recherche d'ID vers GUID)
- `--users` nécessite **Permission d'Utilisateur:r** (pour la recherche de nom d'utilisateur vers GUID)
- `--device-groups` nécessite **Permission de Groupe de Périphériques:r** (pour la recherche de nom de groupe vers GUID)
---
#### Audits (`audits.py`)
**Afficher laide :**
./audits.py -h
**Voir les audits de connexion :**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Voir les audits de fichiers :**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Voir les audits dalarme :**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Voir les audits de console :**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtres :**
--remote : ID du peer (pour audits de connexion ou fichiers)
--conn-type : 0=Bureau à distance, 1=Transfert de fichiers, 2=Transfert de ports, 3=Vision caméra, 4=Terminal
--device : ID du périphérique (pour audits dalarme)
--operator : nom de lopérateur (pour audits de console)
--created-at : filtre de temps local, ex. "2025-09-16 14:15:57"
--days-ago : filtrer les enregistrements plus récents que le nombre de jours indiqué
--page-size / --current : pagination
**Exemple :**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Rechercher un appareil
1. Allez dans Appareils.

View File

@ -88,18 +88,447 @@ Gmail in questo esempio
7. Inserisci il tuo account Gmail cioè `myrustdeskserver@gmail.com` in `Da`.
8. Clicca `Controlla` per salvare.
## Assegnare Utenti/Gruppi/Strategie/GruppoDispositivo Dispositivo ai Dispositivi
L'Utente è l'Utente RustDesk connesso al dispositivo o assegnato al dispositivo cliccando `Modifica` accanto al dispositivo, clicca nella casella `Utente` e seleziona dal menu a tendina per selezionare il tuo utente, questo assegnerà automaticamente il gruppo basato sul gruppo a cui è stato assegnato l'utente.
## Assegnazione di Utenti/Strategie/Gruppi di Dispositivi ai Dispositivi tramite Console Web
Questo può anche essere fatto tramite API a riga di comando durante la distribuzione o successivamente chiamando l'eseguibile RustDesk seguito da `--assign --token <token generato> --user_name <nome utente>`. Devi andare su `Impostazioni → Token → Crea` e creare un token con permessi Dispositivo prima di farlo. Un esempio di questo su Windows sarebbe `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <token generato> --user_name <nuovo utente>`.
LUtente è lutente RustDesk connesso al dispositivo o assegnato al dispositivo cliccando su **Modifica** accanto al dispositivo, cliccando nella casella **Utente** e selezionando il proprio utente dal menu a discesa.
È anche possibile assegnare dispositivi in blocco a un utente cliccando su **Altro → Assegna Dispositivi** nella **Lista Utenti**.
Puoi anche assegnare strategia in questo modo, ad esempio `--assign --token <token generato> --strategy_name <nome strategia>`.
Per aggiungere un dispositivo a un gruppo di dispositivi, è possibile cliccare su **Modifica** accanto al dispositivo nella **Lista Dispositivi** e cambiare il **Gruppo**, oppure andare nella lista dei **Gruppi di Dispositivi**, cliccare sul nome di un gruppo e regolare i dispositivi in quel gruppo.
Puoi anche assegnare rubrica in questo modo, ad esempio `--assign --token <token generato> --address_book_name <nome rubrica>` o `--assign --token <token generato> --address_book_name <nome rubrica> --address_book_tag <tag rubrica> --address_book_alias <alias>`. `--address_book_alias` richiede RustDesk Server Pro ≥1.5.8 e client ≥1.4.1.
Per assegnare una strategia a un dispositivo, passare il mouse sul lato destro della lista **Strategia** e cliccare su **Modifica Dispositivi**, **Modifica Utenti** o **Modifica Gruppi di Dispositivi** nel menu per aggiungere i dispositivi corrispondenti, i dispositivi degli utenti o i dispositivi del gruppo alla strategia selezionata.
Puoi anche assegnare nome gruppo dispositivo in questo modo, ad esempio `--assign --token <token generato> --device_group_name <nome gruppo dispositivo>`.
---
La riga di comando su Windows non ha output per impostazione predefinita. Per ottenere output, esegui così, `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` o `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Token API
È necessario prima andare su **Impostazioni → Token → Crea** e creare un token con le autorizzazioni richieste: **Dispositivo, Registro Audit, Utente, Gruppo, Strategia, Rubrica**.
Una volta creato, è possibile utilizzare questi token tramite **linea di comando** o **Python CLI** per eseguire azioni con le autorizzazioni corrispondenti.
### Assegnazione tramite Token dalla Linea di Comando
È anche possibile eseguire assegnazioni utilizzando leseguibile RustDesk con il parametro `--assign`.
Questo permette di assegnare utenti, strategie, rubriche o gruppi di dispositivi a un dispositivo direttamente dalla linea di comando.
**Esempio:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Parametri supportati
| Parametro | Descrizione | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ----------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Assegna un utente al dispositivo | | |
| `--strategy_name <strategyname>` | Assegna una strategia al dispositivo | | |
| `--address_book_name <addressbookname>` | Assegna il dispositivo a una rubrica | | |
| `--address_book_tag <addressbooktag>` | Assegna con tag della rubrica | | |
| `--address_book_alias <alias>` | Assegna con alias della rubrica | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Imposta la password per la voce | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Imposta una nota per la voce | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Assegna il dispositivo a un gruppo | | |
| `--note <note>` | Aggiunge una nota al dispositivo | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Imposta il nome utente del dispositivo | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Imposta il nome del dispositivo | 1.6.6 | 1.4.3 |
La linea di comando su Windows non produce output per default. Per ottenere output, eseguire:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
vedi [qui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Strumenti di Gestione Python CLI
#### Gestione Utenti (`users.py`)
**Mostra aiuto:**
`./users.py -h`
**Visualizza utenti:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtri:**
- `--name`: nome utente (ricerca fuzzy)
- `--group_name`: gruppo utenti (corrispondenza esatta)
**Esempio:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Operazioni di base:**
- **Disabilitare utente:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Abilitare utente:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Eliminare utente:**
`./users.py --url <url> --token <token> delete --name testuser`
**Creazione e invito utenti:**
- **Creare nuovo utente:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
Richiesto: `--name`, `--password`, `--group_name`
Opzionale: `--email`, `--note`
- **Invitare utente via email:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
Richiesto: `--email`, `--name`, `--group_name`
Opzionale: `--note`
**Operazioni 2FA e sicurezza:**
- **Abilitare imposizione 2FA:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Richiesto: `--web-console-url`
- **Disabilitare imposizione 2FA:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Opzionale: `--web-console-url`
- **Reimpostare 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Disabilitare verifica email:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Disconnessione forzata:**
`./users.py --url <url> --token <token> force-logout --name username`
**Note:**
- Quando si opera su più utenti (corrispondenti ai filtri), verrà richiesta conferma
- Se non ci sono utenti corrispondenti, verrà mostrato "Found 0 users"
---
#### Gestione Gruppi Utenti (`user_group.py`)
**Mostra aiuto:**
`./user_group.py -h`
**Visualizza gruppi utenti:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Esempio:**
`./user_group.py --url https://example.com --token <token> view --name "Team Vendite"`
**Operazioni sui gruppi:**
- **Creare gruppo utenti:**
`./user_group.py --url <url> --token <token> add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '<json>'] [--access-to '<json>']`
Esempio con controllo accesso:
`./user_group.py --url <url> --token <token> add --name "Ingegneria" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Server Dev"}]'`
- **Aggiornare gruppo utenti:**
`./user_group.py --url <url> --token <token> update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Eliminare gruppo utenti:**
`./user_group.py --url <url> --token <token> delete --name "NomeGruppo"`
Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"`
**Gestione utenti nei gruppi:**
- **Visualizzare utenti nel gruppo:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtri:
- `--name`: nome del gruppo (corrispondenza esatta, opzionale)
- `--user-name`: nome utente (ricerca fuzzy, opzionale)
Esempio:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Aggiungere utenti al gruppo:**
`./user_group.py --url <url> --token <token> add-users --name "NomeGruppo" --users "user1,user2,user3"`
**Parametri controllo accesso:**
- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo utenti
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Utente (es. `[{"type":2,"name":"john"}]`)
- `--access-to`: array JSON che definisce a cosa può accedere questo gruppo utenti
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Supporto"}]`)
- Type 1 = Gruppo dispositivi (es. `[{"type":1,"name":"Server"}]`)
**Nota:** Utilizzare virgolette singole attorno agli array JSON per evitare problemi di parsing della shell.
**Requisiti di permessi:**
- I comandi `view/add/update/delete/add-users` richiedono **Permesso Gruppo Utenti**
- Il comando `view-users` richiede **Permesso Utente**
---
#### Gestione Gruppi Dispositivi (`device_group.py`)
**Mostra aiuto:**
`./device_group.py -h`
**Visualizza gruppi dispositivi:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Esempio:**
`./device_group.py --url https://example.com --token <token> view`
**Operazioni sui gruppi:**
- **Creare gruppo dispositivi:**
`./device_group.py --url <url> --token <token> add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '<json>']`
Esempio:
`./device_group.py --url <url> --token <token> add --name "Produzione" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Aggiornare gruppo dispositivi:**
`./device_group.py --url <url> --token <token> update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '<json>']`
- **Eliminare gruppo dispositivi:**
`./device_group.py --url <url> --token <token> delete --name "NomeGruppo"`
Supporta nomi separati da virgola: `--name "Gruppo1,Gruppo2,Gruppo3"`
**Gestione dispositivi nei gruppi:**
- **Visualizzare dispositivi nel gruppo:**
`./device_group.py --url <url> --token <token> view-devices [filtri]`
Filtri disponibili:
- `--name`: nome del gruppo dispositivi (corrispondenza esatta)
- `--id`: ID dispositivo (ricerca fuzzy)
- `--device-name`: nome dispositivo (ricerca fuzzy)
- `--user-name`: nome utente/proprietario (ricerca fuzzy)
- `--device-username`: nome utente connesso al dispositivo (ricerca fuzzy)
Esempi:
```bash
# Visualizzare tutti i dispositivi in un gruppo
./device_group.py --url <url> --token <token> view-devices --name Produzione
# Cercare per nome dispositivo
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combinare filtri
./device_group.py --url <url> --token <token> view-devices --name Produzione --user-name john
```
- **Visualizzare gruppi dispositivi accessibili:**
`./device_group.py --url <url> --token <token> accessible`
Mostra tutti i gruppi dispositivi accessibili all'utente corrente.
- **Aggiungere dispositivi al gruppo:**
`./device_group.py --url <url> --token <token> add-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"`
- **Rimuovere dispositivi dal gruppo:**
`./device_group.py --url <url> --token <token> remove-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"`
**Parametro controllo accesso:**
- `--accessed-from`: array JSON che definisce chi può accedere a questo gruppo dispositivi
- Type 0 = Gruppo utenti (es. `[{"type":0,"name":"Ingegneri"}]`)
- Type 2 = Utente (es. `[{"type":2,"name":"admin"}]`)
**Requisiti permessi:**
- I comandi `view/add/update/delete/add-devices/remove-devices` richiedono **Permesso Gruppo Dispositivi**
- Il comando `view-devices` richiede **Permesso Dispositivo**
---
#### Gestione Dispositivi (`devices.py`)
**Mostra aiuto:**
./devices.py -h
**Visualizza dispositivi:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtri:**
--id : ID dispositivo
--device_name : nome dispositivo
--user_name : utente assegnato
--group_name : gruppo utenti
--device_group_name : gruppo dispositivi
--offline_days : giorni offline
**Esempio:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operazioni:**
`view` può essere sostituito con `enable`, `disable`, `delete`, o `assign`.
**Esempio (assegnare dispositivo):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Gestione Rubrica (`ab.py`)
**Mostra aiuto:**
./ab.py -h
**Visualizza rubriche condivise:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Ottieni GUID rubrica personale:**
./ab.py --url <url> --token <token> get-personal-ab
**Aggiungi rubrica condivisa:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Aggiorna o elimina rubrica condivisa:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Visualizza peer in una rubrica:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Aggiungi, aggiorna o elimina un peer:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Gestione tag:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Gestione regole di accesso:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Esempio (aggiungi regola sola lettura per lutente "mike"):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Gestione delle Strategie (`strategies.py`)
**Mostra aiuto:**
`./strategies.py -h`
**Elenca tutte le strategie:**
`./strategies.py --url <url> --token <token> list`
**Visualizza una strategia specifica:**
```bash
# Per nome
./strategies.py --url <url> --token <token> view --name "Default"
# Per GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Abilita o disabilita una strategia:**
```bash
./strategies.py --url <url> --token <token> enable --name "NomeStrategia"
./strategies.py --url <url> --token <token> disable --name "NomeStrategia"
```
**Assegna strategia a dispositivi, utenti o gruppi dispositivi:**
```bash
# Assegna a dispositivi (per ID dispositivo)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Assegna a utenti (per nome utente)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Assegna a gruppi dispositivi (per nome gruppo)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Assegnazione mista
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Rimuovi assegnazione strategia:**
```bash
# Rimuovi da dispositivi
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Rimuovi da utenti
./strategies.py --url <url> --token <token> unassign --users "admin"
# Rimuovi da gruppi dispositivi
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Note:**
- Lo script supporta sia nomi che GUID per utenti e gruppi dispositivi
- Gli ID dispositivi vengono automaticamente convertiti in GUID
- Tutte le operazioni assign/unassign possono gestire più target contemporaneamente
**Requisiti di permessi:**
- I comandi `list/view/enable/disable/assign/unassign` richiedono **Permesso Strategia**
- `--peers` richiede **Permesso Dispositivo:r** (per ricerca da ID a GUID)
- `--users` richiede **Permesso Utente:r** (per ricerca da nome utente a GUID)
- `--device-groups` richiede **Permesso Gruppo Dispositivi:r** (per ricerca da nome gruppo a GUID)
---
#### Audit (`audits.py`)
**Mostra aiuto:**
./audits.py -h
**Visualizza audit di connessione:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizza audit file:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizza audit allarmi:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizza audit console:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtri:**
--remote : ID peer (per audit di connessione o file)
--conn-type : 0=Desktop Remoto, 1=Trasferimento File, 2=Trasferimento Porte, 3=Visualizza Telecamera, 4=Terminale
--device : ID dispositivo (per audit allarmi)
--operator : nome operatore (per audit console)
--created-at : filtro orario locale, es. "2025-09-16 14:15:57"
--days-ago : filtra record più recenti di n giorni
--page-size / --current : paginazione
**Esempio:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Cercare un dispositivo
1. Vai su Dispositivi.

View File

@ -88,18 +88,443 @@ Windowsクライアントの場合、カスタムサーバー設定を省略し
7. `送信者`にGmailアカウント`myrustdeskserver@gmail.com`)を入力します。
8. `確認`をクリックして保存します。
## デバイスユーザー/グループ/戦略/デバイスグループをデバイスに割り当て
ユーザーは、デバイスにログインしているRustDeskユーザー、またはデバイスの横の`編集`をクリックしてデバイスに割り当てられたユーザーです。`ユーザー`ボックスをクリックしてドロップダウンからユーザーを選択すると、ユーザーが割り当てられたグループに基づいてグループが自動的に割り当てられます。
## Webコンソールを使用したデバイスへのユーザー/戦略/デバイスグループの割り当て
これは、デプロイ時または後でRustDesk実行可能ファイルに続いて`--assign --token <生成されたトークン> --user_name <ユーザー名>`を呼び出すことで、コマンドラインでAPIを介して行うこともできます。これを行うには、まず`設定 → トークン → 作成`に移動してデバイス権限を持つトークンを作成する必要があります。Windowsでの例は`"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <生成されたトークン> --user_name <新しいユーザー>`です。
ユーザーは、デバイスにログインしているRustDeskユーザー、またはデバイスの横にある**編集**をクリックし、**ユーザー**ボックスをクリックしてドロップダウンからユーザーを選択することでデバイスに割り当てられます。
また、**ユーザーリスト**で**その他 → デバイスを割り当て**をクリックすることで、複数のデバイスをユーザーに一括割り当てすることもできます。
この方法で戦略を割り当てることもできます。例:`--assign --token <生成されたトークン> --strategy_name <戦略名>`
デバイスをデバイスグループに追加するには、**デバイスリスト**でデバイスの横にある**編集**をクリックして**グループ**を変更するか、**デバイスグループ**リストに移動してグループ名をクリックし、そのグループ内のデバイスを調整します
この方法でアドレス帳を割り当てることもできます。例:`--assign --token <生成されたトークン> --address_book_name <アドレス帳名>`または`--assign --token <生成されたトークン> --address_book_name <アドレス帳名> --address_book_tag <アドレス帳タグ> --address_book_alias <エイリアス>`。`--address_book_alias`にはRustDesk Server Pro ≥1.5.8とクライアント ≥1.4.1が必要です。
デバイスに戦略を割り当てるには、**戦略**リストの右側にカーソルを合わせ、メニューから**デバイスを編集**、**ユーザーを編集**、または**デバイスグループを編集**をクリックして、選択した戦略に対応するデバイス、ユーザーデバイス、またはデバイスグループのデバイスを追加します。
この方法でデバイスグループ名を割り当てることもできます。例:`--assign --token <生成されたトークン> --device_group_name <デバイスグループ名>`。
---
Windowsのコマンドラインはデフォルトで出力がありません。出力を得るには、`"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more`または`"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`のように実行してください。[こちら](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)を参照してください。
## APIトークン
まず、**設定 → トークン → 作成**に移動し、必要な権限(**デバイス、監査ログ、ユーザー、グループ、戦略、アドレス帳**)を持つトークンを作成する必要があります。
作成後、これらのトークンを**コマンドライン**または**Python CLI**を通じて使用し、対応する権限で操作を実行できます。
### コマンドラインからトークンを使用して割り当て
`--assign`パラメータを使用してRustDesk実行ファイルで割り当てを行うこともできます。
これにより、ユーザー、戦略、アドレス帳、またはデバイスグループをコマンドラインから直接デバイスに割り当てることができます。
**例:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
サポートされているパラメータ
| パラメータ | 説明 | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | デバイスにユーザーを割り当て | | |
| `--strategy_name <strategyname>` | デバイスに戦略を割り当て | | |
| `--address_book_name <addressbookname>` | デバイスをアドレス帳に割り当て | | |
| `--address_book_tag <addressbooktag>` | アドレス帳タグで割り当て | | |
| `--address_book_alias <alias>` | アドレス帳のエイリアスで割り当て | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | アドレス帳エントリのパスワードを設定 | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | アドレス帳エントリにメモを設定 | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | デバイスをデバイスグループに割り当て | | |
| `--note <note>` | デバイスにメモを追加 | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | デバイスのユーザー名を設定 | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | デバイス名を設定 | 1.6.6 | 1.4.3 |
Windowsのコマンドラインはデフォルトでは出力を表示しません。出力を取得するには次のように実行してください
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
詳細は[こちら](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。
### Python CLI管理ツール
#### ユーザー管理 (`users.py`)
**ヘルプ表示:**
`./users.py -h`
**ユーザー表示:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**フィルター:**
- `--name`:ユーザー名(あいまい検索)
- `--group_name`:ユーザーグループ名(完全一致)
**例:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**基本操作:**
- **ユーザーを無効化:**
`./users.py --url <url> --token <token> disable --name testuser`
- **ユーザーを有効化:**
`./users.py --url <url> --token <token> enable --name testuser`
- **ユーザーを削除:**
`./users.py --url <url> --token <token> delete --name testuser`
**ユーザーの作成と招待:**
- **新規ユーザーの作成:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "メモ"]`
必須パラメータ:`--name`、`--password`、`--group_name`
オプションパラメータ:`--email`、`--note`
- **メールでユーザーを招待:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "メモ"]`
必須パラメータ:`--email`、`--name`、`--group_name`
オプションパラメータ:`--note`
**2FAとセキュリティ操作**
- **2FA強制を有効化**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
必須パラメータ:`--web-console-url`
- **2FA強制を無効化**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
オプションパラメータ:`--web-console-url`
- **2FAをリセット**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **メール認証を無効化:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **強制ログアウト:**
`./users.py --url <url> --token <token> force-logout --name username`
**注意事項:**
- 複数のユーザーに対して操作を行う場合(フィルターでマッチ)、確認プロンプトが表示されます
- 一致するユーザーがいない場合は「Found 0 users」と表示されます
---
#### ユーザーグループ管理 (`user_group.py`)
**ヘルプ表示:**
`./user_group.py -h`
**ユーザーグループ表示:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**例:**
`./user_group.py --url https://example.com --token <token> view --name "営業チーム"`
**グループ操作:**
- **ユーザーグループの作成:**
`./user_group.py --url <url> --token <token> add --name "グループ名" [--note "説明"] [--accessed-from '<json>'] [--access-to '<json>']`
アクセス制御付きの例:
`./user_group.py --url <url> --token <token> add --name "エンジニアリング" --accessed-from '[{"type":0,"name":"マネージャー"}]' --access-to '[{"type":1,"name":"開発サーバー"}]'`
- **ユーザーグループの更新:**
`./user_group.py --url <url> --token <token> update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '<json>'] [--access-to '<json>']`
- **ユーザーグループの削除:**
`./user_group.py --url <url> --token <token> delete --name "グループ名"`
カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"`
**グループ内ユーザー管理:**
- **グループ内のユーザーを表示:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
フィルター:
- `--name`:グループ名(完全一致、オプション)
- `--user-name`:ユーザー名(あいまい検索、オプション)
例:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **グループにユーザーを追加:**
`./user_group.py --url <url> --token <token> add-users --name "グループ名" --users "user1,user2,user3"`
**アクセス制御パラメータ:**
- `--accessed-from`:このユーザーグループにアクセスできるユーザー/グループを定義するJSON配列
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"管理者"}]`
- Type 2 = ユーザー(例:`[{"type":2,"name":"john"}]`
- `--access-to`このユーザーグループがアクセスできる対象を定義するJSON配列
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"サポート"}]`
- Type 1 = デバイスグループ(例:`[{"type":1,"name":"サーバー"}]`
**注意:** シェルの解析問題を避けるため、JSON配列は単一引用符で囲んでください。
**権限要件:**
- `view/add/update/delete/add-users` コマンドには **ユーザーグループ権限** が必要
- `view-users` コマンドには **ユーザー権限** が必要
---
#### デバイスグループ管理 (`device_group.py`)
**ヘルプ表示:**
`./device_group.py -h`
**デバイスグループ表示:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**例:**
`./device_group.py --url https://example.com --token <token> view`
**グループ操作:**
- **デバイスグループの作成:**
`./device_group.py --url <url> --token <token> add --name "グループ名" [--note "説明"] [--accessed-from '<json>']`
例:
`./device_group.py --url <url> --token <token> add --name "本番環境" --accessed-from '[{"type":0,"name":"管理者"}]'`
- **デバイスグループの更新:**
`./device_group.py --url <url> --token <token> update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '<json>']`
- **デバイスグループの削除:**
`./device_group.py --url <url> --token <token> delete --name "グループ名"`
カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"`
**グループ内デバイス管理:**
- **グループ内のデバイスを表示:**
`./device_group.py --url <url> --token <token> view-devices [フィルター]`
利用可能なフィルター:
- `--name`:デバイスグループ名(完全一致)
- `--id`デバイスIDあいまい検索
- `--device-name`:デバイス名(あいまい検索)
- `--user-name`:ユーザー名/所有者(あいまい検索)
- `--device-username`:デバイスにログインしているユーザー名(あいまい検索)
例:
```bash
# グループ内のすべてのデバイスを表示
./device_group.py --url <url> --token <token> view-devices --name 本番環境
# デバイス名で検索
./device_group.py --url <url> --token <token> view-devices --device-name server
# フィルターを組み合わせ
./device_group.py --url <url> --token <token> view-devices --name 本番環境 --user-name john
```
- **グループにデバイスを追加:**
`./device_group.py --url <url> --token <token> add-devices --name "グループ名" --ids "deviceid1,deviceid2"`
- **グループからデバイスを削除:**
`./device_group.py --url <url> --token <token> remove-devices --name "グループ名" --ids "deviceid1,deviceid2"`
**アクセス制御パラメータ:**
- `--accessed-from`:このデバイスグループにアクセスできるユーザー/グループを定義するJSON配列
- Type 0 = ユーザーグループ(例:`[{"type":0,"name":"エンジニア"}]`
- Type 2 = ユーザー(例:`[{"type":2,"name":"admin"}]`
**権限要件:**
- `view/add/update/delete/add-devices/remove-devices` コマンドには **デバイスグループ権限** が必要
- `view-devices` コマンドには **デバイス権限** が必要
---
#### デバイス管理 (`devices.py`)
**ヘルプ表示:**
./devices.py -h
**デバイス表示:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**フィルター:**
--id : デバイスID
--device_name : デバイス名
--user_name : 割り当てユーザー
--group_name : ユーザーグループ
--device_group_name : デバイスグループ
--offline_days : オフライン日数
**例:**
./devices.py --url https://example.com --token <token> view --user_name mike
**操作:**
`view`は`enable`、`disable`、`delete`、`assign`に置き換え可能です。
**例(デバイスを割り当てる):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### アドレス帳管理 (`ab.py`)
**ヘルプ表示:**
./ab.py -h
**共有アドレス帳表示:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**個人アドレス帳GUID取得**
./ab.py --url <url> --token <token> get-personal-ab
**共有アドレス帳追加:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**共有アドレス帳の更新または削除:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**アドレス帳内のピア表示:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**ピアの追加、更新、削除:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**タグ管理:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**アクセスルール管理:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**例(ユーザー "mike" に読み取り専用ルールを追加):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### ストラテジー管理 (`strategies.py`)
**ヘルプを表示:**
`./strategies.py -h`
**すべてのストラテジーを一覧表示:**
`./strategies.py --url <url> --token <token> list`
**特定のストラテジーを表示:**
```bash
# 名前で
./strategies.py --url <url> --token <token> view --name "Default"
# GUIDで
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**ストラテジーを有効化または無効化:**
```bash
./strategies.py --url <url> --token <token> enable --name "ストラテジー名"
./strategies.py --url <url> --token <token> disable --name "ストラテジー名"
```
**デバイス、ユーザー、またはデバイスグループにストラテジーを割り当て:**
```bash
# デバイスに割り当てデバイスIDで
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# ユーザーに割り当て(ユーザー名で)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# デバイスグループに割り当て(グループ名で)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# 混合割り当て
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**ストラテジーの割り当てを解除:**
```bash
# デバイスから解除
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# ユーザーから解除
./strategies.py --url <url> --token <token> unassign --users "admin"
# デバイスグループから解除
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**注意:**
- スクリプトはユーザーとデバイスグループの名前とGUIDの両方をサポートします
- デバイスIDは自動的にGUIDに変換されます
- すべてのassign/unassign操作は一度に複数のターゲットを処理できます
**権限要件:**
- `list/view/enable/disable/assign/unassign` コマンドには **ストラテジー権限** が必要
- `--peers` には **デバイス権限:r** が必要IDからGUIDへの検索用
- `--users` には **ユーザー権限:r** が必要ユーザー名からGUIDへの検索用
- `--device-groups` には **デバイスグループ権限:r** が必要グループ名からGUIDへの検索用
---
#### 監査 (`audits.py`)
**ヘルプ表示:**
./audits.py -h
**接続監査の表示:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**ファイル監査の表示:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**アラーム監査の表示:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**コンソール監査の表示:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**フィルター:**
--remote : ピアID接続またはファイル監査用
--conn-type : 0=リモートデスクトップ, 1=ファイル転送, 2=ポート転送, 3=カメラビュー, 4=ターミナル
--device : デバイスIDアラーム監査用
--operator : オペレーター名(コンソール監査用)
--created-at : ローカル時間フィルター、例 "2025-09-16 14:15:57"
--days-ago : 指定日数以内の新しいレコードをフィルター
--page-size / --current : ページネーション
**例:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## デバイスの検索
1. デバイスに移動します。

View File

@ -89,18 +89,647 @@ W tym przykładzie użyto Gmaila
7. Wprowadź adres swojego konta Gmail, np. `mojserwerrustdeska@gmail.com`, w polu `Od`.
8. Kliknij `Sprawdź`, aby zapisać.
## Przypisywanie użytkowników/grup/strategii/grup urządzeń do urządzeń
Użytkownik to użytkownik RustDeska zalogowany na urządzeniu lub przypisany do niego poprzez kliknięcie `Edytuj` obok urządzenia, kliknięcie pola `Użytkownik` i wybranie użytkownika z listy rozwijanej. Spowoduje to automatyczne przypisanie grupy na podstawie grupy, do której użytkownik został przypisany.
## Przypisywanie użytkowników/strategii/grup urządzeń do urządzeń przez konsolę webową
Można to również zrobić za pomocą interfejsu API w wierszu poleceń podczas wdrażania lub później, wywołując plik wykonywalny RustDesk, a następnie poleceniem `--assign --token <wygenerowanytoken> --user_name <nazwa_użytkownika>`. Aby to zrobić, należy przejść do `Ustawienia → Tokeny → Utwórz` i najpierw utworzyć token z uprawnieniami urządzenia. Przykładem w systemie Windows jest `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <wygenerowanytoken> --user_name <nazwa_użytkownika>`.
Użytkownik to użytkownik RustDesk zalogowany na urządzeniu lub przypisany do urządzenia poprzez kliknięcie **Edytuj** obok urządzenia, kliknięcie w pole **Użytkownik** i wybranie swojego użytkownika z rozwijanego menu.
Możesz także przypisać wiele urządzeń do użytkownika, klikając **Więcej → Przypisz urządzenia** w **Liście użytkowników**.
Możesz również przypisać strategię w ten sposób, np. `--assign --token <wygenerowanytoken> --strategy_name <nazwastrategii>`.
Aby dodać urządzenie do grupy urządzeń, kliknij **Edytuj** obok urządzenia w **Liście urządzeń** i zmień **Grupę**, lub przejdź do listy **Grup urządzeń**, kliknij nazwę grupy i dostosuj urządzenia w tej grupie.
Możesz również przypisać książkę adresową w ten sposób, np. `--assign --token <wygenerowanytoken> --address_book_name <nazwaksiążkiadresowej>` lub `--assign --token <wygenerowanytoken> --address_book_name <nazwaksiążkiadresowej> --address_book_tag <znacznikksiążkiadresowej> --address_book_alias <alias>`. `--address_book_alias` wymaga serwera RustDeska Pro w wersji 1.5.8 lub nowszej i klienta w wersji 1.4.1.
Aby przypisać strategię do urządzenia, najedź kursorem na prawą stronę listy **Strategii** i kliknij w menu **Edytuj urządzenia**, **Edytuj użytkowników** lub **Edytuj grupy urządzeń**, aby dodać odpowiednie urządzenia, urządzenia użytkownika lub urządzenia grupy do wybranej strategii.
Możesz również przypisać nazwę grupy urządzeń w ten sposób, np. `--assign --token <wygenerowanytoken> --device_group_name <nazwagrupyurządzeń>`.
---
Wiersz poleceń w systemie Windows domyślnie nie wyświetla wyników. Aby uzyskać wynik, uruchom polecenie w następujący sposób: `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | więcej` lub `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, patrz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Token API
Najpierw przejdź do **Ustawienia → Tokeny → Utwórz** i utwórz token z wymaganymi uprawnieniami: **Urządzenie, Dziennik audytu, Użytkownik, Grupa, Strategia, Książka adresowa**.
Po utworzeniu tokeny te można używać przez **wiersz poleceń** lub **CLI w Pythonie**, aby wykonywać akcje z odpowiadającymi uprawnieniami.
### Przypisywanie za pomocą tokenu z wiersza poleceń
Można również wykonywać przypisania, używając pliku wykonywalnego RustDesk z parametrem `--assign`.
Pozwala to na przypisywanie użytkowników, strategii, książek adresowych lub grup urządzeń do urządzenia bezpośrednio z wiersza poleceń.
**Przykład:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Obsługiwane parametry
| Parametr | Opis | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Przypisz użytkownika do urządzenia | | |
| `--strategy_name <strategyname>` | Przypisz strategię do urządzenia | | |
| `--address_book_name <addressbookname>` | Przypisz urządzenie do książki adresowej | | |
| `--address_book_tag <addressbooktag>` | Przypisz z tagiem książki adresowej | | |
| `--address_book_alias <alias>` | Przypisz z aliasem książki adresowej | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Ustaw hasło dla wpisu w książce adresowej| 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Ustaw notatkę dla wpisu w książce adresowej | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Przypisz urządzenie do grupy | | |
| `--note <note>` | Dodaj notatkę do urządzenia | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Ustaw nazwę użytkownika urządzenia | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Ustaw nazwę urządzenia | 1.6.6 | 1.4.3 |
Wiersz poleceń w systemie Windows nie wyświetla domyślnie żadnego outputu. Aby go otrzymać, użyj:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Narzędzia zarządzania Python CLI
#### Zarządzanie użytkownikami (`users.py`)
**Pokaż pomoc:**
`./users.py -h`
**Wyświetl użytkowników:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtry:**
- `--name`: nazwa użytkownika (wyszukiwanie rozmyte)
- `--group_name`: grupa użytkowników (dokładne dopasowanie)
**Przykład:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Podstawowe operacje:**
- **Wyłącz użytkownika:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Włącz użytkownika:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Usuń użytkownika:**
`./users.py --url <url> --token <token> delete --name testuser`
**Tworzenie i zapraszanie użytkowników:**
- **Utwórz nowego użytkownika:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notatka"]`
Wymagane: `--name`, `--password`, `--group_name`
Opcjonalne: `--email`, `--note`
- **Zaproś użytkownika przez email:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "notatka"]`
Wymagane: `--email`, `--name`, `--group_name`
Opcjonalne: `--note`
**Operacje 2FA i bezpieczeństwo:**
- **Włącz wymuszanie 2FA:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Wymagane: `--web-console-url`
- **Wyłącz wymuszanie 2FA:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Opcjonalne: `--web-console-url`
- **Zresetuj 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Wyłącz weryfikację email:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Wymuś wylogowanie:**
`./users.py --url <url> --token <token> force-logout --name username`
**Uwagi:**
- Przy operacjach na wielu użytkownikach (dopasowanych przez filtry) zostanie wyświetlony monit o potwierdzenie
- Jeśli nie ma pasujących użytkowników, zostanie wyświetlone "Found 0 users"
---
#### Zarządzanie grupami użytkowników (`user_group.py`)
**Pokaż pomoc:**
`./user_group.py -h`
**Wyświetl grupy użytkowników:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Przykład:**
`./user_group.py --url https://example.com --token <token> view --name "Zespół Sprzedaży"`
**Operacje na grupach:**
- **Utwórz grupę użytkowników:**
`./user_group.py --url <url> --token <token> add --name "NazwaGrupy" [--note "opis"] [--accessed-from '<json>'] [--access-to '<json>']`
Przykład z kontrolą dostępu:
`./user_group.py --url <url> --token <token> add --name "Inżynierowie" --accessed-from '[{"type":0,"name":"Menedżerowie"}]' --access-to '[{"type":1,"name":"Serwery Dev"}]'`
- **Aktualizuj grupę użytkowników:**
`./user_group.py --url <url> --token <token> update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Usuń grupę użytkowników:**
`./user_group.py --url <url> --token <token> delete --name "NazwaGrupy"`
Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"`
**Zarządzanie użytkownikami w grupach:**
- **Wyświetl użytkowników w grupie:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtry:
- `--name`: nazwa grupy (dokładne dopasowanie, opcjonalne)
- `--user-name`: nazwa użytkownika (wyszukiwanie rozmyte, opcjonalne)
Przykład:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Dodaj użytkowników do grupy:**
`./user_group.py --url <url> --token <token> add-users --name "NazwaGrupy" --users "user1,user2,user3"`
**Parametry kontroli dostępu:**
- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy użytkowników
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Użytkownik (np. `[{"type":2,"name":"john"}]`)
- `--access-to`: tablica JSON definiująca do czego ta grupa użytkowników może uzyskać dostęp
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Wsparcie"}]`)
- Type 1 = Grupa urządzeń (np. `[{"type":1,"name":"Serwery"}]`)
**Uwaga:** Użyj pojedynczych cudzysłowów wokół tablic JSON, aby uniknąć problemów z parsowaniem powłoki.
**Wymagania uprawnień:**
- Polecenia `view/add/update/delete/add-users` wymagają **Uprawnienia Grupy Użytkowników**
- Polecenie `view-users` wymaga **Uprawnienia Użytkownika**
---
#### Zarządzanie grupami urządzeń (`device_group.py`)
**Pokaż pomoc:**
`./device_group.py -h`
**Wyświetl grupy urządzeń:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Przykład:**
`./device_group.py --url https://example.com --token <token> view`
**Operacje na grupach:**
- **Utwórz grupę urządzeń:**
`./device_group.py --url <url> --token <token> add --name "NazwaGrupy" [--note "opis"] [--accessed-from '<json>']`
Przykład:
`./device_group.py --url <url> --token <token> add --name "Produkcja" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Aktualizuj grupę urządzeń:**
`./device_group.py --url <url> --token <token> update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '<json>']`
- **Usuń grupę urządzeń:**
`./device_group.py --url <url> --token <token> delete --name "NazwaGrupy"`
Obsługuje nazwy oddzielone przecinkami: `--name "Grupa1,Grupa2,Grupa3"`
**Zarządzanie urządzeniami w grupach:**
- **Wyświetl urządzenia w grupie:**
`./device_group.py --url <url> --token <token> view-devices [filtry]`
Dostępne filtry:
- `--name`: nazwa grupy urządzeń (dokładne dopasowanie)
- `--id`: ID urządzenia (wyszukiwanie rozmyte)
- `--device-name`: nazwa urządzenia (wyszukiwanie rozmyte)
- `--user-name`: nazwa użytkownika/właściciel (wyszukiwanie rozmyte)
- `--device-username`: nazwa użytkownika zalogowanego na urządzeniu (wyszukiwanie rozmyte)
Przykłady:
```bash
# Wyświetl wszystkie urządzenia w grupie
./device_group.py --url <url> --token <token> view-devices --name Produkcja
# Szukaj po nazwie urządzenia
./device_group.py --url <url> --token <token> view-devices --device-name server
# Połącz filtry
./device_group.py --url <url> --token <token> view-devices --name Produkcja --user-name john
```
- **Wyświetl dostępne grupy urządzeń:**
`./device_group.py --url <url> --token <token> accessible`
Pokazuje wszystkie grupy urządzeń dostępne dla bieżącego użytkownika.
- **Dodaj urządzenia do grupy:**
`./device_group.py --url <url> --token <token> add-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"`
- **Usuń urządzenia z grupy:**
`./device_group.py --url <url> --token <token> remove-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"`
**Parametr kontroli dostępu:**
- `--accessed-from`: tablica JSON definiująca kto może uzyskać dostęp do tej grupy urządzeń
- Type 0 = Grupa użytkowników (np. `[{"type":0,"name":"Inżynierowie"}]`)
- Type 2 = Użytkownik (np. `[{"type":2,"name":"admin"}]`)
**Wymagania dotyczące uprawnień:**
- Polecenia `view/add/update/delete/add-devices/remove-devices` wymagają **Uprawnienia Grupy Urządzeń**
- Polecenie `view-devices` wymaga **Uprawnienia Urządzenia**
---
#### Zarządzanie urządzeniami (`devices.py`)
**Pokaż pomoc:**
./devices.py -h
**Wyświetl urządzenia:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtry:**
--id : ID urządzenia
--device_name : nazwa urządzenia
--user_name : przypisany użytkownik
--group_name : grupa użytkowników
--device_group_name : grupa urządzeń
--offline_days : dni offline
**Przykład:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operacje:**
`view` można zastąpić `enable`, `disable`, `delete` lub `assign`.
**Przykład (przypisz urządzenie):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Zarządzanie książką adresową (`ab.py`)
**Pokaż pomoc:**
./ab.py -h
**Wyświetl udostępnione książki adresowe:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Pobierz GUID osobistej książki adresowej:**
./ab.py --url <url> --token <token> get-personal-ab
**Dodaj udostępnioną książkę adresową:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Aktualizuj lub usuń udostępnioną książkę adresową:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Wyświetl peerów w książce adresowej:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Dodaj, zaktualizuj lub usuń peer:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Zarządzanie tagami:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Zarządzanie regułami dostępu:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Przykład (dodaj regułę tylko do odczytu dla użytkownika "mike"):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Zarządzanie Strategiami (`strategies.py`)
**Pokaż pomoc:**
`./strategies.py -h`
**Wyświetl wszystkie strategie:**
`./strategies.py --url <url> --token <token> list`
**Zobacz konkretną strategię:**
```bash
# Po nazwie
./strategies.py --url <url> --token <token> view --name "Default"
# Po GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Włącz lub wyłącz strategię:**
```bash
./strategies.py --url <url> --token <token> enable --name "NazwaStrategii"
./strategies.py --url <url> --token <token> disable --name "NazwaStrategii"
```
**Przypisz strategię do urządzeń, użytkowników lub grup urządzeń:**
```bash
# Przypisz do urządzeń (po ID urządzenia)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Przypisz do użytkowników (po nazwie użytkownika)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Przypisz do grup urządzeń (po nazwie grupy)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Przypisanie mieszane
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Cofnij przypisanie strategii:**
```bash
# Cofnij z urządzeń
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Cofnij z użytkowników
./strategies.py --url <url> --token <token> unassign --users "admin"
# Cofnij z grup urządzeń
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Uwagi:**
- Skrypt obsługuje zarówno nazwy, jak i GUID dla użytkowników i grup urządzeń
- ID urządzeń są automatycznie konwertowane na GUID
- Wszystkie operacje assign/unassign mogą obsługiwać wiele celów jednocześnie
**Wymagania uprawnień:**
- Polecenia `list/view/enable/disable/assign/unassign` wymagają **Uprawnienia Strategii**
- `--peers` wymaga **Uprawnienia Urządzenia:r** (do wyszukiwania ID do GUID)
- `--users` wymaga **Uprawnienia Użytkownika:r** (do wyszukiwania nazwy użytkownika do GUID)
- `--device-groups` wymaga **Uprawnienia Grupy Urządzeń:r** (do wyszukiwania nazwy grupy do GUID)
---
#### Audyty (`audits.py`)
**Pokaż pomoc:**
./audits.py -h
**Wyświetl audyt połączeń:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt plików:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt alarmów:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt konsoli:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtry:**
--remote : ID peer (dla audytu połączeń lub plików)
--conn-type : 0=Pulpit zdalny, 1=Transfer plików, 2=Transfer portów, 3=Podgląd kamery, 4=Terminal
--device : ID urządzenia (dla audytu alarmów)
--operator : nazwa operatora (dla audytu konsoli)
--created-at : filtr czasu lokalnego, np. "2025-09-16 14:15:57"
--days-ago : filtruje rekordy nowsze niż podana liczba dni
--page-size / --current : paginacja
**Przykład:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Przypisywanie użytkowników/strategii/grup urządzeń do urządzeń przez konsolę webową
Użytkownik to użytkownik RustDesk zalogowany na urządzeniu lub przypisany do urządzenia poprzez kliknięcie **Edytuj** obok urządzenia, kliknięcie w pole **Użytkownik** i wybranie swojego użytkownika z rozwijanego menu.
Możesz także przypisać wiele urządzeń do użytkownika, klikając **Więcej → Przypisz urządzenia** w **Liście użytkowników**.
Aby dodać urządzenie do grupy urządzeń, kliknij **Edytuj** obok urządzenia w **Liście urządzeń** i zmień **Grupę**, lub przejdź do listy **Grup urządzeń**, kliknij nazwę grupy i dostosuj urządzenia w tej grupie.
Aby przypisać strategię do urządzenia, najedź kursorem na prawą stronę listy **Strategii** i kliknij w menu **Edytuj urządzenia**, **Edytuj użytkowników** lub **Edytuj grupy urządzeń**, aby dodać odpowiednie urządzenia, urządzenia użytkownika lub urządzenia grupy do wybranej strategii.
---
## Token API
Najpierw przejdź do **Ustawienia → Tokeny → Utwórz** i utwórz token z wymaganymi uprawnieniami: **Urządzenie, Dziennik audytu, Użytkownik, Grupa, Strategia, Książka adresowa**.
Po utworzeniu tokeny te można używać przez **wiersz poleceń** lub **CLI w Pythonie**, aby wykonywać akcje z odpowiadającymi uprawnieniami.
### Przypisywanie za pomocą tokenu z wiersza poleceń
Można również wykonywać przypisania, używając pliku wykonywalnego RustDesk z parametrem `--assign`.
Pozwala to na przypisywanie użytkowników, strategii, książek adresowych lub grup urządzeń do urządzenia bezpośrednio z wiersza poleceń.
**Przykład:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Obsługiwane parametry
| Parametr | Opis | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Przypisz użytkownika do urządzenia | | |
| `--strategy_name <strategyname>` | Przypisz strategię do urządzenia | | |
| `--address_book_name <addressbookname>` | Przypisz urządzenie do książki adresowej | | |
| `--address_book_tag <addressbooktag>` | Przypisz z tagiem książki adresowej | | |
| `--address_book_alias <alias>` | Przypisz z aliasem książki adresowej | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Ustaw hasło dla wpisu w książce adresowej| 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Ustaw notatkę dla wpisu w książce adresowej | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Przypisz urządzenie do grupy | | |
| `--note <note>` | Dodaj notatkę do urządzenia | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Ustaw nazwę użytkownika urządzenia | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Ustaw nazwę urządzenia | 1.6.6 | 1.4.3 |
Wiersz poleceń w systemie Windows nie wyświetla domyślnie żadnego outputu. Aby go otrzymać, użyj:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
zobacz [tutaj](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Narzędzia zarządzania Python CLI
#### Zarządzanie użytkownikami (`users.py`)
**Pokaż pomoc:**
./users.py -h
**Wyświetl użytkowników:**
./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]
**Filtry:**
--name : nazwa użytkownika
--group_name : grupa użytkowników
**Przykład:**
./users.py --url https://example.com --token <token> view --group_name admins
**Operacje:**
`view` można zastąpić `enable`, `disable` lub `delete`.
**Przykład (wyłącz użytkownika):**
./users.py --url https://example.com --token <token> disable --name testuser
---
#### Zarządzanie urządzeniami (`devices.py`)
**Pokaż pomoc:**
./devices.py -h
**Wyświetl urządzenia:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtry:**
--id : ID urządzenia
--device_name : nazwa urządzenia
--user_name : przypisany użytkownik
--group_name : grupa użytkowników
--device_group_name : grupa urządzeń
--offline_days : dni offline
**Przykład:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operacje:**
`view` można zastąpić `enable`, `disable`, `delete` lub `assign`.
**Przykład (przypisz urządzenie):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Zarządzanie książką adresową (`ab.py`)
**Pokaż pomoc:**
./ab.py -h
**Wyświetl udostępnione książki adresowe:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Pobierz GUID osobistej książki adresowej:**
./ab.py --url <url> --token <token> get-personal-ab
**Dodaj udostępnioną książkę adresową:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Aktualizuj lub usuń udostępnioną książkę adresową:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Wyświetl peerów w książce adresowej:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Dodaj, zaktualizuj lub usuń peer:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Zarządzanie tagami:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Zarządzanie regułami dostępu:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Przykład (dodaj regułę tylko do odczytu dla użytkownika "mike"):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Audyty (`audits.py`)
**Pokaż pomoc:**
./audits.py -h
**Wyświetl audyt połączeń:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt plików:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt alarmów:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Wyświetl audyt konsoli:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtry:**
--remote : ID peer (dla audytu połączeń lub plików)
--conn-type : 0=Pulpit zdalny, 1=Transfer plików, 2=Transfer portów, 3=Podgląd kamery, 4=Terminal
--device : ID urządzenia (dla audytu alarmów)
--operator : nazwa operatora (dla audytu konsoli)
--created-at : filtr czasu lokalnego, np. "2025-09-16 14:15:57"
--days-ago : filtruje rekordy nowsze niż podana liczba dni
--page-size / --current : paginacja
**Przykład:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Wyszukiwanie urządzenia
1. Przejdź do sekcji Urządzenia.

View File

@ -88,18 +88,447 @@ Gmail neste exemplo
7. Digite sua conta Gmail, ou seja, `myrustdeskserver@gmail.com` em `De`.
8. Clique em `Verificar` para salvar.
## Atribuir Usuários/Grupos/Estratégias/GrupoDispositivo de Dispositivo a Dispositivos
O Usuário é o Usuário RustDesk logado no dispositivo ou atribuído ao dispositivo clicando em `Editar` ao lado do dispositivo, clique na caixa `Usuário` e use o dropdown para selecionar seu usuário, isso atribuirá automaticamente o grupo baseado no grupo ao qual o usuário foi atribuído.
## Atribuindo Usuários/Estratégias/Grupos de Dispositivos a Dispositivos via Console Web
Isso também pode ser feito via API na linha de comando durante a implantação ou posteriormente chamando o executável RustDesk seguido de `--assign --token <token gerado> --user_name <nome do usuário>`. Você precisa ir para `Configurações → Tokens → Criar` e criar um token com permissões de Dispositivo primeiro para fazer isso. Um exemplo disso no Windows seria `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <token gerado> --user_name <novo usuário>`.
O Usuário é o usuário RustDesk conectado ao dispositivo ou atribuído ao dispositivo clicando em **Editar** ao lado do dispositivo, clicando na caixa **Usuário** e selecionando seu usuário no menu suspenso.
Você também pode atribuir dispositivos em lote a um usuário clicando em **Mais → Atribuir Dispositivos** na **Lista de Usuários**.
Você também pode atribuir estratégia dessa forma, por exemplo, `--assign --token <token gerado> --strategy_name <nome da estratégia>`.
Para adicionar um dispositivo a um grupo de dispositivos, clique em **Editar** ao lado do dispositivo na **Lista de Dispositivos** e altere o **Grupo**, ou vá para a lista de **Grupos de Dispositivos**, clique no nome de um grupo e ajuste os dispositivos dentro desse grupo.
Você também pode atribuir caderno de endereços dessa forma, por exemplo, `--assign --token <token gerado> --address_book_name <nome do caderno de endereços>` ou `--assign --token <token gerado> --address_book_name <nome do caderno de endereços> --address_book_tag <tag do caderno de endereços> --address_book_alias <alias>`. `--address_book_alias` requer RustDesk Server Pro ≥1.5.8 e cliente ≥1.4.1.
Para atribuir uma estratégia a um dispositivo, passe o mouse sobre o lado direito da lista de **Estratégia** e clique em **Editar Dispositivos**, **Editar Usuários** ou **Editar Grupos de Dispositivos** no menu para adicionar os dispositivos correspondentes, dispositivos do usuário ou dispositivos do grupo selecionado à estratégia.
Você também pode atribuir nome de grupo de dispositivo dessa forma, por exemplo, `--assign --token <token gerado> --device_group_name <nome do grupo de dispositivo>`.
---
A linha de comando no Windows não tem saída por padrão. Para obter saída, execute assim, `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` ou `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String`, veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
## Token de API
Primeiro, você deve ir em **Configurações → Tokens → Criar** e criar um token com as permissões necessárias: **Dispositivo, Registro de Auditoria, Usuário, Grupo, Estratégia, Livro de Endereços**.
Depois de criado, você pode usar esses tokens via **linha de comando** ou **CLI Python** para executar ações com as permissões correspondentes.
### Atribuição via Token pelo Linha de Comando
Você também pode realizar atribuições usando o executável RustDesk com o parâmetro `--assign`.
Isso permite atribuir usuários, estratégias, livros de endereços ou grupos de dispositivos a um dispositivo diretamente da linha de comando.
**Exemplo:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
Parâmetros suportados
| Parâmetro | Descrição | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | Atribui um usuário ao dispositivo | | |
| `--strategy_name <strategyname>` | Atribui uma estratégia ao dispositivo | | |
| `--address_book_name <addressbookname>` | Atribui o dispositivo a um livro de endereços | | |
| `--address_book_tag <addressbooktag>` | Atribui com tag do livro de endereços | | |
| `--address_book_alias <alias>` | Atribui com alias do livro de endereços | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Define a senha da entrada do livro | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Define nota para a entrada do livro | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Atribui o dispositivo a um grupo | | |
| `--note <note>` | Adiciona nota ao dispositivo | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Define o nome de usuário do dispositivo | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Define o nome do dispositivo | 1.6.6 | 1.4.3 |
A linha de comando no Windows não produz saída por padrão. Para obter saída, execute:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
veja [aqui](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952).
### Ferramentas de Gerenciamento Python CLI
#### Gerenciamento de Usuários (`users.py`)
**Mostrar ajuda:**
`./users.py -h`
**Visualizar usuários:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtros:**
- `--name`: nome do usuário (busca difusa)
- `--group_name`: grupo de usuários (correspondência exata)
**Exemplo:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Operações básicas:**
- **Desativar usuário:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Ativar usuário:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Excluir usuário:**
`./users.py --url <url> --token <token> delete --name testuser`
**Criação e convite de usuários:**
- **Criar novo usuário:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "nota"]`
Obrigatório: `--name`, `--password`, `--group_name`
Opcional: `--email`, `--note`
- **Convidar usuário por email:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "nota"]`
Obrigatório: `--email`, `--name`, `--group_name`
Opcional: `--note`
**Operações 2FA e segurança:**
- **Habilitar imposição 2FA:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Obrigatório: `--web-console-url`
- **Desabilitar imposição 2FA:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Opcional: `--web-console-url`
- **Redefinir 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Desabilitar verificação por email:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Forçar logout:**
`./users.py --url <url> --token <token> force-logout --name username`
**Observações:**
- Ao operar em múltiplos usuários (correspondentes aos filtros), será solicitada confirmação
- Se não houver usuários correspondentes, será exibido "Found 0 users"
---
#### Gerenciamento de Grupos de Usuários (`user_group.py`)
**Mostrar ajuda:**
`./user_group.py -h`
**Visualizar grupos de usuários:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemplo:**
`./user_group.py --url https://example.com --token <token> view --name "Equipe Vendas"`
**Operações de grupo:**
- **Criar grupo de usuários:**
`./user_group.py --url <url> --token <token> add --name "NomeGrupo" [--note "descrição"] [--accessed-from '<json>'] [--access-to '<json>']`
Exemplo com controle de acesso:
`./user_group.py --url <url> --token <token> add --name "Engenharia" --accessed-from '[{"type":0,"name":"Gerentes"}]' --access-to '[{"type":1,"name":"Servidores Dev"}]'`
- **Atualizar grupo de usuários:**
`./user_group.py --url <url> --token <token> update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Excluir grupo de usuários:**
`./user_group.py --url <url> --token <token> delete --name "NomeGrupo"`
Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"`
**Gerenciamento de usuários em grupos:**
- **Visualizar usuários no grupo:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtros:
- `--name`: nome do grupo (correspondência exata, opcional)
- `--user-name`: nome do usuário (busca difusa, opcional)
Exemplo:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Adicionar usuários ao grupo:**
`./user_group.py --url <url> --token <token> add-users --name "NomeGrupo" --users "user1,user2,user3"`
**Parâmetros de controle de acesso:**
- `--accessed-from`: array JSON que define quem pode acessar este grupo de usuários
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Usuário (ex. `[{"type":2,"name":"john"}]`)
- `--access-to`: array JSON que define o que este grupo de usuários pode acessar
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Suporte"}]`)
- Type 1 = Grupo de dispositivos (ex. `[{"type":1,"name":"Servidores"}]`)
**Nota:** Use aspas simples ao redor dos arrays JSON para evitar problemas de análise do shell.
**Requisitos de permissões:**
- Os comandos `view/add/update/delete/add-users` requerem **Permissão de Grupo de Usuários**
- O comando `view-users` requer **Permissão de Usuário**
---
#### Gerenciamento de Grupos de Dispositivos (`device_group.py`)
**Mostrar ajuda:**
`./device_group.py -h`
**Visualizar grupos de dispositivos:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemplo:**
`./device_group.py --url https://example.com --token <token> view`
**Operações de grupo:**
- **Criar grupo de dispositivos:**
`./device_group.py --url <url> --token <token> add --name "NomeGrupo" [--note "descrição"] [--accessed-from '<json>']`
Exemplo:
`./device_group.py --url <url> --token <token> add --name "Produção" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Atualizar grupo de dispositivos:**
`./device_group.py --url <url> --token <token> update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '<json>']`
- **Excluir grupo de dispositivos:**
`./device_group.py --url <url> --token <token> delete --name "NomeGrupo"`
Suporta nomes separados por vírgula: `--name "Grupo1,Grupo2,Grupo3"`
**Gerenciamento de dispositivos em grupos:**
- **Visualizar dispositivos no grupo:**
`./device_group.py --url <url> --token <token> view-devices [filtros]`
Filtros disponíveis:
- `--name`: nome do grupo de dispositivos (correspondência exata)
- `--id`: ID do dispositivo (busca difusa)
- `--device-name`: nome do dispositivo (busca difusa)
- `--user-name`: nome do usuário/proprietário (busca difusa)
- `--device-username`: nome de usuário conectado no dispositivo (busca difusa)
Exemplos:
```bash
# Visualizar todos os dispositivos em um grupo
./device_group.py --url <url> --token <token> view-devices --name Produção
# Buscar por nome de dispositivo
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combinar filtros
./device_group.py --url <url> --token <token> view-devices --name Produção --user-name john
```
- **Visualizar grupos de dispositivos acessíveis:**
`./device_group.py --url <url> --token <token> accessible`
Mostra todos os grupos de dispositivos acessíveis ao usuário atual.
- **Adicionar dispositivos ao grupo:**
`./device_group.py --url <url> --token <token> add-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"`
- **Remover dispositivos do grupo:**
`./device_group.py --url <url> --token <token> remove-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"`
**Parâmetro de controle de acesso:**
- `--accessed-from`: array JSON que define quem pode acessar este grupo de dispositivos
- Type 0 = Grupo de usuários (ex. `[{"type":0,"name":"Engenheiros"}]`)
- Type 2 = Usuário (ex. `[{"type":2,"name":"admin"}]`)
**Requisitos de permissões:**
- Os comandos `view/add/update/delete/add-devices/remove-devices` requerem **Permissão de Grupo de Dispositivos**
- O comando `view-devices` requer **Permissão de Dispositivo**
---
#### Gerenciamento de Dispositivos (`devices.py`)
**Mostrar ajuda:**
./devices.py -h
**Visualizar dispositivos:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**Filtros:**
--id : ID do dispositivo
--device_name : nome do dispositivo
--user_name : usuário atribuído
--group_name : grupo de usuários
--device_group_name : grupo de dispositivos
--offline_days : dias offline
**Exemplo:**
./devices.py --url https://example.com --token <token> view --user_name mike
**Operações:**
`view` pode ser substituído por `enable`, `disable`, `delete` ou `assign`.
**Exemplo (atribuir dispositivo):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### Gerenciamento de Livro de Endereços (`ab.py`)
**Mostrar ajuda:**
./ab.py -h
**Visualizar livros de endereços compartilhados:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**Obter GUID do livro de endereços pessoal:**
./ab.py --url <url> --token <token> get-personal-ab
**Adicionar livro de endereços compartilhado:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**Atualizar ou deletar livro de endereços compartilhado:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**Visualizar peers em um livro de endereços:**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**Adicionar, atualizar ou deletar um peer:**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**Gerenciamento de tags:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**Gerenciamento de regras de acesso:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**Exemplo (adicionar regra somente leitura para usuário "mike"):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### Gestão de Estratégias (`strategies.py`)
**Mostrar ajuda:**
`./strategies.py -h`
**Listar todas as estratégias:**
`./strategies.py --url <url> --token <token> list`
**Ver uma estratégia específica:**
```bash
# Por nome
./strategies.py --url <url> --token <token> view --name "Default"
# Por GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Ativar ou desativar uma estratégia:**
```bash
./strategies.py --url <url> --token <token> enable --name "NomeEstrategia"
./strategies.py --url <url> --token <token> disable --name "NomeEstrategia"
```
**Atribuir estratégia a dispositivos, usuários ou grupos de dispositivos:**
```bash
# Atribuir a dispositivos (por ID de dispositivo)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Atribuir a usuários (por nome de usuário)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Atribuir a grupos de dispositivos (por nome de grupo)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Atribuição mista
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Cancelar atribuição de estratégia:**
```bash
# Cancelar de dispositivos
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Cancelar de usuários
./strategies.py --url <url> --token <token> unassign --users "admin"
# Cancelar de grupos de dispositivos
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Notas:**
- O script suporta nomes e GUIDs para usuários e grupos de dispositivos
- IDs de dispositivos são automaticamente convertidos em GUIDs
- Todas as operações assign/unassign podem trabalhar com múltiplos alvos de uma vez
**Requisitos de permissões:**
- Os comandos `list/view/enable/disable/assign/unassign` requerem **Permissão de Estratégia**
- `--peers` requer **Permissão de Dispositivo:r** (para pesquisa de ID para GUID)
- `--users` requer **Permissão de Usuário:r** (para pesquisa de nome de usuário para GUID)
- `--device-groups` requer **Permissão de Grupo de Dispositivos:r** (para pesquisa de nome de grupo para GUID)
---
#### Auditorias (`audits.py`)
**Mostrar ajuda:**
./audits.py -h
**Visualizar auditoria de conexões:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizar auditoria de arquivos:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizar auditoria de alarmes:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Visualizar auditoria de console:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**Filtros:**
--remote : ID do peer (para auditoria de conexão ou arquivos)
--conn-type : 0=Desktop Remoto, 1=Transferência de Arquivos, 2=Transferência de Portas, 3=Visualizar Câmera, 4=Terminal
--device : ID do dispositivo (para auditoria de alarmes)
--operator : nome do operador (para auditoria de console)
--created-at : filtro de horário local, ex: "2025-09-16 14:15:57"
--days-ago : filtra registros mais recentes do que n dias atrás
--page-size / --current : paginação
**Exemplo:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## Procurando por um dispositivo
1. Vá para Dispositivos.

View File

@ -0,0 +1,509 @@
---
title: Consolă web
weight: 10
---
Consola web este integrată în RustDesk Server Pro și rulează pe portul `21114`.
Funcționalități:
- Răsfoire dispozitive
- Adăugare/modificare utilizatori și grupuri de utilizatori
- Modificare permisiuni de acces ale dispozitivelor
- Răsfoire jurnale de conexiuni și alte jurnale
- Actualizare setări
- Management sincronizare setări client
- Gestionare agende partajate
- Generare build client personalizat
## Autentificare
Portul implicit al consolei web este 21114. Introdu `http://<adresa-serverului>:21114` în browser pentru a accesa consola, așa cum se arată în figura de mai jos. Numele de utilizator/parola implicită pentru administrator este `admin`/`test1234`:
![](/docs/en/self-host/rustdesk-server-pro/console/images/console-login.png)
Dacă ai nevoie de suport HTTPS, instalează un server web precum `Nginx` sau folosește `IIS` pe Windows.
După autentificare schimbă parola: din meniul contului (colțul din dreapta sus) selectează `Settings` pentru a intra pe pagina de modificare a parolei, așa cum se arată mai jos. Poți crea și un alt cont de administrator și șterge pe cel implicit. Este recomandat să activezi verificarea prin email la autentificare.
<a name=console-home></a>
![](/docs/en/self-host/rustdesk-server-pro/console/images/console-home.png?v2)
Utilizatorii non-administrator pot, de asemenea, să se autentifice pentru a-și vizualiza dispozitivele și jurnalele și pentru a-și modifica setările de utilizator.
## Configurări automate
Făcând click pe `Windows EXE` poți obține configurațiile pentru propriul RustDesk Server Pro — utile pentru configurarea clienților.
Pentru clienții Windows poți omite configurația serverului personalizat și pune informațiile de configurare direct în numele fișierului `rustdesk.exe`. Așa cum se arată mai sus, mergi la pagina de bun venit a consolei și apasă `Windows EXE`. **Client ≥ 1.1.9 necesar.**
Poți folosi aceasta în combinație cu [config client](https://rustdesk.com/docs/en/self-host/client-configuration/) și [scripturi de deployment](https://rustdesk.com/docs/en/self-host/client-deployment/) pentru a configura clienții.
## Crearea unui utilizator nou în afară de utilizatorul implicit `admin`
{{% notice note %}}
Planul `Individual` nu are această funcționalitate.
{{% /notice %}}
1. Click pe `Users` în meniul din stânga.
2. Creează un cont nou și activează `administrator`.
3. Autentifică-te cu noul cont administrativ.
4. Șterge utilizatorul `admin` din pagina `Users`.
## Crearea unui utilizator nou
1. Click pe `Users` în meniul din stânga.
2. Creează un utilizator nou.
3. Selectează grupul din care să facă parte (dacă trebuie să adaugi grupuri noi, vezi secțiunea următoare).
## Adăugarea unui grup nou
1. Click pe `Groups` în meniul din stânga.
2. Creează un grup nou.
3. După creare poți permite accesul între grupuri: click `Edit`.
4. Selectează grupurile relevante cărora vrei să le permiți acces (se adaugă automat în grupul corespunzător).
## Configurarea mai multor servere relay
1. Mergi la `Settings` în meniul din stânga.
2. Click pe `Relay` din submenu.
3. Apasă `+` lângă `Relay Servers`.
4. Introdu adresa DNS sau IP a serverului Relay și apasă <kbd>Enter</kbd>.
5. Dacă ai mai multe servere Relay continuă să apeși `+` și ajustează setările Geo dacă este necesar (amintește-ți să copiezi cheia către celelalte servere).
## Setare sau schimbare licență
1. Mergi la `Settings` în meniul din stânga.
2. Click pe `License` din submenu.
3. Apasă `Edit` și lipește codul licenței.
4. Apasă `OK`.
## Vizualizare jurnale
În meniul din stânga click pe `Logs`.
## Configurare emailuri
Exemplu folosind Gmail:
1. Mergi la `Settings` în meniul din stânga.
2. Click pe `SMTP` din submenu.
3. Introdu serverul SMTP `smtp.gmail.com`.
4. În `SMTP Port` introdu 587.
5. În `Mail Account` pune contul Gmail, ex. `myrustdeskserver@gmail.com`.
6. Introdu parola (s-ar putea să ai nevoie de o parolă de aplicație).
7. În `From` pune același cont Gmail `myrustdeskserver@gmail.com`.
8. Click `Check` pentru a salva.
## Atribuirea utilizatorilor/strategiilor/grupurilor de dispozitive prin Consola Web
Utilizatorul este contul RustDesk conectat pe dispozitiv sau atribuit dispozitivului prin click pe **Edit** lângă dispozitiv; click în câmpul **User** și alege din listă. Poți atribui în masă dispozitive unui utilizator din **User List****More → Assign Devices**.
Pentru a adăuga un dispozitiv într-un grup de dispozitive, click pe **Edit** lângă dispozitiv în **Device List** și modifică **Group**, sau mergi la lista **Device Groups**, click pe numele grupului și ajustează dispozitivele din acel grup.
Pentru a atribui o strategie unui dispozitiv, plasează cursorul în partea dreaptă a listei **Strategy** și click pe **Edit Devices**, **Edit Users** sau **Edit Device Groups** pentru a adăuga device-urile, dispozitivele utilizatorilor sau grupurile de dispozitive corespunzătoare strategiei selectate.
---
## Token API
Mai întâi trebuie să mergi la **Settings → Tokens → Create** și să creezi un token cu permisiunile necesare: **Device, Audit Log, User, Group, Strategy, Address Book**.
Odată creat, poți folosi aceste token-uri din linia de comandă sau din CLI Python pentru a efectua acțiuni cu permisiunile respective.
### Atribuire via token din linia de comandă
Poți folosi executabilul RustDesk cu parametrul `--assign` pentru a face atribuiri din linia de comandă:
Exemplu:
```bash
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
```
Parametri suportati
| Parameter | Descriere | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ------------------------------------- | ------------------- | --------------- |
| `--user_name <username>` | Atribuie un utilizator dispozitivului | | |
| `--strategy_name <strategyname>` | Atribuie o strategie dispozitivului | | |
| `--address_book_name <addressbookname>` | Atribuie dispozitivul la o agendă | | |
| `--address_book_tag <addressbooktag>` | Atribuire folosind tag-ul agendei | | |
| `--address_book_alias <alias>` | Atribuire folosind aliasul | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | Setează parola pentru înregistrare | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | Setează nota pentru înregistrare | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | Atribuie dispozitiv la grup | | |
| `--note <note>` | Adaugă o notă dispozitivului | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | Setează username pentru dispozitiv | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | Setează numele dispozitivului | 1.6.6 | 1.4.3 |
Linia de comandă pe Windows nu afișează output implicit. Pentru a obține output rulează comanda astfel: `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more` sau `"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String` (vezi discuție referință în repo).
### Unelte CLI Python
#### Management utilizatori (`users.py`)
**Afișează help:**
`./users.py -h`
**Vezi utilizatori:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**Filtre:**
- `--name`: username (căutare aproximativă)
- `--group_name`: grup utilizatori (potrivire exactă)
**Exemplu:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**Operații de bază:**
- **Dezactivează utilizator:**
`./users.py --url <url> --token <token> disable --name testuser`
- **Activează utilizator:**
`./users.py --url <url> --token <token> enable --name testuser`
- **Șterge utilizator:**
`./users.py --url <url> --token <token> delete --name testuser`
**Creare și invitare utilizatori:**
- **Creează utilizator nou:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "notă"]`
Necesar: `--name`, `--password`, `--group_name`
Opțional: `--email`, `--note`
- **Invită utilizator prin email:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "notă"]`
Necesar: `--email`, `--name`, `--group_name`
Opțional: `--note`
**Operații 2FA și securitate:**
- **Activează impunere 2FA:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
Necesar: `--web-console-url`
- **Dezactivează impunere 2FA:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
Opțional: `--web-console-url`
- **Resetează 2FA:**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **Dezactivează verificare email:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **Deconectare forțată:**
`./users.py --url <url> --token <token> force-logout --name username`
**Notă:**
- La operații pe mai mulți utilizatori (potriviți prin filtre), se va solicita confirmare
- Dacă nu există utilizatori potriviți, se va afișa "Found 0 users"
---
#### Management grupuri utilizatori (`user_group.py`)
**Afișează help:**
`./user_group.py -h`
**Vezi grupuri utilizatori:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemplu:**
`./user_group.py --url https://example.com --token <token> view --name "Echipa Vânzări"`
**Operații pe grupuri:**
- **Creează grup utilizatori:**
`./user_group.py --url <url> --token <token> add --name "NumeGrup" [--note "descriere"] [--accessed-from '<json>'] [--access-to '<json>']`
Exemplu cu control acces:
`./user_group.py --url <url> --token <token> add --name "Inginerie" --accessed-from '[{"type":0,"name":"Manageri"}]' --access-to '[{"type":1,"name":"Servere Dev"}]'`
- **Actualizează grup utilizatori:**
`./user_group.py --url <url> --token <token> update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '<json>'] [--access-to '<json>']`
- **Șterge grup utilizatori:**
`./user_group.py --url <url> --token <token> delete --name "NumeGrup"`
Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"`
**Management utilizatori în grupuri:**
- **Vezi utilizatori în grup:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
Filtre:
- `--name`: nume grup (potrivire exactă, opțional)
- `--user-name`: username (căutare aproximativă, opțional)
Exemplu:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **Adaugă utilizatori în grup:**
`./user_group.py --url <url> --token <token> add-users --name "NumeGrup" --users "user1,user2,user3"`
**Parametri control acces:**
- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de utilizatori
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Admins"}]`)
- Type 2 = Utilizator (ex. `[{"type":2,"name":"john"}]`)
- `--access-to`: array JSON ce definește la ce poate accesa acest grup de utilizatori
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Suport"}]`)
- Type 1 = Grup dispozitive (ex. `[{"type":1,"name":"Servere"}]`)
**Notă:** Folosiți ghilimele simple în jurul array-urilor JSON pentru a evita probleme de parsare shell.
**Cerințe de permisiuni:**
- Comenzile `view/add/update/delete/add-users` necesită **Permisiune Grup Utilizatori**
- Comanda `view-users` necesită **Permisiune Utilizator**
---
#### Management grupuri dispozitive (`device_group.py`)
**Afișează help:**
`./device_group.py -h`
**Vezi grupuri dispozitive:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**Exemplu:**
`./device_group.py --url https://example.com --token <token> view`
**Operații pe grupuri:**
- **Creează grup dispozitive:**
`./device_group.py --url <url> --token <token> add --name "NumeGrup" [--note "descriere"] [--accessed-from '<json>']`
Exemplu:
`./device_group.py --url <url> --token <token> add --name "Producție" --accessed-from '[{"type":0,"name":"Admins"}]'`
- **Actualizează grup dispozitive:**
`./device_group.py --url <url> --token <token> update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '<json>']`
- **Șterge grup dispozitive:**
`./device_group.py --url <url> --token <token> delete --name "NumeGrup"`
Suportă nume separate prin virgulă: `--name "Grup1,Grup2,Grup3"`
**Management dispozitive în grupuri:**
- **Vezi dispozitive în grup:**
`./device_group.py --url <url> --token <token> view-devices [filtre]`
Filtre disponibile:
- `--name`: nume grup dispozitive (potrivire exactă)
- `--id`: ID dispozitiv (căutare aproximativă)
- `--device-name`: nume dispozitiv (căutare aproximativă)
- `--user-name`: username/proprietar (căutare aproximativă)
- `--device-username`: username conectat pe dispozitiv (căutare aproximativă)
Exemple:
```bash
# Vezi toate dispozitivele dintr-un grup
./device_group.py --url <url> --token <token> view-devices --name Producție
# Caută după nume dispozitiv
./device_group.py --url <url> --token <token> view-devices --device-name server
# Combină filtre
./device_group.py --url <url> --token <token> view-devices --name Producție --user-name john
```
- **Vezi grupuri dispozitive accesibile:**
`./device_group.py --url <url> --token <token> accessible`
Afișează toate grupurile de dispozitive accesibile utilizatorului curent.
- **Adaugă dispozitive în grup:**
`./device_group.py --url <url> --token <token> add-devices --name "NumeGrup" --ids "deviceid1,deviceid2"`
- **Elimină dispozitive din grup:**
`./device_group.py --url <url> --token <token> remove-devices --name "NumeGrup" --ids "deviceid1,deviceid2"`
**Parametru control acces:**
- `--accessed-from`: array JSON ce definește cine poate accesa acest grup de dispozitive
- Type 0 = Grup utilizatori (ex. `[{"type":0,"name":"Ingineri"}]`)
- Type 2 = Utilizator (ex. `[{"type":2,"name":"admin"}]`)
**Cerințe permisiuni:**
- Comenzile `view/add/update/delete/add-devices/remove-devices` necesită **Permisiune Grup Dispozitive**
- Comanda `view-devices` necesită **Permisiune Dispozitiv**
---
#### Management dispozitive (`devices.py`)
**Afișează help:**
`./devices.py -h`
**Vezi dispozitive:**
`./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]`
**Filtre:**
`--id`: ID dispozitiv
`--device_name`: nume dispozitiv
`--user_name`: utilizator atribuit
`--group_name`: grup utilizatori
`--device_group_name`: grup dispozitive
`--offline_days`: zile de când este offline
**Exemplu:**
`./devices.py --url https://example.com --token <token> view --user_name mike`
**Operații:**
`view` poate fi înlocuit cu `enable`, `disable`, `delete`, sau `assign`.
**Exemplu (atribuie device):**
`./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike`
---
#### Management agendă (`ab.py`)
**Afișează help:**
`./ab.py -h`
**Vezi agende partajate:**
`./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]`
**Obține GUID-ul agendei personale:**
`./ab.py --url <url> --token <token> get-personal-ab`
**Adaugă o agendă partajată:**
`./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]`
**Actualizează sau șterge o agendă partajată:**
`./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]`
`./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>`
**Vezi peer-ii dintr-o agendă:**
`./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]`
**Adaugă/actualizează/șterge un peer:**
`./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]`
`./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]`
`./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>`
**Management tag-uri:**
`./ab.py --url <url> --token <token> view-tag --ab-guid <guid>`
`./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]`
`./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000`
`./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>`
**Management reguli de acces:**
`./ab.py --url <url> --token <token> view-rule --ab-guid <guid>`
`./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full`
`./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw`
`./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>`
**Exemplu (adaugă regulă read-only pentru utilizatorul "mike"):**
`./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro`
---
#### Gestionarea Strategiilor (`strategies.py`)
**Afișați ajutor:**
`./strategies.py -h`
**Listați toate strategiile:**
`./strategies.py --url <url> --token <token> list`
**Vezi o strategie specifică:**
```bash
# După nume
./strategies.py --url <url> --token <token> view --name "Default"
# După GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**Activați sau dezactivați o strategie:**
```bash
./strategies.py --url <url> --token <token> enable --name "NumeStrategie"
./strategies.py --url <url> --token <token> disable --name "NumeStrategie"
```
**Atribuiți strategia dispozitivelor, utilizatorilor sau grupurilor de dispozitive:**
```bash
# Atribuiți dispozitivelor (după ID dispozitiv)
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# Atribuiți utilizatorilor (după nume utilizator)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# Atribuiți grupurilor de dispozitive (după nume grup)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# Atribuire mixtă
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**Anulați atribuirea strategiei:**
```bash
# Anulați de la dispozitive
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# Anulați de la utilizatori
./strategies.py --url <url> --token <token> unassign --users "admin"
# Anulați de la grupuri de dispozitive
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**Note:**
- Scriptul acceptă atât nume cât și GUID-uri pentru utilizatori și grupuri de dispozitive
- ID-urile dispozitivelor sunt convertite automat în GUID-uri
- Toate operațiunile assign/unassign pot lucra cu mai multe ținte simultan
**Cerințe de permisiuni:**
- Comenzile `list/view/enable/disable/assign/unassign` necesită **Permisiune Strategie**
- `--peers` necesită **Permisiune Dispozitiv:r** (pentru căutarea ID la GUID)
- `--users` necesită **Permisiune Utilizator:r** (pentru căutarea nume utilizator la GUID)
- `--device-groups` necesită **Permisiune Grup Dispozitive:r** (pentru căutarea nume grup la GUID)
---
#### Audits (`audits.py`)
**Afișează help:**
`./audits.py -h`
**Vezi audituri conexiuni:**
`./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**Vezi audituri fișiere:**
`./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**Vezi audituri alarme:**
`./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**Vezi audituri consolă:**
`./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]`
**Filtre:**
`--remote`: Peer ID (pentru conexiuni sau audituri fișiere)
`--conn-type`: 0=Remote Desktop, 1=File Transfer, 2=Port Transfer, 3=View Camera, 4=Terminal
`--device`: ID dispozitiv (pentru audit alarme)
`--operator`: username operator (pentru audit consolă)
`--created-at`: Filtru după timp local, ex. "2025-09-16 14:15:57"
`--days-ago`: Filtru pentru înregistrări mai noi decât numărul de zile
`--page-size` / `--current`: Paginare
**Exemplu:**
`./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7`
## Căutarea unui dispozitiv
1. Mergi la Devices.
2. În câmpul Device Name tastează numele și apasă `Query` sau <kbd>Enter</kbd>.
3. Pentru wildcard adaugă `%` la început, sfârșit sau ambele părți ale termenului de căutare.

View File

@ -88,18 +88,448 @@ weight: 10
7. 在 `发件人` 中输入您的 Gmail 账户,例如 `myrustdeskserver@gmail.com`
8. 点击 `检查` 保存。
## 将设备用户/组/策略/设备组分配给设备
用户是登录在设备上的 RustDesk 用户,或通过点击设备旁边的 `编辑` 分配给设备的用户,点击 `用户` 框并从下拉菜单中选择您的用户,这将根据用户被分配到的组自动分配组。
## 通过 Web Console 分配设备用户 / 策略 / 设备组
这也可以通过 API 在部署时或之后在命令行中完成,调用 RustDesk 可执行文件后跟 `--assign --token <生成的令牌> --user_name <用户名>`。您需要先进入 `设置 → 令牌 → 创建` 并创建具有设备权限的令牌。在 Windows 上的示例为 `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <生成的令牌> --user_name <新用户>`
**用户 (User)** 指的是在设备上登录的 RustDesk 用户,或在 **设备列表** 中点击设备旁边的 **Edit编辑**,然后在 **User用户** 框中下拉选择要分配的用户。
你也可以在 **用户列表 (User List)** 中点击 **More → Assign Devices** 来批量分配设备给某个用户。
您也可以通过这种方式分配策略,例如 `--assign --token <生成的令牌> --strategy_name <策略名称>`
要将设备添加到某个设备组,可以在 **设备列表 (Device List)** 中点击设备旁的 **Edit编辑** 并更改 **Group**
或者进入 **设备组列表 (Device Groups)**,点击某个设备组名称,在该组中调整包含的设备。
您也可以通过这种方式分配通讯录,例如 `--assign --token <生成的令牌> --address_book_name <通讯录名称>``--assign --token <生成的令牌> --address_book_name <通讯录名称> --address_book_tag <通讯录标签> --address_book_alias <别名>`。`--address_book_alias` 需要 RustDesk 服务器专业版 >=1.5.8 和客户端 >=1.4.1。
要为设备分配策略,可以将鼠标悬停在 **策略列表 (Strategy List)** 的右侧,点击菜单中的 **Edit Devices编辑设备**、**Edit Users编辑用户** 或 **Edit Device Groups编辑设备组**
以添加对应的设备、用户设备或设备组设备到所选策略中。
您也可以通过这种方式分配设备组名称,例如 `--assign --token <生成的令牌> --device_group_name <设备组名称>`
---
## API 令牌Token
首先,请前往 **Settings → Tokens → Create** 创建一个具有所需权限的令牌,所需权限包括:
**Device, Audit Log, User, Group, Strategy, Address Book**。
创建完成后,可以通过 **命令行 (Command Line)****Python CLI** 使用这些令牌执行相应权限的操作。
### 使用命令行令牌分配
你也可以使用 RustDesk 可执行文件并带上 `--assign` 参数来执行分配操作。
这可以让你在命令行中直接将用户、策略、地址簿或设备组分配给设备。
**示例:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
**支持的参数:**
| 参数名 | 说明 | RustDesk Server Pro | RustDesk Client |
| ------- | ---- | ------------------- | ---------------- |
| `--user_name <username>` | 为设备分配用户 | | |
| `--strategy_name <strategyname>` | 为设备分配策略 | | |
| `--address_book_name <addressbookname>` | 将设备分配到地址簿 | | |
| `--address_book_tag <addressbooktag>` | 按标签分配地址簿 | | |
| `--address_book_alias <alias>` | 设置地址簿别名 | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | 为地址簿条目设置密码 | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | 为地址簿条目添加备注 | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | 将设备分配到设备组 | | |
| `--note <note>` | 为设备添加备注 | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | 设置设备用户名 | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | 设置设备名称 | 1.6.6 | 1.4.3 |
Windows 命令行默认无输出,如需查看输出,可使用如下方式运行:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
详情参考RustDesk 讨论区相关评论链接(原文处有链接)。
---
### Python CLI 管理工具
#### 用户管理 (`users.py`)
**查看帮助:**
`./users.py -h`
**查看用户:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**过滤条件:**
- `--name`:用户名(模糊搜索)
- `--group_name`:用户组名(精确匹配)
**示例:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**基本操作:**
- **禁用用户:**
`./users.py --url <url> --token <token> disable --name testuser`
- **启用用户:**
`./users.py --url <url> --token <token> enable --name testuser`
- **删除用户:**
`./users.py --url <url> --token <token> delete --name testuser`
**用户创建和邀请:**
- **创建新用户:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "备注"]`
必需参数:`--name`、`--password`、`--group_name`
可选参数:`--email`、`--note`
- **通过邮箱邀请用户:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "备注"]`
必需参数:`--email`、`--name`、`--group_name`
可选参数:`--note`
**2FA 和安全操作:**
- **启用 2FA 强制要求:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
必需参数:`--web-console-url`
- **禁用 2FA 强制要求:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
可选参数:`--web-console-url`
- **重置 2FA**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **禁用邮箱验证:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **强制登出:**
`./users.py --url <url> --token <token> force-logout --name username`
**注意事项:**
- 当操作多个用户时(通过过滤器匹配),系统会提示确认
- 如果没有匹配的用户,将显示 "Found 0 users"
---
#### 用户组管理 (`user_group.py`)
**查看帮助:**
`./user_group.py -h`
**查看用户组:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**示例:**
`./user_group.py --url https://example.com --token <token> view --name "销售团队"`
**组操作:**
- **创建用户组:**
`./user_group.py --url <url> --token <token> add --name "组名" [--note "描述"] [--accessed-from '<json>'] [--access-to '<json>']`
带访问控制的示例:
`./user_group.py --url <url> --token <token> add --name "工程部" --accessed-from '[{"type":0,"name":"管理层"}]' --access-to '[{"type":1,"name":"开发服务器"}]'`
- **更新用户组:**
`./user_group.py --url <url> --token <token> update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '<json>'] [--access-to '<json>']`
- **删除用户组:**
`./user_group.py --url <url> --token <token> delete --name "组名"`
支持逗号分隔的多个组名:`--name "组1,组2,组3"`
**组内用户管理:**
- **查看组内用户:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
过滤条件:
- `--name`:组名(精确匹配,可选)
- `--user-name`:用户名(模糊搜索,可选)
示例:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **添加用户到组:**
`./user_group.py --url <url> --token <token> add-users --name "组名" --users "user1,user2,user3"`
**访问控制参数:**
- `--accessed-from`:定义谁可以访问此用户组的 JSON 数组
- Type 0 = 用户组(例如:`[{"type":0,"name":"管理员"}]`
- Type 2 = 用户(例如:`[{"type":2,"name":"john"}]`
- `--access-to`:定义此用户组可以访问什么的 JSON 数组
- Type 0 = 用户组(例如:`[{"type":0,"name":"支持"}]`
- Type 1 = 设备组(例如:`[{"type":1,"name":"服务器"}]`
**注意:** 使用单引号包围 JSON 数组以避免 shell 解析问题。
**权限要求:**
- `view/add/update/delete/add-users` 命令需要 **用户组权限**
- `view-users` 命令需要 **用户权限**
---
#### 设备组管理 (`device_group.py`)
**查看帮助:**
`./device_group.py -h`
**查看设备组:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**示例:**
`./device_group.py --url https://example.com --token <token> view`
**组操作:**
- **创建设备组:**
`./device_group.py --url <url> --token <token> add --name "组名" [--note "描述"] [--accessed-from '<json>']`
示例:
`./device_group.py --url <url> --token <token> add --name "生产环境" --accessed-from '[{"type":0,"name":"管理员"}]'`
- **更新设备组:**
`./device_group.py --url <url> --token <token> update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '<json>']`
- **删除设备组:**
`./device_group.py --url <url> --token <token> delete --name "组名"`
支持逗号分隔的多个组名:`--name "组1,组2,组3"`
**组内设备管理:**
- **查看组内设备:**
`./device_group.py --url <url> --token <token> view-devices [过滤条件]`
可用的过滤条件:
- `--name`:设备组名(精确匹配)
- `--id`:设备 ID模糊搜索
- `--device-name`:设备名称(模糊搜索)
- `--user-name`:用户名/所有者(模糊搜索)
- `--device-username`:设备上登录的用户名(模糊搜索)
示例:
```bash
# 查看组内所有设备
./device_group.py --url <url> --token <token> view-devices --name 生产环境
# 按设备名搜索
./device_group.py --url <url> --token <token> view-devices --device-name server
# 组合过滤条件
./device_group.py --url <url> --token <token> view-devices --name 生产环境 --user-name john
```
- **添加设备到组:**
`./device_group.py --url <url> --token <token> add-devices --name "组名" --ids "deviceid1,deviceid2"`
- **从组中移除设备:**
`./device_group.py --url <url> --token <token> remove-devices --name "组名" --ids "deviceid1,deviceid2"`
**访问控制参数:**
- `--accessed-from`:定义谁可以访问此设备组的 JSON 数组
- Type 0 = 用户组(例如:`[{"type":0,"name":"工程师"}]`
- Type 2 = 用户(例如:`[{"type":2,"name":"admin"}]`
**权限要求:**
- `view/add/update/delete/add-devices/remove-devices` 命令需要 **设备组权限**
- `view-devices` 命令需要 **设备权限**
---
#### 设备管理 (`devices.py`)
**查看帮助:**
./devices.py -h
**查看设备:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**过滤条件:**
`--id`:设备 ID
`--device_name`:设备名称
`--user_name`:分配的用户
`--group_name`:用户组
`--device_group_name`:设备组
`--offline_days`:离线天数
**示例:**
./devices.py --url https://example.com --token <token> view --user_name mike
**操作命令:**
`view` 可替换为 `enable`(启用)、`disable`(禁用)、`delete`(删除)或 `assign`(分配)。
**示例(分配设备):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### 地址簿管理 ab.py
**查看帮助:**
./ab.py -h
**查看共享地址簿:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**获取个人地址簿 GUID**
./ab.py --url <url> --token <token> get-personal-ab
**添加共享地址簿:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**更新或删除共享地址簿:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**查看地址簿中的设备peer**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**添加、更新或删除设备peer**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**标签管理:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**访问规则管理:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**示例(为用户 mike 添加只读权限):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### 策略管理 (`strategies.py`)
**查看帮助:**
`./strategies.py -h`
**列出所有策略:**
`./strategies.py --url <url> --token <token> list`
**查看指定策略:**
```bash
# 通过名称
./strategies.py --url <url> --token <token> view --name "Default"
# 通过 GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**启用或禁用策略:**
```bash
./strategies.py --url <url> --token <token> enable --name "策略名称"
./strategies.py --url <url> --token <token> disable --name "策略名称"
```
**分配策略到设备、用户或设备组:**
```bash
# 分配到设备(使用设备 ID
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# 分配到用户(使用用户名)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# 分配到设备组(使用组名)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# 混合分配
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**取消分配策略:**
```bash
# 取消设备的策略
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# 取消用户的策略
./strategies.py --url <url> --token <token> unassign --users "admin"
# 取消设备组的策略
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**注意事项:**
- 脚本支持用户和设备组的名称或 GUID
- 设备 ID 会自动转换为 GUID
- 所有 assign/unassign 操作都支持同时操作多个目标
**权限要求:**
- `list/view/enable/disable/assign/unassign` 命令需要 **策略权限**
- `--peers` 需要 **设备权限:r**(用于 ID 到 GUID 的查找)
- `--users` 需要 **用户权限:r**(用于用户名到 GUID 的查找)
- `--device-groups` 需要 **设备组权限:r**(用于组名到 GUID 的查找)
---
#### 审计日志 audits.py
**查看帮助:**
./audits.py -h
**查看连接审计:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看文件审计:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看告警审计:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看控制台操作审计:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**过滤条件:**
`--remote`:对端 ID用于连接或文件审计
`--conn-type`连接类型0=远程桌面1=文件传输2=端口转发3=查看摄像头4=终端)
`--device`:设备 ID用于告警审计
`--operator`:操作员用户名(用于控制台审计)
`--created-at`:本地时间过滤,如 `"2025-09-16 14:15:57"`
`--days-ago`:筛选指定天数内的记录
`--page-size` / `--current`:分页参数
**示例:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
Windows 上的命令行默认没有输出。要获得输出,请这样运行:`"C:\Program Files\RustDesk\rustdesk.exe" <参数1> <参数2> ... | more` 或 `"C:\Program Files\RustDesk\rustdesk.exe" <参数1> <参数2> ... | Out-String`,参见[这里](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。
## 搜索设备
1. 进入设备页面。

View File

@ -88,18 +88,445 @@ weight: 10
7. 在 `寄件者` 中輸入您的 Gmail 帳號,例如 `myrustdeskserver@gmail.com`
8. 點選 `檢查` 儲存。
## 將裝置使用者/群組/策略/裝置群組指派給裝置
使用者是登入在裝置上的 RustDesk 使用者,或透過點選裝置旁邊的 `編輯` 指派給裝置的使用者,點選 `使用者` 方塊並從下拉式選單中選擇您的使用者,這將根據使用者被指派到的群組自動指派群組。
## 透過 Web 控制台分配設備使用者/策略/設備群組
這也可以透過 API 在部署時或之後在命令列中完成,呼叫 RustDesk 執行檔後接 `--assign --token <產生的權杖> --user_name <使用者名稱>`。您需要先進入 `設定 → 權杖 → 建立` 並建立具有裝置權限的權杖。在 Windows 上的範例為 `"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <產生的權杖> --user_name <新使用者>`
使用者是已登入該設備的 RustDesk 使用者,或可透過點擊設備旁的 **編輯**,在 **使用者** 欄位中從下拉選單選擇使用者來分配。
也可以透過在 **使用者列表** 點擊 **更多 → 分配設備**,批次將設備分配給使用者。
您也可以透過這種方式指派策略,例如 `--assign --token <產生的權杖> --strategy_name <策略名稱>`
若要將設備加入設備群組,可在 **設備列表** 中點擊設備旁的 **編輯**,修改 **群組**,或前往 **設備群組** 列表,點擊群組名稱並調整該群組內的設備
您也可以透過這種方式指派通訊錄,例如 `--assign --token <產生的權杖> --address_book_name <通訊錄名稱>``--assign --token <產生的權杖> --address_book_name <通訊錄名稱> --address_book_tag <通訊錄標籤> --address_book_alias <別名>`。`--address_book_alias` 需要 RustDesk 伺服器專業版 >=1.5.8 和客戶端 >=1.4.1
若要將策略分配給設備,將滑鼠移至 **策略** 列表右側,並在選單中點擊 **編輯設備**、**編輯使用者** 或 **編輯設備群組**,將對應的設備、使用者設備或群組設備加入所選策略
您也可以透過這種方式指派裝置群組名稱,例如 `--assign --token <產生的權杖> --device_group_name <裝置群組名稱>`。
---
Windows 上的命令列預設沒有輸出。要取得輸出,請這樣執行:`"C:\Program Files\RustDesk\rustdesk.exe" <參數1> <參數2> ... | more` 或 `"C:\Program Files\RustDesk\rustdesk.exe" <參數1> <參數2> ... | Out-String`,參見[這裡](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。
## API Token
首先,需前往 **設定 → Token → 建立**,並建立擁有所需權限的權杖:**設備、審計日誌、使用者、群組、策略、通訊錄**。
建立後,可透過 **命令列****Python CLI** 使用這些權杖,執行擁有相應權限的操作。
### 透過命令列使用Token分配
也可以使用 RustDesk 可執行檔搭配 `--assign` 參數進行分配。
這可直接透過命令列將使用者、策略、通訊錄或設備群組分配給設備。
**範例:**
"C:\Program Files\RustDesk\rustdesk.exe" --assign --token <generatedtoken> --user_name <username>
支援參數
| 參數 | 說明 | RustDesk Server Pro | RustDesk Client |
| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- |
| `--user_name <username>` | 將使用者分配給設備 | | |
| `--strategy_name <strategyname>` | 將策略分配給設備 | | |
| `--address_book_name <addressbookname>` | 將設備分配給通訊錄 | | |
| `--address_book_tag <addressbooktag>` | 使用通訊錄標籤進行分配 | | |
| `--address_book_alias <alias>` | 使用通訊錄別名進行分配 | 1.5.8 | 1.4.1 |
| `--address_book_password <password>` | 設定通訊錄條目的密碼 | 1.6.6 | 1.4.3 |
| `--address_book_note <note>` | 設定通訊錄條目的備註 | 1.6.6 | 1.4.3 |
| `--device_group_name <devicegroupname>` | 將設備分配到設備群組 | | |
| `--note <note>` | 為設備添加備註 | 1.6.6 | 1.4.3 |
| `--device_username <device_username>` | 設定設備使用者名稱 | 1.6.6 | 1.4.3 |
| `--device_name <device_name>` | 設定設備名稱 | 1.6.6 | 1.4.3 |
Windows 命令列預設不會輸出結果。若要查看輸出,可使用:
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | more
"C:\Program Files\RustDesk\rustdesk.exe" <arg1> <arg2> ... | Out-String
詳情參考 [這裡](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。
### Python CLI 管理工具
#### 使用者管理 (`users.py`)
**顯示幫助:**
`./users.py -h`
**查看使用者:**
`./users.py --url <url> --token <token> view [--name <username>] [--group_name <group_name>]`
**篩選條件:**
- `--name`:使用者名稱(模糊搜尋)
- `--group_name`:使用者群組名稱(精確匹配)
**範例:**
`./users.py --url https://example.com --token <token> view --group_name Default`
**基本操作:**
- **停用使用者:**
`./users.py --url <url> --token <token> disable --name testuser`
- **啟用使用者:**
`./users.py --url <url> --token <token> enable --name testuser`
- **刪除使用者:**
`./users.py --url <url> --token <token> delete --name testuser`
**使用者建立和邀請:**
- **建立新使用者:**
`./users.py --url <url> --token <token> new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "備註"]`
必要參數:`--name`、`--password`、`--group_name`
選用參數:`--email`、`--note`
- **透過電子郵件邀請使用者:**
`./users.py --url <url> --token <token> invite --email user@example.com --name username --group_name Default [--note "備註"]`
必要參數:`--email`、`--name`、`--group_name`
選用參數:`--note`
**2FA 和安全操作:**
- **啟用 2FA 強制要求:**
`./users.py --url <url> --token <token> enable-2fa-enforce --name username --web-console-url <console_url>`
必要參數:`--web-console-url`
- **停用 2FA 強制要求:**
`./users.py --url <url> --token <token> disable-2fa-enforce --name username [--web-console-url <console_url>]`
選用參數:`--web-console-url`
- **重設 2FA**
`./users.py --url <url> --token <token> reset-2fa --name username`
- **停用電子郵件驗證:**
`./users.py --url <url> --token <token> disable-email-verification --name username`
- **強制登出:**
`./users.py --url <url> --token <token> force-logout --name username`
**注意事項:**
- 當操作多個使用者時(透過篩選器匹配),系統會提示確認
- 如果沒有匹配的使用者,將顯示 "Found 0 users"
---
#### 使用者群組管理 (`user_group.py`)
**顯示幫助:**
`./user_group.py -h`
**查看使用者群組:**
`./user_group.py --url <url> --token <token> view [--name <group_name>]`
**範例:**
`./user_group.py --url https://example.com --token <token> view --name "銷售團隊"`
**群組操作:**
- **建立使用者群組:**
`./user_group.py --url <url> --token <token> add --name "群組名稱" [--note "描述"] [--accessed-from '<json>'] [--access-to '<json>']`
帶存取控制的範例:
`./user_group.py --url <url> --token <token> add --name "工程部" --accessed-from '[{"type":0,"name":"管理層"}]' --access-to '[{"type":1,"name":"開發伺服器"}]'`
- **更新使用者群組:**
`./user_group.py --url <url> --token <token> update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '<json>'] [--access-to '<json>']`
- **刪除使用者群組:**
`./user_group.py --url <url> --token <token> delete --name "群組名稱"`
支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"`
**群組內使用者管理:**
- **查看群組內使用者:**
`./user_group.py --url <url> --token <token> view-users [--name <group_name>] [--user-name <username>]`
篩選條件:
- `--name`:群組名稱(精確匹配,選用)
- `--user-name`:使用者名稱(模糊搜尋,選用)
範例:
`./user_group.py --url <url> --token <token> view-users --name Default --user-name john`
- **新增使用者到群組:**
`./user_group.py --url <url> --token <token> add-users --name "群組名稱" --users "user1,user2,user3"`
**存取控制參數:**
- `--accessed-from`:定義誰可以存取此使用者群組的 JSON 陣列
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"管理員"}]`
- Type 2 = 使用者(例如:`[{"type":2,"name":"john"}]`
- `--access-to`:定義此使用者群組可以存取什麼的 JSON 陣列
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"支援"}]`
- Type 1 = 設備群組(例如:`[{"type":1,"name":"伺服器"}]`
**注意:** 使用單引號包圍 JSON 陣列以避免 shell 解析問題。
**權限要求:**
- `view/add/update/delete/add-users` 命令需要 **使用者群組權限**
- `view-users` 命令需要 **使用者權限**
---
#### 設備群組管理 (`device_group.py`)
**顯示幫助:**
`./device_group.py -h`
**查看設備群組:**
`./device_group.py --url <url> --token <token> view [--name <group_name>]`
**範例:**
`./device_group.py --url https://example.com --token <token> view`
**群組操作:**
- **建立設備群組:**
`./device_group.py --url <url> --token <token> add --name "群組名稱" [--note "描述"] [--accessed-from '<json>']`
範例:
`./device_group.py --url <url> --token <token> add --name "生產環境" --accessed-from '[{"type":0,"name":"管理員"}]'`
- **更新設備群組:**
`./device_group.py --url <url> --token <token> update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '<json>']`
- **刪除設備群組:**
`./device_group.py --url <url> --token <token> delete --name "群組名稱"`
支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"`
**群組內設備管理:**
- **查看群組內設備:**
`./device_group.py --url <url> --token <token> view-devices [篩選條件]`
可用的篩選條件:
- `--name`:設備群組名稱(精確匹配)
- `--id`:設備 ID模糊搜尋
- `--device-name`:設備名稱(模糊搜尋)
- `--user-name`:使用者名稱/擁有者(模糊搜尋)
- `--device-username`:設備上登入的使用者名稱(模糊搜尋)
範例:
```bash
# 查看群組內所有設備
./device_group.py --url <url> --token <token> view-devices --name 生產環境
# 按設備名稱搜尋
./device_group.py --url <url> --token <token> view-devices --device-name server
# 組合篩選條件
./device_group.py --url <url> --token <token> view-devices --name 生產環境 --user-name john
```
- **查看可存取的設備群組:**
顯示目前使用者可存取的所有設備群組。
- **新增設備到群組:**
`./device_group.py --url <url> --token <token> add-devices --name "群組名稱" --ids "deviceid1,deviceid2"`
- **從群組中移除設備:**
`./device_group.py --url <url> --token <token> remove-devices --name "群組名稱" --ids "deviceid1,deviceid2"`
**存取控制參數:**
- `--accessed-from`:定義誰可以存取此設備群組的 JSON 陣列
- Type 0 = 使用者群組(例如:`[{"type":0,"name":"工程師"}]`
- Type 2 = 使用者(例如:`[{"type":2,"name":"admin"}]`
**權限要求:**
- `view/add/update/delete/add-devices/remove-devices` 命令需要 **設備群組權限**
- `view-devices` 命令需要 **設備權限**
---
#### 設備管理 (`devices.py`)
**顯示幫助:**
./devices.py -h
**查看設備:**
./devices.py --url <url> --token <token> view [--id <device_id>] [--device_name <device_name>] [--user_name <user_name>] [--group_name <group_name>] [--device_group_name <device_group_name>] [--offline_days <days>]
**篩選條件:**
--id : 設備 ID
--device_name : 設備名稱
--user_name : 分配的使用者
--group_name : 使用者群組
--device_group_name : 設備群組
--offline_days : 離線天數
**範例:**
./devices.py --url https://example.com --token <token> view --user_name mike
**操作:**
`view` 可替換為 `enable`、`disable`、`delete` 或 `assign`
**範例(分配設備):**
./devices.py --url https://example.com --token <token> assign --device_name PC01 --assign_to user_name=mike
---
#### 通訊錄管理 (`ab.py`)
**顯示幫助:**
./ab.py -h
**查看共享通訊錄:**
./ab.py --url <url> --token <token> view-ab [--ab-name <address_book_name>]
**取得個人通訊錄 GUID**
./ab.py --url <url> --token <token> get-personal-ab
**新增共享通訊錄:**
./ab.py --url <url> --token <token> add-ab --ab-name <name> [--note <note>] [--password <password>]
**更新或刪除共享通訊錄:**
./ab.py --url <url> --token <token> update-ab --ab-guid <guid> [--ab-update-name <new_name>] [--note <note>]
./ab.py --url <url> --token <token> delete-ab --ab-guid <guid>
**查看通訊錄中的 peer**
./ab.py --url <url> --token <token> view-peer --ab-guid <guid> [--peer-id <peer_id>] [--alias <alias>]
**新增、更新或刪除 peer**
./ab.py --url <url> --token <token> add-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> update-peer --ab-guid <guid> --peer-id <peer_id> [--alias <alias>] [--note <note>] [--tags tag1,tag2]
./ab.py --url <url> --token <token> delete-peer --ab-guid <guid> --peer-id <peer_id>
**標籤管理:**
./ab.py --url <url> --token <token> view-tag --ab-guid <guid>
./ab.py --url <url> --token <token> add-tag --ab-guid <guid> --tag-name <name> [--tag-color 0xFF00FF00]
./ab.py --url <url> --token <token> update-tag --ab-guid <guid> --tag-name <name> --tag-color 0xFFFF0000
./ab.py --url <url> --token <token> delete-tag --ab-guid <guid> --tag-name <name>
**存取規則管理:**
./ab.py --url <url> --token <token> view-rule --ab-guid <guid>
./ab.py --url <url> --token <token> add-rule --ab-guid <guid> [--rule-type user|group|everyone] [--rule-user <user>] [--rule-group <group>] --rule-permission ro|rw|full
./ab.py --url <url> --token <token> update-rule --rule-guid <rule_guid> --rule-permission rw
./ab.py --url <url> --token <token> delete-rule --rule-guid <rule_guid>
**範例(為使用者 "mike" 新增唯讀規則):**
./ab.py --url https://example.com --token <token> add-rule --ab-guid <guid> --rule-user mike --rule-permission ro
---
#### 策略管理 (`strategies.py`)
**顯示幫助:**
`./strategies.py -h`
**列出所有策略:**
`./strategies.py --url <url> --token <token> list`
**查看指定策略:**
```bash
# 通過名稱
./strategies.py --url <url> --token <token> view --name "Default"
# 通過 GUID
./strategies.py --url <url> --token <token> view --guid "01983006-fcca-7c12-9a91-b1df483c6073"
```
**啟用或禁用策略:**
```bash
./strategies.py --url <url> --token <token> enable --name "策略名稱"
./strategies.py --url <url> --token <token> disable --name "策略名稱"
```
**分配策略到設備、使用者或設備群組:**
```bash
# 分配到設備(使用設備 ID
./strategies.py --url <url> --token <token> assign --name "Default" --peers "1849118658,1337348840"
# 分配到使用者(使用使用者名稱)
./strategies.py --url <url> --token <token> assign --name "Default" --users "admin,user1"
# 分配到設備群組(使用群組名稱)
./strategies.py --url <url> --token <token> assign --name "Default" --device-groups "device_group1,Production"
# 混合分配
./strategies.py --url <url> --token <token> assign \
--name "Default" \
--peers "1849118658" \
--users "admin" \
--device-groups "device_group1"
```
**取消分配策略:**
```bash
# 取消設備的策略
./strategies.py --url <url> --token <token> unassign --peers "1849118658,1337348840"
# 取消使用者的策略
./strategies.py --url <url> --token <token> unassign --users "admin"
# 取消設備群組的策略
./strategies.py --url <url> --token <token> unassign --device-groups "device_group1"
```
**注意事項:**
- 腳本支援使用者和設備群組的名稱或 GUID
- 設備 ID 會自動轉換為 GUID
- 所有 assign/unassign 操作都支援同時操作多個目標
**權限要求:**
- `list/view/enable/disable/assign/unassign` 命令需要 **策略權限**
- `--peers` 需要 **設備權限:r**(用於 ID 到 GUID 的查找)
- `--users` 需要 **使用者權限:r**(用於使用者名稱到 GUID 的查找)
- `--device-groups` 需要 **設備群組權限:r**(用於群組名稱到 GUID 的查找)
---
#### 稽核 (`audits.py`)
**顯示幫助:**
./audits.py -h
**查看連線稽核:**
./audits.py --url <url> --token <token> view-conn [--remote <peer_id>] [--conn-type <type>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看檔案稽核:**
./audits.py --url <url> --token <token> view-file [--remote <peer_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看警示稽核:**
./audits.py --url <url> --token <token> view-alarm [--device <device_id>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**查看控制台稽核:**
./audits.py --url <url> --token <token> view-console [--operator <username>] [--page-size <n>] [--current <n>] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago <n>]
**篩選條件:**
--remote : peer ID連線或檔案稽核用
--conn-type : 0=遠端桌面, 1=檔案傳輸, 2=端口傳輸, 3=觀看攝影機, 4=終端機
--device : 設備 ID警示稽核用
--operator : 操作者使用者名稱(控制台稽核用)
--created-at : 本地時間篩選,例如 "2025-09-16 14:15:57"
--days-ago : 篩選 n 天內的紀錄
--page-size / --current : 分頁
**範例:**
./audits.py --url https://example.com --token <token> view-conn --remote 123456789 --days-ago 7
## 搜尋裝置
1. 進入裝置頁面。

View File

@ -0,0 +1,413 @@
---
title: Întrebări frecvente (FAQ)
description: "Întrebări frecvente despre instalarea, configurarea, licențierea, depanarea și migrarea RustDesk Server Pro. Găsește răspunsuri la probleme comune, configurare SSL, gestionare baze de date și proceduri de upgrade."
keywords: ["rustdesk server pro faq", "rustdesk pro help", "rustdesk installation help", "rustdesk troubleshooting", "rustdesk server setup", "rustdesk license issues", "rustdesk ssl configuration", "rustdesk migration guide", "rustdesk pro support", "rustdesk server questions"]
weight: 600
---
## Cum instalez folosind Simple Install Script?
1. Obține o licență de la https://rustdesk.com/pricing.html — vezi pagina de [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) pentru detalii.
2. Pornește un VPS, un server fizic sau o mașină virtuală Linux.
3. Dacă vrei să folosești DNS și SSL, creează un nume DNS, ex. `rustdesk.domeniultau.com`.
4. Urmează instrucțiunile de pe această pagină: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/#install.
5. Copiază și lipește comanda în terminalul Linux.
6. Urmează pașii interactivi din script.
7. După instalare poți accesa `https://rustdesk.domeniultau.com` sau `http://adresa-ip:21114`.
8. Autentifică-te cu `admin` / `test1234`.
9. Introdu codul de licență achiziționat la pasul 1.
## Cum convertesc RustDesk Server Open Source în RustDesk Server Pro?
1. Obține o licență de la https://rustdesk.com/pricing.html și consultă pagina de [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/).
2. Deschide portul TCP 21114 în firewall.
3. Autentifică-te pe serverul RustDesk existent.
4. Dacă nu ai folosit DNS și dorești SSL, configurează un nume DNS, ex. `rustdesk.domeniultau.com`.
5. Urmează instrucțiunile de pe această pagină: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/#convert-from-open-source.
6. Rulează comanda recomandată în terminal.
7. Urmează pașii interactivi.
8. După finalizare accesează `https://rustdesk.domeniultau.com` sau `http://adresa-ip:21114`.
9. Autentifică-te cu `admin` / `test1234`.
10. Introdu codul de licență.
## A apărut o versiune nouă de RustDesk Server Pro — cum fac upgrade?
E recomandat să faci backup la fișierele de date (ex. fișiere sqlite3) înainte: https://github.com/rustdesk/rustdesk-server-pro/discussions/184#discussioncomment-8013375.
- Dacă ai instalat cu script (`install.sh`)
- Rulează [update.sh](/docs/en/self-host/rustdesk-server-pro/installscript/script/#upgrade).
- Docker Compose
```sh
sudo docker compose down
sudo docker compose pull
sudo docker compose up -d
```
Comportamentul poate depinde de versiunea Docker Compose; vezi și discuțiile aferente pentru detalii.
- Docker (fără compose)
```sh
sudo docker ps
# poți folosi și <CONTAINER NAME>, de ex. `hbbs` și `hbbr` dacă ai urmat manualul nostru
sudo docker stop <CONTAINER ID>
sudo docker rm <CONTAINER ID>
sudo docker rmi <IMAGE ID>
sudo docker run ..... # la fel ca în instalarea inițială
```
Exemplu de flux:
```sh
root@hz:~# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
30822972c220 rustdesk/rustdesk-server-pro "hbbr" 10 seconds ago Restarting (1) 2 seconds ago hbbr
0f3a6f185be3 rustdesk/rustdesk-server-pro "hbbs" 15 seconds ago Up 14 seconds hbbs
root@hz:~# sudo docker kill hbbr hbbs
hbbr
hbbs
root@hz:~# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@hz:~# sudo docker rm hbbr hbbs
hbbr
hbbs
root@hz:~# sudo docker rmi rustdesk/rustdesk-server-pro
Untagged: rustdesk/rustdesk-server-pro:latest
... (output truncated)
root@hz:~# sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server-pro hbbs
root@hz:~# sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server-pro hbbr
root@hz:~# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4eb9da2dc460 rustdesk/rustdesk-server-pro "hbbr" 5 seconds ago Restarting (1) Less than a second ago hbbr
0cc5387efa8d rustdesk/rustdesk-server-pro "hbbs" 8 seconds ago Up 7 seconds hbbs
```
Pentru mai multe detalii vezi și: https://www.cherryservers.com/blog/how-to-update-docker-image
## Am instalat cu script — cum pornesc/oprim serviciile?
Serviciile sunt gestionate cu systemd, poți folosi:
`sudo systemctl stop|start|restart rustdesk-hbbs rustdesk-hbbr`, ex: `sudo systemctl restart rustdesk-hbbs`.
## Unde găsesc jurnalele (logs) pe Linux când am instalat cu script?
Jurnalele se află în `/var/log/rustdesk-server`. Le poți citi cu `tail /var/log/rustdesk-server/hbbs.log` sau `tail /var/log/rustdesk-server/hbbs.error`.
## Cum verific statusul serviciilor RustDesk instalate cu script?
Rulează: `sudo systemctl status rustdesk-hbbs` sau `sudo systemctl status rustdesk-hbbr`.
## Cum schimb parola de admin?
1. Deschide `https://rustdesk.domeniultau.com` sau `http://adresa-ip:21114`.
2. Autentifică-te cu `admin` / `test1234`.
3. Click pe `admin` (colțul din dreapta sus).
4. Click pe `Settings`.
5. Completează noile parole în câmpurile afișate.
## Cum mut licența pe un alt server?
Urmărește pașii descriși aici: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-and-migration
## E-mail-urile nu funcționează de pe VPS
Mulți furnizori VPS blochează porturile 465 și 25.
Verificare simplă: în Linux folosește `telnet your.mailserver.com 25`. Pe Windows PowerShell: `Test-NetConnection -ComputerName your.mailserver.com -Port 25`.
Asigură-te că folosești porturile corecte pentru serverul tău de mail.
## Pot face deployment folosind PowerShell sau altceva similar?
Da — găsești scripturi utile aici: https://rustdesk.com/docs/en/self-host/client-deployment/
## Cum raportez un bug?
Deschide un issue pe GitHub: https://github.com/rustdesk/rustdesk-server-pro/issues
## De ce RustDesk Server Pro nu este gratuit dacă îl găzduiesc singur?
1. RustDesk a devenit un loc de muncă cu normă întreagă pentru mai multe persoane; menținerea proiectului costă timp și bani.
2. Dorim să continuăm dezvoltarea pe termen lung.
3. Versiunea open source rămâne open source și încurajăm contribuțiile în conformitate cu licența AGPL.
## Nu mă pot conecta la dispozitive din grupuri diferite — de ce?
Trebuie să permiți acces cross-group (între grupuri):
1. Adaugă grupurile necesare.
2. Click `Edit`.
3. Selectează grupurile cărora dorești să le permiți acces (se adaugă automat în grupul corespunzător).
## Cum obțin configurații automat?
1. Descarcă cei mai noi clienți de pe GitHub: https://github.com/rustdesk/rustdesk/releases/latest
2. În consola web, pe pagina principală, click pe `Windows EXE`.
3. Completează host și API (dacă sunt diferite).
4. Click `Submit`.
5. Scanează QR code pe Android și redenumește .exe conform indicațiilor.
## Oferiți găzduire pentru RustDesk Server Pro?
Contactează echipa de [vânzări](mailto://sales@rustdesk.com).
## Există ghiduri video?
Da — canalul nostru YouTube: https://youtube.com/@RustDesk
## De ce apar jurnalele sau numele dispozitivelor goale?
Asigură-te că API-ul este configurat corect pe dispozitivul controlat: https://github.com/rustdesk/rustdesk-server-pro/issues/21#issuecomment-1637935750
## Cum dezinstalez RustDesk Server Pro?
Rulează următoarele comenzi:
```sh
sudo systemctl stop rustdesk-hbbs.service
sudo systemctl disable rustdesk-hbbs.service
sudo systemctl stop rustdesk-hbbr.service
sudo systemctl disable rustdesk-hbbr.service
sudo systemctl daemon-reload
sudo rm /etc/systemd/system/rustdesk-hbbs.service
sudo rm etc/systemd/system/rustdesk-hbbr.service
sudo rm /usr/bin/hbbs
sudo rm /usr/bin/hbbr
sudo rm -rf /var/lib/rustdesk-server/
sudo rm -rf /var/log/rustdesk-server/
```
Dacă scriptul a instalat Nginx, îl poți elimina cu:
```sh
sudo apt remove nginx
```
## Cum elimin dispozitive din lista de dispozitive din consola web?
Mai întâi dezactivează dispozitivul, apoi opțiunea de ștergere va fi disponibilă.
## Cum actualizez RustDesk pe Windows cu PowerShell?
```ps
$ErrorActionPreference= 'silentlycontinue'
$rdver = ((Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\RustDesk\").Version)
if ($rdver -eq "1.2.6")
{
Write-Output "RustDesk $rdver is the newest version."
Exit
}
if (!(Test-Path C:\Temp))
{
New-Item -ItemType Directory -Force -Path C:\Temp > null
}
cd C:\Temp
Invoke-WebRequest "https://github.com/rustdesk/rustdesk/releases/download/1.2.6/rustdesk-1.2.6-x86_64.exe" -Outfile "rustdesk.exe"
Start-Process .\rustdesk.exe --silent-install -wait
```
## Eroare `Key mismatch`
Configurează clientul cu cheia corectă: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/
## Eroare `Failed to connect to relay server`
Asigură-te că `hbbr` rulează. Mai multe informații despre `hbbr` găsești aici: https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/.
Dacă `hbbr` nu rulează pe aceeași mașină ca `hbbs`, ai multiple servere relay sau folosești un port diferit de 21117, trebuie să-i spui explicit lui `hbbs` despre acesta. Vezi: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/relay/.
## Resetare MFA pentru contul Admin
https://github.com/rustdesk/rustdesk/discussions/6576
## Configurare manuală HTTPS pentru consola web
### 1. Cumpără un nume de domeniu și pointează-l către IP-ul serverului
- Cumpără un domeniu de la un registrar (GoDaddy, Namecheap, Namesilo etc.).
- Configurează înregistrarea A în panoul registrarului sau la providerul DNS pentru a indica IP-ul serverului.
Exemplu: dacă domeniul tău este `example.com` și IP-ul serverului este `123.123.123.123`, folosește subdomeniul `rustdesk.example.com`. Urmează pașii din panoul Namesilo pentru a adăuga o înregistrare A.
![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-dns-button.png)
![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-add-a-record.png)
![](/docs/en/self-host/rustdesk-server-pro/faq/images/namesilo-dns-table.png)
Verifică propagarea DNS pe https://www.whatsmydns.net. Înlocuiește `YOUR_DOMAIN` cu subdomeniul tău, ex. `rustdesk.example.com`.
### 2. Instalează Nginx
- Debian/Ubuntu: `sudo apt-get install nginx`
- Fedora/CentOS: `sudo dnf install nginx` sau `sudo yum install nginx`
- Arch: `sudo pacman -S nginx`
- openSUSE: `sudo zypper install nginx`
- Gentoo: `sudo emerge -av nginx`
- Alpine: `sudo apk add --no-cache nginx`
Verifică cu `nginx -h`.
### 3. Instalează Certbot
- Metoda 1: dacă ai `snap`, rulează `sudo snap install certbot --classic`.
- Metoda 2: instalează `python3-certbot-nginx`, ex. `sudo apt-get install python3-certbot-nginx`.
- Metoda 3: folosește pachetul `certbot-nginx` din managerul distro-ului.
Verifică cu `certbot -h`.
### 4. Configurează Nginx
Există două opțiuni:
- Dacă există `/etc/nginx/sites-available` și `/etc/nginx/sites-enabled`, creează fișierul:
```sh
cat > /etc/nginx/sites-available/rustdesk.conf << EOF
server {
server_name YOUR_DOMAIN;
location / {
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:21114/;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/rustdesk.conf /etc/nginx/sites-enabled/rustdesk.conf
```
- Dacă nu există `sites-available`/`sites-enabled` dar există `/etc/nginx/conf.d`, creează:
```sh
cat > /etc/nginx/conf.d/rustdesk.conf << EOF
server {
server_name YOUR_DOMAIN;
location / {
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:21114/;
}
}
EOF
```
Verifică conținutul fișierului creat.
### 5. Permite porturile firewall pentru domeniu
```sh
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw --force enable
sudo ufw --force reload
```
### 6. Generează certificatul SSL
Înlocuiește `$YOUR_DOMAIN` cu domeniul tău și rulează:
```sh
sudo certbot --nginx --cert-name $YOUR_DOMAIN --key-type ecdsa --renew-by-default --no-eff-email --agree-tos --server https://acme-v02.api.letsencrypt.org/directory -d $YOUR_DOMAIN
```
Dacă cere email, introdu adresa ta.
Fișierul `rustdesk.conf` ar trebui să conțină setările SSL generate de Certbot.
Erori frecvente și soluții:
- Mesajul `Successfully deployed certificate for YOUR_DOMAIN to /etc/nginx/.../default` în loc de `.../rustdesk.conf`: Certbot nu găsește fișierul; repornește nginx sau copiază blocul `server{...}` în `rustdesk.conf` și asigură-te că `location` conține proxy_pass către 127.0.0.1:21114.
- `too many certificates (5) already issued for this exact set of domains in the last 168 hours`: folosește un alt subdomeniu temporar și reia pașii.
- `Error getting validation data`: verifică firewall-ul.
Rulează `sudo service nginx restart` dacă modifici manual `rustdesk.conf`.
### 7. Autentificare în web
- Deschide `https://YOUR_DOMAIN` în browser, autentifică-te cu `admin` / `test1234` și schimbă parola.
### 8. Adaugă suport WebSocket securizat (WSS) pentru id server și relay
Adaugă următoarele în primul bloc `server` din fișierul `rustdesk.conf`, apoi repornește Nginx. Clientul web va fi accesibil la `https://YOUR_DOMAIN/web`. Clienții personalizați pot folosi WebSocket activând `allow-websocket=Y` în opțiuni avansate. Atenție: clienții WebSocket folosiți exclusiv vor folosi relay și nu TCP/UDP direct (cu excepția conexiunilor IP directe). Dacă folosești doar clienți WebSocket, poți închide porturile 2111421119 și păstra doar 443 deschis.
```nginx
location /ws/id {
proxy_pass http://127.0.0.1:21118;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
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_read_timeout 120s;
}
location /ws/relay {
proxy_pass http://127.0.0.1:21119;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
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_read_timeout 120s;
}
```
{{% notice note %}}
Dacă ai implementat anterior pentru clienți web și vrei să-l folosești pe toate platformele, trebuie să adaugi `proxy_read_timeout`.
{{% /notice %}}
### 9. Bypass CORS dacă folosești clientul web public `https://rustdesk.com/web`
Adaugă următorul cod în secțiunea `location /` din `rustdesk.conf` pentru a ocoli restricțiile CORS ale browserului. Sare peste acest pas dacă folosești clientul tău web.
```nginx
if ($http_origin ~* (https?://(www\.)?rustdesk\.com)) {
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
}
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' "$http_origin" always;
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, PATCH, OPTIONS' always;
add_header 'Access-Control-Allow-Headers' 'Origin, Content-Type, Accept, Authorization' always;
add_header 'Access-Control-Allow-Credentials' 'true' always;
add_header 'Content-Length' 0;
add_header 'Content-Type' 'text/plain charset=UTF-8';
return 204;
}
```
## SELinux
If `Waiting for RustDesk Relay service to become active...` appears when install, it may be caused by SELinux. You can try the following commands:
```sh
sudo semanage fcontext -a -t NetworkManager_dispatcher_exec_t 'hbbs'
sudo semanage fcontext -a -t NetworkManager_dispatcher_exec_t 'hbbr'
sudo restorecon -v '/usr/bin/hbbs'
sudo restorecon -v '/usr/bin/hbbr'
```
## Firewall
### Firewall în cloud
Dacă rulezi pe AWS/Azure/Google/DigitalOcean, deschide inbound UDP (21116) și TCP (21114-21119) în consola furnizorului cloud.
- [AWS] https://docs.aws.amazon.com/network-firewall/latest/developerguide/getting-started.html
- [Azure] https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview
- [Google] https://cloud.google.com/firewall/docs/firewalls
- [DigitalOcean] https://docs.digitalocean.com/products/networking/firewalls/
### Firewall pe server on-premise
Scriptul RustDesk folosește `ufw`. Pe unele distribuții (ex. CentOS 9) poți utiliza `firewall-cmd`:
```sh
sudo firewall-cmd --permanent --add-port=21115/tcp
sudo firewall-cmd --permanent --add-port=21116/tcp
sudo firewall-cmd --permanent --add-port=21117/tcp
sudo firewall-cmd --permanent --add-port=21118/tcp
sudo firewall-cmd --permanent --add-port=21119/tcp
sudo firewall-cmd --permanent --add-port=21116/udp
```
Pentru IP direct:
```sh
sudo firewall-cmd --permanent --add-port=21114/tcp
```
Pentru DNS/Domeniu:
```sh
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
```
După aceea rulează `sudo firewall-cmd --reload`.
## Am schimbat parola de admin în consolă și nu mă pot autentifica — există o resetare simplă?
1. Asigură-te că ai `rustdesk-utils` instalat (https://github.com/rustdesk/rustdesk-server-pro) și execută comanda din directorul unde se află baza de date, ex. `/var/lib/rustdesk-server`.
2. Comanda este `rustdesk-utils set_password username password`. Dacă s-a efectuat cu succes va afișa *Done*.
Există și alte comenzi utile în `rustdesk-utils`: `genkeypair`, `validatekeypair [public key] [secret key]`, `doctor [rustdesk-server]`, `reset_email_verification` și `reset_2fa_verification`.
https://github.com/rustdesk/rustdesk-server-pro/discussions/183
## Adăugarea certificatului root CA în containerul Docker (pentru eșec TLS cu SMTP, OIDC etc.)
https://github.com/rustdesk/rustdesk-server-pro/issues/99#issuecomment-2235014703

View File

@ -0,0 +1,78 @@
---
title: Docker
weight: 3
---
## Docker Compose (Recomandat)
Cu Docker Compose TREBUIE să folosești `network_mode: "host"` pentru a te asigura că licențierea funcționează. Instalează Docker urmând acest [ghid](https://docs.docker.com/engine/install) pentru a avea cea mai recentă versiune.
Copiază conținutul de mai jos în `compose.yml`.
```yaml
services:
hbbs:
container_name: hbbs
image: docker.io/rustdesk/rustdesk-server-pro:latest
command: hbbs
volumes:
- ./data:/root
network_mode: "host"
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
image: docker.io/rustdesk/rustdesk-server-pro:latest
command: hbbr
volumes:
- ./data:/root
network_mode: "host"
restart: unless-stopped
```
Apoi rulează `sudo docker compose up -d` sau `podman-compose up -d`.
> Pentru `podman-compose` pe Debian/Ubuntu: `sudo apt install podman-compose`.
{{% notice note %}}
Cum să [configurezi HTTPS pentru consola web manual](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually).
{{% /notice %}}
## Comenzi Docker
Instalează Docker urmând acest [ghid](https://docs.docker.com/engine/install) pentru a fi la zi.
Sau poți instala Docker cu o singură comandă:
```
bash <(wget -qO- https://get.docker.com)
```
Rulează comenzile de mai jos (imaginea s6 poate necesita `./data:/data` în loc de `./data:/root`):
```sh
sudo docker image pull rustdesk/rustdesk-server-pro
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbr
```
{{% notice note %}}
Exemplele de mai sus folosesc `sudo` și `--net=host`; acestea nu funcționează pe Windows — elimină-le pe Windows și, dacă renunți la `--net=host`, verifică instrucțiunile de mai jos pentru maparea porturilor.
{{% /notice %}}
Pentru sisteme unde nu poți folosi `--net=host`, poți mapa explicit porturile:
```sh
macaddrhbbs=$(echo -n A0-62-2F; dd bs=1 count=3 if=/dev/random 2>/dev/null |hexdump -v -e '/1 "-%02X"')
sudo docker run --name hbbs -p 21114:21114 -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v ./data:/root -td --mac-address="$macaddrhbbs" --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbs
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v ./data:/root -td --restart unless-stopped docker.io/rustdesk/rustdesk-server-pro hbbr
```
{{% notice note %}}
Cum să [configurezi HTTPS pentru consola web manual](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually).
{{% /notice %}}
Dacă întâmpini probleme cu SELinux pe Fedora, vezi acest [issue](https://github.com/rustdesk/rustdesk-server/issues/230).

View File

@ -0,0 +1,86 @@
---
title: install.sh
weight: 4
---
{{% notice note %}}
Nu uita să obții licența de la [https://rustdesk.com/pricing/](https://rustdesk.com/pricing/), vezi pagina de [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) pentru detalii.
Te rugăm să citești mai întâi ghidul pentru [instalarea OSS](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/) înainte de a rula acest instalator simplu. Acolo găsești detalii tehnice utile.
{{% /notice %}}
## Instalare
Copiază și lipește comanda de mai jos în terminalul tău Linux pentru a instala RustDesk Server Pro.
`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/install.sh | bash`
{{% notice note %}}
Recomand folosirea [imaginii Docker](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/docker/#docker-compose); aceasta simplifică mult implementarea și actualizările. Consumă foarte puține resurse.
Rulează scriptul de instalare din directorul tău home, nu dintr-un director în care nu ai permisiuni de scriere.
{{% /notice %}}
Ce face scriptul:
- Instalează dependențe necesare
- Configurează UFW dacă este disponibil
- Creează directorul de lucru `/var/lib/rustdesk-server` și directorul de log `/var/log/rustdesk-server`
- Instalează executabilele în `/usr/bin`
- Descarcă și extrage serviciile RustDesk Pro în directorul menționat
- Creează servicii systemd pentru `hbbs` și `hbbr` (numele serviciilor: `rustdesk-hbbs.service` și `rustdesk-hbbr.service`)
- Dacă alegi opțiunea Domain, instalează Nginx și Certbot pentru a expune API-ul pe portul `443` (HTTPS) și a obține automat certificat SSL pe portul `80`. Când HTTPS este gata, accesează `https://domeniul-tau` (fără :21114).
{{% notice note %}}
Cum să [configurezi HTTPS pentru consola web manual](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#set-up-https-for-web-console-manually).
{{% /notice %}}
{{% notice note %}}
Dacă serviciul systemd nu pornește, problema poate fi legată de SELinux; vezi secțiunea relevantă din FAQ.
{{% /notice %}}
{{% notice note %}}
Dacă clientul nu poate conecta la server sau nu poți accesa consola web, verifică setările de firewall: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/faq/#firewall
{{% /notice %}}
## Upgrade
Copiază și lipește comanda de mai jos în terminal pentru a actualiza instalarea RustDesk Server Pro; comanda poate fi păstrată local și programată cu cron.
`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/update.sh | bash`
{{% notice note %}}
Dacă întâmpini probleme cu acest script, inspectează-l și execută pașii manual, unul câte unul.
Rulează scriptul din directorul tău home, nu dintr-un director fără permisiuni de scriere.
{{% /notice %}}
Ce face update.sh:
- Verifică dacă există versiuni noi ale RustDesk Server Pro
- Dacă găsește o versiune nouă, elimină fișierele API vechi și descarcă noile executabile și fișiere API
## Conversie din open source
Pentru a converti o instalare Open Source la Pro, rulează comanda de mai jos în terminal:
`wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/convertfromos.sh | bash`
{{% notice note %}}
Adaugă regula firewall pentru portul TCP `21114` — acesta este portul suplimentar folosit de consola web și pentru autentificarea utilizatorilor în clientul RustDesk.
{{% /notice %}}
{{% notice note %}}
Dacă întâmpini probleme cu acest script, recomand trecerea la instalarea Docker sau rularea pașilor din script manual, unul câte unul.
{{% /notice %}}
Ce face `convertfromos.sh`:
- Dezactivează și elimină serviciile vechi
- Instalează dependențe necesare
- Configurează UFW dacă este disponibil
- Creează folderul `/var/lib/rustdesk-server` și copiază certificatele acolo
- Șterge `/var/log/rustdesk` și creează `/var/log/rustdesk-server`
- Descarcă și extrage serviciile RustDesk Pro în directorul respectiv
- Creează servicii systemd pentru `hbbs` și `hbbr` (numele serviciilor: `rustdesk-hbbs.service` și `rustdesk-hbbr.service`)
- Dacă alegi Domain, instalează Nginx și Certbot pentru a expune API-ul pe portul `443` (HTTPS) și a obține automat certificat SSL pe portul `80`.

View File

@ -0,0 +1,30 @@
---
title: Instalare
weight: 2
---
## Metoda 1: Docker (Recomandat)
```
bash <(wget -qO- https://get.docker.com)
wget rustdesk.com/pro.yml -O compose.yml
sudo docker compose up -d
```
Pentru mai multe detalii, verifică [Docker](/docs/en/self-host/rustdesk-server-pro/installscript/docker/).
## Metoda 2: install.sh
Dacă ești confortabil cu Linux, poți folosi scriptul de mai jos. În caz contrar, dacă scriptul eșuează este posibil să întâmpini probleme dificile de diagnosticat.
`bash <(wget -qO- https://raw.githubusercontent.com/rustdesk/rustdesk-server-pro/main/install.sh)`
Pentru mai multe detalii, verifică [install.sh](/docs/en/self-host/rustdesk-server-pro/installscript/script/).
## Conversie din versiunea open source
### Docker
Dacă ai instalat versiunea open-source folosind Docker, nu există o metodă directă de conversie in-place. Va trebui să rulezi un container nou cu imaginea Pro. Înainte de asta, fă backup la cheia ta privată (fișierul `id_ed25519`, nu `id_ed25519.pub`). După configurarea noului container, copiază fișierul privat `id_ed25519` în directorul de lucru al noului container și repornește containerul.
### install.sh
Dacă ai instalat versiunea open-source folosind `install.sh`, urmează pașii de pe această pagină: /docs/en/self-host/rustdesk-server-pro/installscript/script/#convert-from-open-source

View File

@ -0,0 +1,61 @@
---
title: Instalare Windows (învechit)
weight: 5
---
{{% notice note %}}
Politicile de securitate Windows pot fi complicate; dacă acest tutorial nu funcționează pentru tine sau întâmpini conexiuni instabile, mută serverul pe o mașină Linux.
{{% /notice %}}
{{% notice note %}}
Versiunea GUI, `RustDeskServer.setup.exe`, nu mai este întreținută și nu este recomandată.
{{% /notice %}}
## Instalare
Redistribuibilul Microsoft Visual C++ este necesar pentru a rula RustDesk pe Windows. Îl poți descărca de aici: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist
1. Obține o licență de la https://rustdesk.com/pricing.html — vezi pagina de [license](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/) pentru detalii.
2. Descarcă installer-ul pentru Windows de pe [GitHub](https://github.com/rustdesk/rustdesk-server-pro/releases/latest).
3. Dezarhivează pachetul pentru Windows.
4. Rulează installer-ul și urmează pașii afișați pe ecran. Alternativ, poți instala manual folosind [PM2 sau NSSM](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/windows/).
5. După finalizare, deschide RustDesk Server.
6. Urmează instrucțiunile din interfață pentru configurare.
7. Click pe `Services` și apoi `Start`.
8. După instalare poți accesa `http://adresa-ta-ip:21114`.
9. Autentifică-te cu `admin` / `test1234`.
10. Introdu codul de licență achiziționat la pasul 1.
## Folosirea IIS ca proxy
Asigură-te că `Dynamic Content Compression` este instalat (este o caracteristică IIS care se instalează din Server Roles).
1. Deschide IIS (sau instalează-l).
2. Creează un site nou pentru RustDesk cu binding-urile necesare (ideal port 443) și certificatul corespunzător. Setările de bază pot indica către un director gol. (Dacă folosești site-ul implicit, asigură-te că nu sunt alte fișiere în folder).
3. În IIS instalează [Application Request Routing](https://www.iis.net/downloads/microsoft/application-request-routing) și [URL Rewrite](https://learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-the-url-rewrite-module).
## Application Request Routing
1. În consola IIS, deschide Application Request Routing la nivel de server.
2. Mergi la Server Proxy Settings.
3. Activează proxy-ul; poți lăsa celelalte setări la valorile implicite.
4. Salvează setările și treci la pasul URL Rewrite.
## URL Rewrite
1. Selectează site-ul din panoul din stânga și dublu-click pe `URL Rewrite`.
2. Click pe `Add rules`.
3. Creează o regulă nouă de reverse proxy.
4. Configurează adresa locală (portul intern 21114):
- Inbound Rule adresa internă RustDesk (21114)
- Outbound Rules `From` este adresa internă 21114 și `To` este adresa externă.
Notă: Nu adăuga `http://` sau `https://` înaintea adreselor — sunt gestionate automat. Asigură-te că adresele sunt accesibile atât intern, cât și extern.
## Compresie
1. Dezactivează `Dynamic Content Compression`.
## Depanare
Dacă primești eroarea 500.52 adaugă variabilele menționate în articolul: [IIS acting as reverse proxy: Where the problems start](https://techcommunity.microsoft.com/t5/iis-support-blog/iis-acting-as-reverse-proxy-where-the-problems-start/ba-p/846259).
Este posibil să fie necesar să schimbi setările SSL la `Require SSL → Ignore`.

View File

@ -0,0 +1,37 @@
---
title: LDAP
weight: 17
---
## Configurare
Accesează pagina de setări `LDAP` așa cum se vede mai jos.
![](/docs/en/self-host/rustdesk-server-pro/ldap/images/ldap.png)
- **LDAP Host:** Numele de gazdă sau adresa IP a serverului LDAP. Exemplu: `ldap.example.com` sau `192.0.2.1`.
- **LDAP Port:** Portul pe care ascultă serverul LDAP. Portul implicit pentru LDAP este `389`, iar pentru LDAPS (LDAP peste SSL) este `636`.
- **Base DN:** Punctul de plecare pentru căutarea în LDAP. Exemplu: `dc=example,dc=com`.
- **Scope:** Determină aria de căutare în directorul LDAP. Poate fi `one` (intrările imediat sub Base DN) sau `sub` (inclusiv sub-arbori sub Base DN).
- **Bind DN / Password:** Numele de utilizator (DN) și parola contului de serviciu. Acest cont este folosit pentru a face bind la LDAP și a autentifica alți utilizatori. De obicei este un DN de tip `cn=admin,dc=example,dc=com`.
- **Filter:** Filtrul de căutare pentru interogarea LDAP. Exemplu: `(objectClass=person)` sau `(&(age=28)(!(name=Bob)))`.
- **Username Attribute:** Atributul care conține numele de utilizator. Exemplu: `uid` sau `sAMAccountName`. Implicit folosește `uid` și `cn`. Discuție aici: https://github.com/rustdesk/rustdesk-server-pro/issues/140#issuecomment-1916804393.
- **StartTLS:** Determină dacă se folosește StartTLS pentru a upgrada conexiunea la una securizată.
- **NoTLSVerify:** Determină dacă se sare verificarea certificatului TLS. Recomandat: păstrează setarea pe `false` (să verifice certificatul) decât dacă știi exact ce faci.
## Cum funcționează?
- Cum funcționează autentificările LDAP: trebuie creat un utilizator local înainte, RustDesk creează un utilizator la prima autentificare, etc.?
> RustDesk creează un utilizator la prima autentificare.
- Cum verific dacă LDAP funcționează (ideal o comandă pe care RustDesk o poate rula pentru a returna utilizatorii descoperiți)?
> Când trimiți configurația, sistemul se conectează la serverul LDAP folosind `binddn`/parola furnizate și verifică funcționalitatea.
- Cum pot converti utilizatorii locali în utilizatori LDAP?
> Nu este disponibil momentan.
- Suportă grupuri LDAP?
> Nu este disponibil momentan.

View File

@ -0,0 +1,48 @@
---
title: Licență
weight: 15
---
## Cumpărați o licență
Vă rugăm să achiziționați licența de la [https://rustdesk.com/pricing.html](https://rustdesk.com/pricing.html) și să introduceți o adresă de email validă în pagina de checkout Stripe. Licența (și factura întrun email separat) vă vor fi trimise pe email după finalizarea cu succes a plății.
![](/docs/ro/self-host/rustdesk-server-pro/license/images/stripe.jpg)
## Setați licența
Vi se va solicita să introduceți licența în consola web (`http://<rustdesk-server-pro-ip>:21114`) sau o puteți modifica ulterior.
| Setați licența | Schimbați licența |
| --- | --- |
| ![](/docs/ro/self-host/rustdesk-server-pro/license/images/set.png) | ![](/docs/ro/self-host/rustdesk-server-pro/license/images/change.png) |
## Reînnoirea/actualizarea licenței
Opțiunile pentru reînnoire sau upgrade ale licenței se găsesc în portalul selfservice de licențe: [https://rustdesk.com/self-host/account/](https://rustdesk.com/self-host/account/). Autentificațivă cu emailul folosit la achiziție, așa cum se arată în imaginea de mai sus.
| Pagina licenței cu acțiuni de reînnoire/upgrade | Fereastra de upgrade |
| --- | --- |
| ![](/docs/ro/self-host/rustdesk-server-pro/license/images/renew.jpg?v2) | ![](/docs/ro/self-host/rustdesk-server-pro/license/images/upgrade.png) |
După efectuarea plății, reîmprospătați licența [așa cum e descris mai jos](/docs/ro/self-host/rustdesk-server-pro/license/#refresh-license) pentru a o activa.
### Reîmprospătarea licenței
După plată, trebuie să accesați consola web pentru a o activa manual, așa cum e prezentat mai jos. Faceți click pe `Edit`, apoi pe `OK` — nu e nevoie să modificați nimic, cheia de licență rămâne aceeași.
![](/docs/ro/self-host/rustdesk-server-pro/license/images/updatelic.jpg)
## Facturi, recuperare licență și migrare
Licența poate fi utilizată pe o singură mașină (doar pentru `hbbs`; `hbbr` nu necesită licență). Dacă doriți să migrați licența pe altă mașină, să recuperați licența sau să descărcați facturi, accesați [https://rustdesk.com/self-host/account/](https://rustdesk.com/self-host/account/). Autentificațivă cu adresa de email folosită la checkoutul Stripe, dezlegați (unbind) mașina veche din care doriți să migrați, așa cum se arată mai jos — când setați licența în consola web a noului server, aceasta va fi atribuită și înregistrată automat în consolă.
![](/docs/ro/self-host/rustdesk-server-pro/license/images/unbind.jpg)
## Proxy
Dacă serverul dvs. nu poate accesa internetul pentru a verifica licența direct, puteți adăuga un proxy, de ex.: `proxy=http://username:password@example.com:8080 ./hbbs`.
> Alternativ, puteți adăuga `proxy=http://username:password@example.com:8080` în fișierul `.env` din directorul de lucru (unde se află fișierele `id_ed25519` / `db.sqlite3`).
`http` poate fi înlocuit cu `https` sau `socks5`. Dacă nu există `username` / `password` / `port`, se poate folosi `proxy=http://example.com`.

View File

@ -0,0 +1,10 @@
---
title: OIDC
weight: 16
---
- Folosiți conturile existente `Google`, `Okta`, `Facebook`, `Azure`, `GitHub`, `GitLab` etc. pentru a crea și a vă autentifica cu ușurință în contul `RustDesk Pro`.
- Pentru specificații vedeți [OpenID Connect Core 1.0 incorporating errata set 1](https://openid.net/specs/openid-connect-core-1_0.html).
# Exemple
{{% children depth="4" showhidden="true" %}}

View File

@ -0,0 +1,42 @@
---
title: Azure
weight: 16
---
## Tutorial video
[https://www.youtube.com/watch?v=izGxSmifURI](https://www.youtube.com/watch?v=izGxSmifURI)
## Configurare
1. Autentificațivă în [portalul Azure](https://portal.azure.com).
2. Căutați și selectați **Microsoft Entra ID**.
3. În meniul din stânga, selectați [**App registrations**](https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps), apoi faceți clic pe **New registration**.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/1-Azure-NewRegistration.png)
4. Deschideți consola RustDesk Pro, în pagina **Settings** faceți clic pe modulul **OIDC**. Apoi copiați **Callback URL**. Notă: **Callback URL** nu este editabil — partea `Path` este fixă la `api/oidc/callback`, iar partea `Protocol://Host:Port` este originea paginii web curente. De exemplu, dacă consola este accesată prin `http://localhost:8000/<path>`, atunci **Callback URL** va fi `http://localhost:8000/api/oidc/callback`. Dacă este accesată prin `https://192.168.0.1:8000/<path>`, atunci **Callback URL** va fi `https://192.168.0.1:8000/api/oidc/callback`. Deoarece Azure acceptă doar `https://` sau `http://localhost`, selectați adresa corespunzătoare pentru a deschide consola RustDesk Pro.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/12-RustDesk-Callback.png)
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register-RecirectURIs-Restrictions.png)
5. Introduceți **Name**, selectați **Supported account types** și lipiți **Redirect URI** copiat din RustDesk Pro.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/2-Azure-Register.png)
6. În RustDesk Pro, faceți clic pe **New auth provider**.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/3-RustDesk-NewAuthProvider.png)
7. În Azure, selectați aplicația pe care doriți să o utilizați, accesați **Overview** și copiați **Application (client) ID**.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/4-Azure-ClientID.png)
8. În RustDesk Pro, lipiți **Client ID**.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/5-RustDesk-ClientID.png)
9. În Azure, accesați **Certificates & secrets** și creați un client secret nou sau selectați unul existent (de obicei New).
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/6-Azure-NewOrSelectClientSecret.png)
10. În Azure, copiați valoarea client secretului. Notă: această valoare este vizibilă doar la crearea inițială. Nu va mai fi afișată după părăsirea paginii. Păstrațio în siguranță.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/7-Azure-CopySecretValue.png)
11. În RustDesk Pro, lipiți valoarea client secretului.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/8-RustDesk-FillClientSecret.png)
12. În RustDesk Pro, completați câmpul **Issuer** cu `https://login.microsoftonline.com/<Directory (tenant) ID>/v2.0`. Înlocuiți `Directory (tenant) ID` cu **Directory (tenant) ID** al contului dvs. Acesta se găsește în panoul **Overview** al aplicației din Azure.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/9-RustDesk-Issuer.png)
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/10-Azure-TenantID.png)
13. În Azure, accesați meniul **Authentication**. Apoi activați autorizarea, bifând **ID tokens (used for implicit and hybrid flows)**.
![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/11-Azure-Auth.png)
## Referințe
- [Set up an OpenID Connect provider with Azure AD](https://learn.microsoft.com/en-us/power-pages/security/authentication/openid-settings)
- [OpenID Connect on the Microsoft identity platform](https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-protocols-oidc)

View File

@ -0,0 +1,51 @@
---
title: Controlul accesului
weight: 16
---
## Permisiuni de acces ale dispozitivului
Un dispozitiv poate fi atribuit fie unui singur utilizator, fie unui singur grup de dispozitive, fie ambelor.
Când dispozitivul este atribuit unui utilizator, acesta poate fi accesat de acel utilizator, de un grup de utilizatori sau prin setările corespunzătoare între grupuri de utilizatori.
Când dispozitivul este atribuit unui grup de dispozitive, acesta poate fi accesat prin setările corespunzătoare între grupuri de utilizatori și grupuri de dispozitive.
Există trei modalități de a atribui un dispozitiv unui utilizator:
- Din pagina dispozitivului din consolă
- Autentificânduvă în contul de utilizator specificat pe partea client
- Prin linia de comandă (assign)
Există două modalități de a atribui un dispozitiv unui grup de dispozitive:
- Din pagina dispozitivului din consolă
- Prin linia de comandă (assign)
Următoarele două situații vor împiedica accesul la dispozitiv:
- Setați dispozitivul la `disable` în pagina dispozitive din consolă
- Setați utilizatorul la `disable` în pagina utilizatori din consolă
## Setări de acces pentru grupuri de utilizatori
Accesați pagina grupului în consola web și faceți clic pe `Edit` pentru a modifica setările între grupuri, după cum urmează.
Modificările făcute la `Access with other groups` intră în vigoare imediat, fără a fi necesară apăsarea butonului `OK`.
Atât `Can access to`, cât și `Can be accessed from` au aproape aceeași funcție; oferim ambele opțiuni pentru comoditatea dvs. Totuși, acest lucru poate provoca confuzie.
{{% notice note %}}
Utilizatorul și grupul atribuite părții care controlează sunt determinate de utilizatorul care se autentifică, nu de utilizatorul atribuit din consola web. Am proiectat sistemul astfel deoarece anumite părți controlatoare nu au ID de dispozitiv, cum ar fi clientul iOS și clientul web.
{{% /notice %}}
![](/docs/ro/self-host/rustdesk-server-pro/permissions/images/crossgrp.png)
## Setări de acces pentru grupuri de dispozitive
Grupurile de dispozitive oferă un alt mod de a gestiona permisiunile de acces. Iată regulile principale:
1. Un dispozitiv poate fi adăugat doar întrun singur grup de dispozitive
2. Puteți seta permisiuni de acces pentru utilizatori sau grupuri de utilizatori către grupuri de dispozitive. Aceste permisiuni se cumulează cu permisiunile de acces ale grupurilor de utilizatori — accesul este acordat dacă fie permisiunile grupului de utilizatori, fie permisiunile grupului de dispozitive permit accesul
3. Când un dispozitiv neatribuit este adăugat întrun grup de dispozitive, acesta nu mai este considerat „neatribuit”
{{% notice note %}}
Funcționalitatea grupurilor de dispozitive necesită RustDesk client >= 1.3.8 și RustDesk Server Pro >= 1.5.0
{{% /notice %}}

View File

@ -0,0 +1,152 @@
---
title: Configurare servere Relay
weight: 17
---
## RustDesk Pro - Instalare servere relay adiționale cu Geo Location folosind Docker
{{% notice note %}}
[Instalarea simplă](https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/) creează implicit un server relay (procesul `hbbr`) pe aceeași mașină; nu trebuie să specificați explicit un server relay.
Dacă doriți să creați explicit un server relay adițional pe o altă mașină, rulați `hbbr` urmând [instalarea OSS](https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/). Veți găsi `hbbr` în `rustdesk-server-linux-amd64.tar.gz`, `rustdesk-server-hbbr_<version>-<arch>.deb`, `rustdesk-server-windows-x86_64.tar.gz` sau în `docker` (`sudo docker run ... rustdesk/rustdesk-server-pro hbbr`).
`hbbr` nu necesită licență și este identic cu versiunea open source.
{{% /notice %}}
Puteți rula mai multe servere relay distribuite geografic și folosi GeoLocation pentru a selecta automat serverul relay cel mai apropiat, oferind o experiență mai rapidă la conectarea la computere remote. `hbbs` verifică automat dacă aceste servere relay sunt online la fiecare câteva secunde și folosește doar cele online.
{{% notice note %}}
Problemă cunoscută: https://github.com/rustdesk/rustdesk/discussions/7934
{{% /notice %}}
> Veți avea nevoie de perechea de chei private `id_ed25519` și `id_ed25519.pub`.
1 - Dacă Docker este deja instalat, conectațivă la server prin SSH și creați un volume pentru `hbbr`.
```
# docker volume create hbbr
```
Volumeul `hbbr` va fi localizat în `/var/lib/docker/volumes/hbbr/_data`.
2 - Copiați perechea de chei private în locația volumeului; în acest exemplu folosim SCP pentru a copia fișierele.
Sintaxa comenzii este `scp <path/filename> username@server:</destination/path>`.
```
# scp id_ed25519 root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
# scp id_ed25519.pub root@100.100.100.100:/var/lib/docker/volumes/hbbr/_data
```
3 - Desfășurați containerul `hbbr` folosind volumul creat anterior. Acest volume conține perechea de chei private necesară pentru a rula serverul relay privat.
```
# sudo docker run --name hbbr -v hbbr:/root -td --net=host rustdesk/rustdesk-server hbbr -k _
```
4 - Verificați jurnalele pentru a confirma că `hbbr` rulează folosind perechea de chei.
```
# docker logs hbbr
INFO [src/common.rs:121] **Private key comes from id_ed25519**
NFO [src/relay_server.rs:581] Key: XXXXXXXXXXXXXXXXXXXXX
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :21117
```
În funcție de sistemul de operare, sar putea să doriți să blocați/permiteți IPuri folosind un firewall.
În exemplul nostru (Ubuntu) dorim să permitem conexiuni TCP către porturile 21117 și 21119.
```
# sudo ufw allow proto tcp from any to any port 21117,21119
```
**Activați firewallul**
```
# sudo ufw enable
```
**Verificați starea**
```
# ufw status
Status: active
To Action From
-- ------ ----
21117,21119/tcp ALLOW Anywhere
21117,21119/tcp (v6) ALLOW Anywhere (v6)
```
## Configurare RustDesk Pro pentru Geo Location folosind consola web
### Înregistrare și descărcare a bazei de date GeoLite2 City
Pentru a folosi geo location, `hbbs` are nevoie de fișierul bazei de date MaxMind GeoLite2 City. Baza de date este gratuită: înregistrațivă pentru a descărca fișierul și a obține o cheie API.
Începeți prin a crea un cont (dacă nu aveți) la [siteul MaxMind](https://www.maxmind.com/en/account/login).
Accesați `Download Databases` și descărcați GeoLite2 City; alegeți fișierul gzip și veți obține fișierul `mmdb` după decomprimare.
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/e14318fb-ec52-463c-af77-d08c9479c1b5)
Dacă ați instalat RustDesk Pro folosind scriptul de instalare pe o mașină Linux, fișierul `mmdb` trebuie mutat în `/var/lib/rustdesk-server/`.
Pentru instalările Docker, fișierul ar trebui să se afle în volumul mapat la `/root`.
### Obțineți o cheie API pentru automatizare - servere Linux
Trebuie să actualizați acest fișier în mod regulat, și putem folosi un cronjob pentru asta. Veți avea nevoie de o cheie API pentru a accesa linkul de descărcare, care este gratuit.
Accesați `Manage License Keys` și generați o cheie nouă.
<br>
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/632aeb33-4f5d-4a31-9010-38e01c22d3c9)
<br>
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/3e178174-5fbf-46b7-a335-01f77125dfad)
Puteți automatiza [procesul de descărcare](https://dev.maxmind.com/geoip/updating-databases) în mai multe feluri; adăugați următoarea comandă în crontab, înlocuind {Your Access Key} cu cheia API obținută anterior.
```
/usr/bin/curl -L --silent 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key={Your Access Key}&suffix=tar.gz' | /bin/tar -C '/var/lib/rustdesk-server/' -xvz --keep-newer-files --strip-components=1 --wildcards '*GeoLite2-City.mmdb'
```
### Modificați setările în consola web RustDesk Pro
Adăugați adresele IP sau numele DNS ale serverelor relay (DNS este suportat începând cu versiunea 1.1.11) la `Relay Servers`. **Portul nu este necesar, portul `21117` este folosit implicit.**
<br>
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/c4452ba4-5e1d-437a-ae1d-fc0070bfa26c)
Adăugați un Geo Override introducând adresa IP a serverului și coordonatele unde este localizat serverul.
<br>
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/41c558e3-423b-4296-90d3-cb0769f4a369)
Faceți clic pe `Reload Geo` și lista dvs. ar trebui să arate similar.
<br>
![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/5a0d39a9-4fec-46b4-a7a2-7ed38b6baeb7)
Pentru a confirma rezultatele, verificați jurnalele `hbbs` când faceți clic pe `Reload Geo`; ar trebui să vedeți un mesaj care afișează adresele IP ale serverelor relay și coordonatele acestora.
> Dacă rulați RustDesk Pro pe o mașină Linux folosiți comanda `RUST_LOG=debug ./hbbs` pentru a vedea jurnalele. Dacă rulați întrun container Docker folosiți `docker logs hbbs`.
```
RUST_LOG=debug ./hbbs
INFO [src/common.rs:130] GEOIP_FILE: ./GeoLite2-City.mmdb
INFO [src/common.rs:159] override 1xx.xxx.xxx.x7: -1.xx 5x.xxx
[src/common.rs:159] override 1xx.xxx.xxx.xx8: -3.xxx 5x.xxxx
[src/common.rs:159] override 7xx.xxx.xxxx.xx1: 6.xxx 5x.xxxx
GEOIP_FILE loaded, #overrides 3
INFO [src/common.rs:119] relay-servers=["1xx.xxx.xxx.x7", "1xx.xxx.xxx.xx8", "7xx.xxx.xxx.xx1"]
NFO [src/rendezvous_server.rs:1467] parsed relay servers: [("1xx.xxxx.xxx.xx7", Some((-1x, xxx))), ("1xx.xxx.xxx.xx8", Some((-3x, xxx))), ("7xx.xxx.xxx.xx1", Some((6x, xxx)))]
```
De asemenea, puteți confirma cererile relay direct pe instanțele `hbbr`, verificând pur și simplu jurnalele containerelor.
```
# docker logs hbbr
INFO [src/relay_server.rs:436] Relayrequest 0593e64e-4fe8-4a59-a94f-b3420ab043eb from [::ffff:100.100.123.233]:52038 got paired
INFO [src/relay_server.rs:442] Both are raw
```

View File

@ -0,0 +1,8 @@
---
title: SMTP
weight: 16
---
Configurarea SMTP permite serverului dvs. să trimită notificări prin email, cum ar fi invitații pentru utilizatori, verificări la autentificare și alerte de conexiune.
[Tutorial video](https://youtu.be/0LyQY1JS4Uc)

View File

@ -0,0 +1,67 @@
---
title: Strategie
weight: 200
---
Strategia este un instrument pentru administratorii RustDesk care le permite să actualizeze în masă opțiunile de securitate din paginile de setări ale clientului. Administratorii pot crea strategii diferite și le pot aplica dispozitivelor dorite.
## Crearea strategiilor
Puteți crea o nouă strategie făcând clic pe butonul `+` și efectua diverse acțiuni pe strategie plasând cursorul peste ea și făcând clic pe meniul contextual.
În meniul popup puteți alege să `Enable` sau `Disable` strategia, să o `Rename`, `Duplicate` sau `Delete`. În plus, puteți face clic pe `Edit Devices` pentru a modifica dispozitivele cărora li se aplică strategia sau pe `Edit Users` pentru a modifica utilizatorii cărora li se aplică strategia.
În partea dreaptă a meniului strategiei puteți vedea numărul de dispozitive aplicate efectiv strategiei, ținând cont de prioritatea strategiilor.
![](/docs/ro/self-host/rustdesk-server-pro/strategy/images/strategy_menu.png)
## Strategia pentru dispozitiv, strategia pentru utilizator și strategia pentru grup de dispozitive
Strategiile se aplică în ordinea de prioritate următoare:
1. Strategia pentru dispozitiv (cea mai mare prioritate)
2. Strategia pentru utilizator
3. Strategia pentru grup de dispozitive (cea mai mică prioritate)
Fiecare dispozitiv poate fi gestionat de o singură strategie la un moment dat. Sistemul de priorități funcționează astfel:
- Strategiile pentru dispozitiv au prioritate față de strategiile pentru utilizator și cele pentru grupuri de dispozitive
- Strategiile pentru utilizator au prioritate față de strategiile pentru grupuri de dispozitive
- Strategiile pentru grupuri de dispozitive se aplică tuturor dispozitivelor din grupul respectiv care nu au atribuită o strategie pentru dispozitiv sau pentru utilizator
## Editați dispozitivele
Când faceți clic pe meniul `Edit Devices`, se deschide o fereastră de editare care afișează toate dispozitivele. Puteți modifica starea de selecție a casetelor de bifare și apoi faceți clic pe butonul `Save` pentru a aplica modificările dispozitivelor făcute pe pagina curentă. Dacă trebuie să modificați dispozitive aflate pe alte pagini, navigați către acele pagini. Puteți de asemenea folosi meniul dropdown din colțul din dreapta sus pentru a filtra dispozitivele.
Formatul coloanei Strategy: device strategy/user strategy/device group strategy, sau "-" pentru strategia implicită.
Iată un exemplu al ferestrei care apare când faceți clic pe `Edit Devices` din meniul "demo1". În acest exemplu, dispozitivul "1981241962" este aplicat strategiei "demo3"; dispozitivul "1279471875" este aplicat strategiei "demo2"; dispozitivul "a123456" este aplicat strategiei "demo1"; dispozitivul "1227624460" este aplicat strategiei implicite.
![](/docs/ro/self-host/rustdesk-server-pro/strategy/images/edit_devices.png)
## Editați utilizatorii
Când faceți clic pe meniul `Edit Users`, se deschide o fereastră de editare care afișează toți utilizatorii. Puteți modifica starea de selecție a casetelor de bifare și apoi faceți clic pe butonul `Save` pentru a aplica modificările utilizatorilor făcute pe pagina curentă. Dacă trebuie să modificați utilizatori aflați pe alte pagini, navigați către acele pagini. Puteți de asemenea folosi meniul dropdown din colțul din dreapta sus pentru a filtra utilizatorii.
Iată un exemplu al ferestrei care apare când faceți clic pe `Edit Users` din meniul "demo2". În acest exemplu, utilizatorul "admin" este aplicat strategiei "default"; utilizatorul "user1" este aplicat strategiei "demo2"; utilizatorul "user2" este aplicat strategiei "demo3".
![](/docs/ro/self-host/rustdesk-server-pro/strategy/images/edit_users.png)
## Editați grupurile de dispozitive
Când faceți clic pe meniul `Edit Device Group`, se deschide o fereastră de editare care afișează toate grupurile de dispozitive. Puteți modifica starea de selecție a casetelor de bifare și apoi faceți clic pe butonul `Save` pentru a aplica modificările grupurilor de dispozitive făcute pe pagina curentă. Dacă trebuie să modificați grupuri de dispozitive aflate pe alte pagini, navigați către acele pagini. Puteți de asemenea folosi meniul dropdown din colțul din dreapta sus pentru a filtra grupurile de dispozitive.
Iată un exemplu al ferestrei care apare când faceți clic pe `Edit Device Group` din meniul "demo1". În acest exemplu, grupul de dispozitive "device_group1" este aplicat strategiei "demo1"; grupul "group2" este aplicat strategiei "demo2"; grupul "group3" este aplicat strategiei "default".
![](/docs/ro/self-host/rustdesk-server-pro/strategy/images/edit_device_groups.png)
## Sincronizarea strategiilor
Fiecare dispozitiv poate fi gestionat de o singură strategie, iar dacă acea strategie este dezactivată, dispozitivul nu va mai fi gestionat de nicio strategie. La sincronizarea strategiilor, RustDesk înregistrează timpii (timestamp) locali și ai serverului pentru a determina dacă sincronizarea este necesară. Astfel, după ce sincronizarea strategiilor este finalizată:
* Dacă utilizatorul modifică unele opțiuni, clientul va folosi opțiunile stabilite de utilizator.
* Dacă administratorul modifică conținutul strategiei, opțiunile clientului vor fi sincronizate.
* Dacă administratorul modifică strategia căreia îi aparține dispozitivul, opțiunile clientului vor fi sincronizate.
## Editați strategiile
În partea de jos a unei strategii, faceți clic pe `Edit`, efectuați modificările și apoi faceți clic pe `Submit`. Strategia va fi sincronizată către dispozitive în aproximativ 30 de secunde.

View File

@ -0,0 +1,14 @@
---
title: Tutoriale video
weight: 50
---
## OSS
[NetworkChuck: Your Remote Desktop SUCKS!! Try this instead (FREE + Open Source)](https://www.youtube.com/watch?v=EXL8mMUXs88)
[Instalare și ghid de utilizare](https://www.youtube.com/watch?v=9nzHm3xGz2I)
[Securitatea RustDesk](https://www.youtube.com/watch?v=EeFqj23jxMk)
## Pro
[Canalul YouTube](https://youtube.com/@rustdesk)

View File

@ -245,3 +245,13 @@ languages:
description: "RustDesk এর সম্পূর্ণ ডকুমেন্টেশন - ওপেন সোর্স রিমোট ডেস্কটপ সফটওয়্যার। শিখুন কিভাবে সেলফ-হোস্ট করতে হয়, ক্লায়েন্ট কনফিগার করতে হয় এবং আপনার ইনফ্রাস্ট্রাকচারে RustDesk ডিপ্লয় করতে হয়।"
keywords: ["rustdesk", "রিমোট ডেস্কটপ", "ওপেনসোর্স", "সেলফ হোস্ট", "ডকুমেন্টেশন", "রিমোট এক্সেস", "VNC এর বিকল্প", "TeamViewer এর বিকল্প"]
ro:
title: "Documentația RustDesk"
weight: 1
languageName: "Română"
params:
landingPageName: "🏠 Acasă"
disable_cookie: true
description: "Documentație completă pentru RustDesk - software-ul open source pentru desktop remote. Aflați cum să găzduiți singur, să configurați clienți și să implementați RustDesk în infrastructura dvs."
keywords: ["rustdesk", "desktop remote", "open source", "self-host", "documentație", "acces remote", "alternativă VNC", "alternativă TeamViewer"]

@ -1 +1 @@
Subproject commit 7031718449830fb5d2faa6342b947961ff293820
Subproject commit 7b2774315999631e0e6aa35dc01f7a6d0c182e46

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'لا',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'Nein',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'No',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'Non',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'No',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: 'いいえ',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: '아니오',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,18 @@ const metadata = {
cancelButtonText: 'No',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
// Fallback if URL API fails for any reason
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -35,7 +35,19 @@ const metadata = {
cancelButtonText: 'Não',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search
? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1)
: '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}

View File

@ -37,7 +37,22 @@ const metadata = {
cancelButtonText: '否',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl + '&currency=cny', '_blank');
try {
const url = new URL(redirectUrl);
// Ensure currency=cny for zh-cn
if (!url.searchParams.has('currency')) url.searchParams.set('currency', 'cny');
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search
? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1)
: '';
const sep = (redirectUrl + qs).includes('?') ? '&' : '?';
window.open(redirectUrl + qs + sep + 'currency=cny', '_blank');
}
}
});
}

View File

@ -35,7 +35,17 @@ const metadata = {
cancelButtonText: '否',
}).then((result) => {
if (result.isConfirmed) {
window.open(redirectUrl, '_blank');
try {
const url = new URL(redirectUrl);
const pageParams = new URLSearchParams(window.location.search);
pageParams.forEach((value, key) => {
if (!url.searchParams.has(key)) url.searchParams.append(key, value);
});
window.open(url.toString(), '_blank');
} catch (e) {
const qs = window.location.search ? (redirectUrl.includes('?') ? '&' : '?') + window.location.search.slice(1) : '';
window.open(redirectUrl + qs, '_blank');
}
}
});
}