diff --git a/content/_index.ro.md b/content/_index.ro.md new file mode 100644 index 0000000..142e9d0 --- /dev/null +++ b/content/_index.ro.md @@ -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" %}} \ No newline at end of file diff --git a/content/client/_index.ro.md b/content/client/_index.ro.md new file mode 100644 index 0000000..a40b8fe --- /dev/null +++ b/content/client/_index.ro.md @@ -0,0 +1,139 @@ +--- +title: Client RustDesk +weight: 2 +pre: "1. " +--- + +## 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-.deb +``` + +#### Derivate Red Hat + +```sh +sudo yum localinstall ./rustdesk-.rpm +``` + +#### Arch Linux/Manjaro + +```sh +sudo pacman -U ./rustdesk-.pkg.tar.zst +``` + +#### openSUSE (≥ Leap 15.0) + +```sh +sudo zypper install --allow-unsigned-rpm ./rustdesk--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 [ ⋮ ] 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" %}} \ No newline at end of file diff --git a/content/client/android/_index.ro.md b/content/client/android/_index.ro.md new file mode 100644 index 0000000..f96c03c --- /dev/null +++ b/content/client/android/_index.ro.md @@ -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 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 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) | \ No newline at end of file diff --git a/content/client/linux/_index.ro.md b/content/client/linux/_index.ro.md new file mode 100644 index 0000000..4f037c3 --- /dev/null +++ b/content/client/linux/_index.ro.md @@ -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-.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-.rpm +``` + +### Arch Linux/Manjaro + +```sh +sudo pacman -U ./rustdesk-.pkg.tar.zst +``` + +### openSUSE (≥ Leap 15.0) + +```sh +sudo zypper install --allow-unsigned-rpm ./rustdesk--suse.rpm +``` + +### AppImage + +```sh +# Pentru Fedora +sudo yum install libnsl +./rustdesk-.AppImage +``` + +```sh +# Pentru Ubuntu +sudo yum install libfuse2 +./rustdesk-.AppImage +``` + +### Flatpak + +```sh +flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo +flatpak --user install ./rustdesk-.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/). \ No newline at end of file diff --git a/content/client/mac/_index.ro.md b/content/client/mac/_index.ro.md new file mode 100644 index 0000000..97d0d47 --- /dev/null +++ b/content/client/mac/_index.ro.md @@ -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)
+Alte încercări neajutorătoare:
+`tccutil reset ScreenCapture com.carriez.RustDesk`
+`tccutil reset Accessibility com.carriez.RustDesk`
+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) \ No newline at end of file diff --git a/content/client/windows/MSI/_index.ro.md b/content/client/windows/MSI/_index.ro.md new file mode 100644 index 0000000..e3d3207 --- /dev/null +++ b/content/client/windows/MSI/_index.ro.md @@ -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 +``` \ No newline at end of file diff --git a/content/client/windows/_index.ro.md b/content/client/windows/_index.ro.md new file mode 100644 index 0000000..199376e --- /dev/null +++ b/content/client/windows/_index.ro.md @@ -0,0 +1,6 @@ +--- +title: Windows +weight: 4 +--- + +{{% children depth="3" showhidden="true" %}} \ No newline at end of file diff --git a/content/client/windows/windows-portable-elevation/_index.ro.md b/content/client/windows/windows-portable-elevation/_index.ro.md new file mode 100644 index 0000000..683b51d --- /dev/null +++ b/content/client/windows/windows-portable-elevation/_index.ro.md @@ -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
*sau*
Rulați ca administrator | +| Există un utilizator la capătul controlat
*și*
Elevare imediată la conectare
*și*
Conexiune acceptată prin click | Faceți clic `Accept and Elevate` la primirea conexiunii la capătul controlat | +| Există un utilizator la capătul controlat
*și*
Elevare la nevoie | Faceți clic `Elevate` în fereastra de gestionare a conexiunii la capătul controlat
*sau*
Solicitați elevarea de la capătul care controlează | \ No newline at end of file diff --git a/content/dev/_index.ro.md b/content/dev/_index.ro.md new file mode 100644 index 0000000..7848811 --- /dev/null +++ b/content/dev/_index.ro.md @@ -0,0 +1,8 @@ +--- +title: Dezvoltare +weight: 8 +pre: "3. " +chapter: true +--- + +{{% children depth="3" showhidden="true" %}} \ No newline at end of file diff --git a/content/dev/build/_index.ro.md b/content/dev/build/_index.ro.md new file mode 100644 index 0000000..b17f188 --- /dev/null +++ b/content/dev/build/_index.ro.md @@ -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" %}} \ No newline at end of file diff --git a/content/dev/build/faq/_index.ro.md b/content/dev/build/faq/_index.ro.md new file mode 100644 index 0000000..06c04e4 --- /dev/null +++ b/content/dev/build/faq/_index.ro.md @@ -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= 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`. \ No newline at end of file diff --git a/content/dev/build/linux/_index.ro.md b/content/dev/build/linux/_index.ro.md new file mode 100644 index 0000000..b16e7fe --- /dev/null +++ b/content/dev/build/linux/_index.ro.md @@ -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 +``` \ No newline at end of file diff --git a/content/dev/build/osx/_index.ro.md b/content/dev/build/osx/_index.ro.md new file mode 100644 index 0000000..a45429e --- /dev/null +++ b/content/dev/build/osx/_index.ro.md @@ -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 :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//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//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`. \ No newline at end of file diff --git a/content/dev/build/windows/_index.ro.md b/content/dev/build/windows/_index.ro.md new file mode 100644 index 0000000..54633f9 --- /dev/null +++ b/content/dev/build/windows/_index.ro.md @@ -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`=`\vcpkg`. `` 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`=`/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 +``` \ No newline at end of file diff --git a/content/self-host/_index.en.md b/content/self-host/_index.en.md index f6c02db..a9a9be6 100755 --- a/content/self-host/_index.en.md +++ b/content/self-host/_index.en.md @@ -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. diff --git a/content/self-host/_index.ro.md b/content/self-host/_index.ro.md new file mode 100644 index 0000000..d2a6c07 --- /dev/null +++ b/content/self-host/_index.ro.md @@ -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: "2. " +--- + +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" %}} \ No newline at end of file diff --git a/content/self-host/client-configuration/_index.en.md b/content/self-host/client-configuration/_index.en.md index db653ed..3726f50 100644 --- a/content/self-host/client-configuration/_index.en.md +++ b/content/self-host/client-configuration/_index.en.md @@ -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/). diff --git a/content/self-host/client-configuration/_index.ro.md b/content/self-host/client-configuration/_index.ro.md new file mode 100644 index 0000000..49025c6 --- /dev/null +++ b/content/self-host/client-configuration/_index.ro.md @@ -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: "2.3. " +--- + +## 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 [ ⋮ ] 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 ` + +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)). \ No newline at end of file diff --git a/content/self-host/client-configuration/advanced-settings/_index.de.md b/content/self-host/client-configuration/advanced-settings/_index.de.md index 44ef07d..36d9576 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.de.md +++ b/content/self-host/client-configuration/advanced-settings/_index.de.md @@ -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=` | | 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 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` | \ No newline at end of file +| 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 Touch‑Modus oder der Maus‑Modus 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 Maus‑Modus verwendet wird. + +**Ort**: + +1. **Desktop** +2. **Mobile** Einstellungen → Anzeige → Weitere Standard‑Optionen → Touch‑Modus + +##### RustDesk (steuernde Seite) >= 1.4.3 + +Diese Option steuert einheitlich, ob alle Peer‑Geräte den Touch‑Modus oder den Maus‑Modus 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 → Gesten‑Hilfe + +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 → Gesten‑Hilfe + +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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.en.md b/content/self-host/client-configuration/advanced-settings/_index.en.md index 122392c..1f2f3f6 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.en.md +++ b/content/self-host/client-configuration/advanced-settings/_index.en.md @@ -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=
` | | 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 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.es.md b/content/self-host/client-configuration/advanced-settings/_index.es.md index 9740dea..b8d3f4e 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.es.md +++ b/content/self-host/client-configuration/advanced-settings/_index.es.md @@ -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=` | | 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 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` | \ No newline at end of file +| 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.fr.md b/content/self-host/client-configuration/advanced-settings/_index.fr.md index 8e0505c..656514a 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.fr.md +++ b/content/self-host/client-configuration/advanced-settings/_index.fr.md @@ -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=` | | 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 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` | \ No newline at end of file +| 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.it.md b/content/self-host/client-configuration/advanced-settings/_index.it.md index 1e31361..6f3f652 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.it.md +++ b/content/self-host/client-configuration/advanced-settings/_index.it.md @@ -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=` | | 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 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` | \ No newline at end of file +| 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.ja.md b/content/self-host/client-configuration/advanced-settings/_index.ja.md index a656fcf..1159573 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.ja.md +++ b/content/self-host/client-configuration/advanced-settings/_index.ja.md @@ -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` | \ No newline at end of file +| 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.pl.md b/content/self-host/client-configuration/advanced-settings/_index.pl.md index f28b7ef..5b5c785 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.pl.md +++ b/content/self-host/client-configuration/advanced-settings/_index.pl.md @@ -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=` | | 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 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.pt.md b/content/self-host/client-configuration/advanced-settings/_index.pt.md index 7ee9f4d..b5aed13 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.pt.md +++ b/content/self-host/client-configuration/advanced-settings/_index.pt.md @@ -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=` | | 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 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` | \ No newline at end of file +| 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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.ro.md b/content/self-host/client-configuration/advanced-settings/_index.ro.md new file mode 100644 index 0000000..42f14d1 --- /dev/null +++ b/content/self-host/client-configuration/advanced-settings/_index.ro.md @@ -0,0 +1,1452 @@ +--- +title: Setări avansate +weight: 49 +--- + +Toate setările avansate pentru clienții personalizați sunt descrise aici. + +## Niveluri de privilegii pentru setări + +Există patru tipuri de setări: + +1. Setări Override, în `Web Console` → `Custom Clients` +2. Setări implicite (Default), în `Web Console` → `Custom Clients` +3. Setări ale utilizatorului, în clientul RustDesk +4. Setări de strategie (Strategy), în `Web Console` → `Strategies` + +ierarhia privilegiilor pentru aceste setări este: `Override > Strategy > User > Default`. + +## Setări de securitate + +### access-mode + +Setează modul de acces (permisiunile) pentru conexiunile primite. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | custom, full, view | custom | `access-mode=custom` | + +### enable-keyboard + +Activează tastatura / mouse pentru conexiunile primite. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable keyboard +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-keyboard=Y` | + +### enable-clipboard + +Activează copierea și lipirea (clipboard) pentru conexiunile primite. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable clipboard +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-clipboard=Y` | + +### enable-file-transfer + +Activează copierea/lipirea de fișiere sau transferul de fișiere (în sesiune) pentru conexiunile primite. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable file transfer +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-file-transfer=Y` | + + +### enable-camera + +Activează camera pentru conexiunile primite. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable camera +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-camera=Y` | + +### enable-terminal + +Activează terminalul pentru conexiunile primite. + +**Locație**: + +**Desktop** Settings → Security → Permissions → Enable terminal + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-terminal=Y` | + +### enable-remote-printer + +Activează imprimanta la distanță pentru conexiunile primite. + +**Locație**: + +1. **Windows** Settings → Security → Permissions → Enable remote printer + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-remote-printer=Y` | + +### enable-audio + +Activează înregistrarea audio și transmiterea către peer. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable audio +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-audio=Y` | + +### enable-tunnel + +Activează tunneling TCP. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable TCP tunneling +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-tunnel=Y` | + +### enable-remote-restart + +Activează repornirea de la distanță de către partea care controlează. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable remote restart +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-remote-restart=Y` | + +### enable-record-session + +Activează înregistrarea sesiunilor. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable recording session +2. **Mobile** Settings → Share screen → Enable recording session + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-record-session=Y` | + +### enable-block-input + +Permite părții care controlează blocarea input-ului altor utilizatori. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable blocking user input (Windows only) +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-block-input=Y` | + +### allow-remote-config-modification + +Permite părții care controlează să modifice setările în UI-ul RustDesk al părții controlate. + +**Locație**: + +1. **Desktop** Settings → Security → Permissions → Enable remote configuration modification +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `allow-remote-config-modification=Y` | + +### enable-lan-discovery + +Permite descoperirea în LAN. + +După descoperirea LAN, [WOL](https://en.wikipedia.org/wiki/Wake-on-LAN) poate funcționa dacă este suportat local. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Deny LAN discovery +2. **Mobile** Settings → Share screen → Deny LAN discovery + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| Y | Y, N | Y | `enable-lan-discovery=Y` | + +### direct-server + +Activează accesul direct prin IP. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Enable direct IP access +2. **Mobile** Settings → Share screen → Direct IP access + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `direct-server=Y` | + +### direct-access-port + +Portul pentru acces direct prin IP. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Direct IP access port (Show if "Enable direct IP access" is checked) +2. **Mobile** Settings → Share screen → Direct IP access + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | | 21118 | `direct-access-port=21118` | + +### whitelist + +Folosește whitelist pentru IP-uri. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Use IP Whitelisting +2. **Mobile** Settings → Share screen → Use IP Whitelisting + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | `,` or `,,` | `,` means no filter | `whitelist=,` | + +### allow-auto-disconnect & auto-disconnect-timeout + +Închide automat sesiunile primite după o perioadă de inactivitate a utilizatorului. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Automatically close incoming sessions on user inactivity +2. **Mobile** Settings → Share screen → Automatically close incoming sessions on user inactivity + +| Option | Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | :------: | +| allow-auto-disconnect | N | Y, N | N | `allow-auto-disconnect=Y` | +| auto-disconnect-timeout | N | Timeout in minutes | 10 | `auto-disconnect-timeout=10` | + +### allow-only-conn-window-open + +Permite conexiunea doar dacă fereastra RustDesk este deschisă. + +**Locație**: + +1. **Desktop** Settings → Security → Security → Only allow connection if RustDesk window is open +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| Y | Y, N | N | `allow-only-conn-window-open=N` | + +### approve-mode + +Acceptă conexiunile primite prin parolă sau prin click manual. + +**Locație**: + +1. **Desktop** Settings → Security → Password → Dropdown box +2. **Mobile** Share screen → Dropdown menu on right-up corner + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | password, click, password-click | password-click | `approve-mode=password-click` | + +### verification-method + +Tipul de parolă care poate fi folosit; `temporary password` se referă la parola temporară/one-time. + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | use-temporary-password, use-permanent-password, use-both-passwords | use-both-passwords | `verification-method=use-permanent-password` | + +### temporary-password-length + +1. **Desktop** Settings → Security → Password → One-time password length +2. **Mobile** Share screen → Dropdown menu on right-up corner → One-time password length + +Lungimea parolei temporare. + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | 6, 8, 10 | `temporary-password-length=6` | + +### proxy-url + +URL-ul proxy-ului. + +În prezent sunt suportate `http` și `socks5`. + +**Locație**: + +1. **Desktop** Settings → Network → Proxy → Socks5/Http(s) proxy +2. **Mobile** + +Exemple: + +1. **http** `proxy-url=http://192.168.0.2:12345` +2. **https** `proxy-url=https://192.168.0.2:12345` +3. **socks5** `proxy-url=socks5://192.168.0.2:1080` + +### proxy-username & proxy-password + +Utilizator și parolă pentru proxy. + +**Locație**: + +1. **Desktop** Settings → Network → Proxy → Socks5/Http(s) proxy +2. **Mobile** + +| Option | Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | :------: | +| proxy-username | N | | | `proxy-username=user` | +| proxy-password | N | | | `proxy-password=pass` | + +## Setări generale + +### theme + +Controlează tema UI a clientului RustDesk. + +**Locație**: + +1. **Desktop** Settings → General → Theme +2. **Mobile** Settings → Settings → Theme + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | dark, light, system | system | `theme=system` | + +### lang + +Controlează limba clientului RustDesk. + +**Locație**: + +1. **Desktop** Settings → General → Language +2. **Mobile** Settings → Settings → Language + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | default, ar, bg, ... | default | `lang=default` | + +Limbile disponibile în prezent sunt: + +ar, bg, ca, cs, da, de, el, en, eo, es, et, fa, fr, he, hr, hu, id, it, ja, ko, kz, lt, lv, nb, nl, pl, pt, ro, ru, sk, sl, sq, sr, sv, th, tr, uk, vn, zh-cn, zh-tw + +Puteți verifica [LANGS](https://github.com/rustdesk/rustdesk/blob/master/src/lang.rs#L45) din cod pentru lista actualizată de limbi. + +### allow-auto-record-incoming + +Înregistrează automat sesiunile primite. + +**Locație**: + +1. **Desktop** Settings → General → Recording → Automatically record incoming sessions +2. **Mobile** Settings → Recording → Automatically record incoming sessions + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `allow-auto-record-incoming=Y` | + +### allow-auto-record-outgoing + +Înregistrează automat sesiunile inițiate. + +**Locație**: + +1. **Desktop** Settings → General → Recording → Automatically record outgoing sessions +2. **Mobile** Settings → Recording → Automatically record outgoing sessions + +| Install required | Values | Default | Example | Version | +| :------: | :------: | :------: | :------: | :------: | +| N | Y, N | N | `allow-auto-record-outgoing=Y` | >= 1.3.2 | + +### video-save-directory + +Directorul în care sunt salvate videoclipurile înregistrate. + +**Locație**: + +1. **Desktop** Settings → General → Recording → Video save directory +2. **Mobile** Settings → Recording + +Valori implicite: + +1. **macOS** ~/Movies/**app_name** +2. **Linux** ~/Videos/**app_name** +3. **Windows** %USERPROFILE%\Videos\\**app_name** +4. **Android** /Storage/emulated/0/**app_name**/ScreenRecord + +**Notă**: Înlocuiți **app_name** cu numele aplicației curente. + +### enable-confirm-closing-tabs + +Controlează afișarea unui dialog de confirmare înainte de a închide toate tab-urile remote. + +**Locație**: + +1. **Desktop** Settings → General → Other → Confirm before closing multiple tabs +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-confirm-closing-tabs=Y` | + +### enable-abr + +Activează bitrate adaptiv. + +**Locație**: + +1. **Desktop** Settings → General → Other → Adaptive bitrate +2. **Mobile** Settings → Share screen → Adaptive bitrate (beta) + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-abr=Y` | + +### allow-remove-wallpaper + +Elimină wallpaper-ul în timpul sesiunilor primite. + +**Locație**: + +1. **Desktop** Settings → General → Other → Remove wallpaper during incoming sessions +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `allow-remove-wallpaper=N` | + +### enable-open-new-connections-in-tabs + +Controlează dacă o conexiune nouă se deschide într-un tab sau într-o fereastră nouă. + +**Locație**: + +1. **Desktop** Settings → General → Other → Open connection in new tab +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-open-new-connections-in-tabs=Y` | + +### allow-always-software-render + +Folosește întotdeauna rendering software. + +**Locație**: + +1. **Desktop** Settings → General → Other → Always use software rendering +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `allow-always-software-render=N` | + +### allow-linux-headless + +Permite conexiuni primite dacă nu există display-uri (headless). + +Această opțiune necesită mediu desktop, server Xorg și GDM, vezi [PR 3902](https://github.com/rustdesk/rustdesk/pull/3902). + +**Locație**: + +1. **Desktop** Settings → General → Other → Allow Linux headless +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| Y | Y, N | N | `allow-linux-headless=N` | + +### enable-hwcodec + +Activează encodarea hardware pentru a face imaginea mai fluidă. + +**Locație**: + +1. **Desktop** +2. **Mobile** Settings → Hardware codec + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | Y | `enable-hwcodec=Y` | + +### peer-card-ui-type + +Controlează modul de afișare al cardurilor pentru peer (Big tiles, Small tiles, List). + +**Locație**: + +1. **Desktop** Home → Peer panel → Right top grid icon +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | 0, 1, 2 | 0 | `peer-card-ui-type=0` | + +**0** Big tiles +**1** Small tiles +**2** List + +### peer-sorting + +Controlează ordonarea cardurilor peer. + +**Locație**: + +1. **Desktop** Home → Peer panel → Right top sort icon +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Remote ID, Remote Host, Username | Remote ID | `peer-sorting=Remote ID` | + +### sync-ab-with-recent-sessions + +Sincronizează agenda cu sesiunile recente. + +**Locație**: + +1. **Desktop** Home → Peer panel → Address book → Tags → Dropdown menu → Sync with recent sessions +2. **Mobile** Home → Peer panel → Address book → Tags → Dropdown menu → Sync with recent sessions + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `sync-ab-with-recent-sessions=N` | + +### sync-ab-tags + +Controlează sortarea tag-urilor din agenda. + +**Locație**: + +1. **Desktop** Home → Peer panel → Address book → Tags → Dropdown menu → Sort tags +2. **Mobile** Home → Peer panel → Address book → Tags → Dropdown menu → Sort tags + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `sync-ab-tags=N` | + +### filter-ab-by-intersection + +Filtrează agenda după intersecția tag-urilor. + +**Preview**: [PR #5985](https://github.com/rustdesk/rustdesk/pull/5985) + +**Locație**: + +1. **Desktop** Home → Peer panel → Address book → Tags → Dropdown menu → Filter by intersection +2. **Mobile** Home → Peer panel → Address book → Tags → Dropdown menu → Filter by intersection + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `filter-ab-by-intersection=N` | + +### use-texture-render + +**Locație**: + +**Desktop** Settings → General → Other → Use texture render + +Folosiți redarea pe texturi pentru imagini mai line. Dacă întâmpinați probleme de redare, încercați dezactivarea acestei opțiuni. Disponibil doar pe desktop. + +| Values | Default | Example | +| :------: | :------: | :------: | +| Y, N | linux:Y, macOS:N, win7:N, win10+:Y | `use-texture-render=Y` | + +### enable-udp-punch + +**Locație**: + +**Desktop** Settings → General → Other → Enable UDP hole punching +**Mobile** Settings → Enable UDP hole punching + +Disponibil din RustDesk 1.4.1, RustDesk Server Pro 1.6.2 + +| Values | Default | Example | +| :------: | :------: | :------: | +| Y, N | Y | `enable-udp-punch=N` | + +### enable-ipv6-punch + +**Locație**: + +**Desktop** Settings → General → Other → Enable IPv6 P2P connection +**Mobile** Settings → General → Other → Enable IPv6 P2P connection + +Disponibil din RustDesk 1.4.1, RustDesk Server Pro 1.6.2 + +| Values | Default | Example | +| :------: | :------: | :------: | +| Y, N | selfhost:N, otherwise:Y | `enable-ipv6-punch=N` | + +## Setări de afișare + +### view-only + +Această opțiune va seta modul "view-only" pentru fiecare peer după prima conexiune. + +Apoi opțiunea "view-only" din setările fiecărui peer va controla dacă conexiunea este doar vizualizare. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → View mode +2. **Mobile** Settings → Display settings → Other default options → View mode + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `view-only=Y` | + +### show-monitors-toolbar + +Controlează afișarea monitorelor în bara de instrumente. + +![show-monitors-toolbar](/docs/en/self-host/client-configuration/advanced-settings/images/show-monitors-toolbar.png) + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Show monitors toolbar +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `show-monitors-toolbar=Y` | + +### collapse-toolbar + +Controlează dacă bara de instrumente remote este restrânsă după conectare. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Collapse toolbar +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `collapse-toolbar=Y` | + +### show-remote-cursor + +Această opțiune va seta opțiunea "show-remote-cursor" pentru fiecare peer după prima conexiune. + +Apoi setarea "show-remote-cursor" din setările fiecărui peer va controla afișarea cursorului la distanță. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Show remote cursor +2. **Mobile** Settings → Display settings → Other default options → Show remote cursor + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `show-remote-cursor=N` | + +### follow-remote-cursor + +Această opțiune va seta opțiunea "follow-remote-cursor" pentru fiecare peer după prima conexiune. + +Apoi setarea "follow-remote-cursor" din setările fiecărui peer va controla urmărirea cursorului la distanță. + +**Preview**: [PR 7717](https://github.com/rustdesk/rustdesk/pull/7717) + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Follow remote cursor +2. **Mobile** Settings → Display settings → Other default options → Follow remote cursor + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `follow-remote-cursor=Y` | + +### follow-remote-window + +Această opțiune va seta opțiunea "follow-remote-window" pentru fiecare peer după prima conexiune. + +Apoi setarea "follow-remote-window" din setările fiecărui peer va controla urmărirea ferestrei la distanță. + +**Preview**: [PR 7717](https://github.com/rustdesk/rustdesk/pull/7717) + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Follow remote window focus +2. **Mobile** Settings → Display settings → Other default options → Follow remote window focus + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `follow-remote-window=Y` | + +### zoom-cursor + +Această opțiune va seta opțiunea "zoom-cursor" pentru fiecare peer după prima conexiune. + +Setarea "zoom-cursor" din setările fiecărui peer va controla dacă cursorul este scalat în funcție de scala imaginii. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Zoom cursor +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `zoom-cursor=Y` | + +### show-quality-monitor + +Această opțiune va seta opțiunea "show-quality-monitor" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla afișarea monitorului de calitate. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Show quality monitor +2. **Mobile** Settings → Display settings → Other default options → Show quality monitor + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `show-quality-monitor=Y` | + +### disable-audio + +Această opțiune va seta opțiunea "disable-audio" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla redarea sunetului. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Mute +2. **Mobile** Settings → Display settings → Other default options → Mute + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `disable-audio=Y` | + +### enable-file-copy-paste + +Această opțiune va seta opțiunea "enable-file-copy-paste" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla posibilitatea de copiere și lipire de fișiere în conexiune. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Enable file copy and paste (Windows only) +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `enable-file-copy-paste=Y` | + +### disable-clipboard + +Această opțiune va seta opțiunea "disable-clipboard" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla dacă este activată copierea și lipirea de text. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Disable clipboard +2. **Mobile** Settings → Display settings → Other default options → Disable clipboard + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `disable-clipboard=Y` | + +### lock-after-session-end + +Această opțiune va seta opțiunea "lock-after-session-end" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla dacă mașina peer este blocată după terminarea sesiunii. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Lock after session end +2. **Mobile** Settings → Display settings → Other default options → Lock after session end + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `lock-after-session-end=Y` | + +### privacy-mode + +Această opțiune va seta opțiunea "privacy-mode" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla utilizarea modului de confidențialitate după conectare. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Privacy mode +2. **Mobile** Settings → Display settings → Other default options → Privacy mode + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `privacy-mode=Y` | + +### i444 + +Această opțiune va seta opțiunea "i444" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla utilizarea culorii reale (true color). + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → True color (4:4:4) +2. **Mobile** Settings → Display settings → Other default options → True color (4:4:4) + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `i444=Y` | + +### reverse-mouse-wheel + +Această opțiune va seta opțiunea "reverse-mouse-wheel" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla inversarea rolului rotiței mouse-ului. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Reverse mouse wheel +2. **Mobile** Settings → Display settings → Other default options → Reverse mouse wheel + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `reverse-mouse-wheel=Y` | + +### swap-left-right-mouse + +Această opțiune va seta opțiunea "swap-left-right-mouse" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla schimbarea butoanelor stânga-dreapta ale mouse-ului. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Swap left-right mouse button +2. **Mobile** Settings → Display settings → Other default options → Swap left-right mouse button + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `swap-left-right-mouse=Y` | + +### displays-as-individual-windows + +Această opțiune va seta opțiunea "displays-as-individual-windows" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla afișarea display-urilor ca ferestre individuale. + +**Preview**: [PR 5945](https://github.com/rustdesk/rustdesk/pull/5945) + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Show displays as individual windows +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `displays-as-individual-windows=Y` | + +### use-all-my-displays-for-the-remote-session + +Această opțiune va seta opțiunea "use-all-my-displays-for-the-remote-session" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla utilizarea tuturor display-urilor pentru sesiunea remote. + +**Preview**: [PR 6064](https://github.com/rustdesk/rustdesk/pull/6064) + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Use all my displays for the remote session +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `use-all-my-displays-for-the-remote-session=Y` | + +### view-style + +Această opțiune va seta opțiunea "view-style" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla stilul de vizualizare. + +**Locație**: + +1. **Desktop** Settings → Display → Default view style +2. **Mobile** Settings → Display settings → Default view style + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | original, adaptive | original | `view-style=original` | + +### scroll-style + +Această opțiune va seta opțiunea "scroll-style" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla stilul de derulare. + +**Locație**: + +1. **Desktop** Settings → Display → Default scroll style +2. **Mobile** + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | scrollauto, scrollbar, scrolledge | scrollauto | `scroll-style=scrollauto` | + +**Notă**: Opțiunea `scrolledge` este disponibilă începând cu RustDesk 1.4.4. + +### edge-scroll-edge-thickness + +Această opțiune controlează grosimea marginii când `scroll-style` este setat pe `scrolledge`. Grosimea marginii determină dimensiunea zonei derulabile la marginile ecranului. + +Această opțiune este efectivă doar când `scroll-style=scrolledge`. + +**Locație**: + +1. **Desktop** Settings → Display → Edge scroll edge thickness + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | 20-150 | 100 | `edge-scroll-edge-thickness=100` | + +**Notă**: Această opțiune este disponibilă începând cu RustDesk 1.4.4. + +### image-quality + +Această opțiune va seta opțiunea "image-quality" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla calitatea imaginii. + +**Locație**: + +1. **Desktop** Settings → Display → Default image quality +2. **Mobile** Settings → Display settings → Default image quality + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | best, balanced, low, custom | balanced | `image-quality=balanced` | + +### custom-image-quality + +Această opțiune va seta opțiunea "custom-image-quality" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla calitatea imaginii când `image-quality` e setat pe `custom`. + +**Locație**: + +1. **Desktop** Settings → Display → Default image quality → Custom +2. **Mobile** Settings → Display settings → Default image quality → Custom + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | [10.0, 2000.0] | 50.0 | `custom-image-quality=50` | + +### custom-fps + +Această opțiune va seta opțiunea "custom-fps" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla fps când `image-quality` e setat pe `custom`. + +**Locație**: + +1. **Desktop** Settings → Display → Default image quality → Custom +2. **Mobile** Settings → Display settings → Default image quality → Custom + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | [5, 120] | 30 | `custom-fps=30` | + +### codec-preference + +Această opțiune va seta opțiunea "codec-preference" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla codec-ul pentru imagini. + +**Locație**: + +1. **Desktop** Settings → Display → Default codec +2. **Mobile** Settings → Display settings → Default codec + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | auto, vp8, vp9, av1, h264, h265 | auto | `codec-preference=auto` | + +**Atenție**: Opțiunile în afară de "vp8" și "vp9" pot să nu funcționeze. Depinde de suportul mașinii. + +### terminal-persistent + +Această opțiune va seta opțiunea "terminal-persistent" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla păstrarea sesiunilor terminal după deconectare. + +**Locație**: + +1. **Desktop** Settings → Display → Other default options → Keep terminal sessions on disconnect +2. **Mobile** Settings → Display settings → Other default options → Keep terminal sessions on disconnect + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | Y, N | N | `terminal-persistent=Y` | + +### trackpad-speed + +Această opțiune va seta opțiunea "trackpad-speed" pentru fiecare peer după prima conexiune. + +Setarea din fiecare peer va controla viteza trackpad-ului implicit. + +**Locație**: + +1. **Desktop** Settings → Display → Default trackpad speed +2. **Mobile** Settings → Display settings → Default trackpad speed + +| Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | +| N | [10, 1000] | 100 | `trackpad-speed=100` | + +## Alte setări + +### preset-address-book-name & preset-address-book-tag & preset-address-book-alias & preset-address-book-password & preset-address-book-note + +Setează numele prestabilit al agendei (address book), tag-ul dispozitivului, alias-ul dispozitivului, parola dispozitivului și nota dispozitivului. Vezi https://github.com/rustdesk/rustdesk-server-pro/issues/257. +Puteți seta `preset-address-book-name` doar dacă nu doriți să setați tag. +Folosiți un nume și tag valide pe pagina de address book din consola web. + +| Option | Install required | Values | Default | Example | +| :------: | :------: | :------: | :------: | :------: | +| 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 sunt disponibile în clientul RustDesk >=1.4.3, pro >= 1.6.6. + +### disable-group-panel + +Dezactivează panoul de grup (lângă panoul cărții de adrese, este numit "Dispozitive accesibile" din versiunea 1.3.8) pe clientul RustDesk, https://github.com/rustdesk/rustdesk-server-pro/issues/250. + +| Opțiune | Instalare necesară | Valori | Implicit | Exemplu | +| :------: | :------: | :------: | :------: | :------: | +| disable-group-panel | N | Y, N | N | `disable-group-panel=Y` | + +### pre-elevate-service + +Elevare automată la rulare pentru Windows portabil, https://github.com/rustdesk/rustdesk-server-pro/issues/252. + +| Opțiune | Instalare necesară | Valori | Implicit | Exemplu | +| :------: | :------: | :------: | :------: | :------: | +| pre-elevate-service | N | Y, N | N | `pre-elevate-service=Y` | + +### disable-floating-window + +Când serviciul Android pornește, va afișa o fereastră flotantă, care ajută la prevenirea uciderii serviciului RustDesk de către sistem. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `disable-floating-window=Y` | + +### floating-window-size + +Când serviciul Android pornește, va afișa o fereastră flotantă, care ajută la prevenirea uciderii serviciului RustDesk de către sistem. Când dimensiunea este mai mică de 120, fereastra flotantă va fi dificil de apăsat. O dimensiune foarte mică poate să nu poată menține serviciul în fundal pe unele dispozitive. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| [32, 320] | 120 | `floating-window-size=120` | + +### floating-window-untouchable + +În mod implicit, apăsarea pe fereastra flotantă va deschide un meniu. După setarea la 'untouchable', apăsarea sau glisarea va trece prin fereastra flotantă și va fi transmisă ferestrei de dedesubt. După setarea la 'untouchable', poziția ferestrei flotante nu poate fi modificată, iar sistemul poate seta automat fereastra flotantă să fie semi-transparentă. Cu toate acestea, această funcție poate să nu funcționeze într-un număr mic de aplicații, cum ar fi aplicația GitHub. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `floating-window-untouchable=Y` | + +### floating-window-transparency + +Ferestrele flotante Android au transparență reglabilă. Dacă doriți să activați dar să ascundeți fereastra flotantă, puteți seta transparența la 0, fereastra flotantă va fi setată automat la 'untouchable' pentru a permite trecerea evenimentelor de clic. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| [0, 10] | 10 | `floating-window-transparency=5` | + +### floating-window-svg + +Dacă nu este setată o pictogramă pentru fereastra flotantă Android, va afișa în mod implicit pictograma RustDesk. +La setare, vă rugăm să scrieți conținutul text al SVG pe o singură linie și să acordați atenție [limitărilor suportului SVG](https://bigbadaboom.github.io/androidsvg/index.html). + +| Implicit | Exemplu | +| :------: | :------: | +| Pictogramă RustDesk | `floating-window-svg=` | + +### keep-screen-on + +Aceasta este pentru partea controlată Android. Rețineți că menținerea ecranului aprins depinde de fereastra flotantă. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| never, during-controlled, service-on | during-controlled | `keep-screen-on=never` | + +### enable-directx-capture + +Aceasta este pentru partea controlată Windows. Dacă nu întâmpinați probleme, se recomandă utilizarea setărilor implicite, care prioritizează utilizarea DirectX pentru capturi de ecran în loc de utilizarea directă a GDI. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | Y | `enable-directx-capture=N` | + +### enable-android-software-encoding-half-scale + +Aceasta este pentru partea controlată Android. În mod implicit, când rezoluția este mai mare de 1200, codificarea hardware folosește rezoluția originală, în timp ce codificarea software folosește jumătate din rezoluție, deoarece codificarea software este mai lentă. Această opțiune este utilizată pentru a seta dacă codificarea software ar trebui scalată la jumătate din rezoluție. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | Y | `enable-android-software-encoding-half-scale=N` | + +### allow-remote-cm-modification + +Controlează dacă se permite părții de control să facă clic pe fereastra de gestionare a conexiunii pentru a accepta conexiuni, schimba permisiuni, etc. + +https://github.com/rustdesk/rustdesk/issues/7425 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-remote-cm-modification=Y` | + +### remove-preset-password-warning + +Controlează dacă se elimină avertismentul de securitate din GUI când există o parolă presetată în clientul personalizat. + +https://github.com/rustdesk/rustdesk-server-pro/discussions/286 + +https://github.com/rustdesk/rustdesk/discussions/7956 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| 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 + +Controlează dacă se ascund unele setări. Vă rugăm să vă asigurați că `Disable settings` este dezactivat, altfel acestea nu vor funcționa. + +https://github.com/rustdesk/rustdesk-server-pro/issues/263 + +https://github.com/rustdesk/rustdesk-server-pro/issues/276 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `hide-security-settings=Y` | + +### hide-username-on-card + +Controlează dacă se afișează numele de utilizator în lista de dispozitive. Pentru că uneori, numele de utilizator este prea lung, va ascunde celelalte informații. + +https://github.com/rustdesk/rustdesk-server-pro/issues/284#issuecomment-2216521407 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `hide-username-on-card=Y` | + +### hide-help-cards + +Controlează dacă se afișează avertismentele UAC / permisiuni în GUI. + +https://github.com/rustdesk/rustdesk/issues/8687 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `hide-help-cards=Y` | + +### display-name + +Schimbă numele de afișare care va fi afișat în pop-up când vă conectați la un dispozitiv la distanță. În mod implicit, afișează mai întâi numele utilizatorului conectat, altfel afișează numele de utilizator al sistemului de operare. + +https://github.com/rustdesk/rustdesk-server-pro/issues/277 + +### disable-udp + +Controlează dacă se utilizează doar TCP. Nu va mai folosi UDP 21116, TCP 21116 va fi folosit în schimb. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `disable-udp=Y` | + +### preset-user-name / preset-strategy-name / preset-device-group-name / preset-device-username / preset-device-name / preset-note + +Atribuie utilizator / strategie / grup de dispozitive / nume de utilizator dispozitiv / nume-dispozitiv(hostname) / notă la dispozitiv. Puteți face acest lucru și prin [linia de comandă](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 + +grupul de dispozitive este disponibil în clientul RustDesk >=1.3.8, pro >= 1.5.0 + +preset-device-username, preset-device-name, preset-note sunt disponibile în clientul RustDesk >=1.4.3, pro >= 1.6.6. + +### default-connect-password + +Utilizați `parola de conexiune implicită` pentru a stabili conexiuni la dispozitive la distanță. Această parolă este configurată pe partea de control și nu trebuie confundată cu nicio [parolă presetată](https://github.com/rustdesk/rustdesk/wiki/FAQ#how-can-we-set-up-a-client-with-a-fixed-password-for-unattended-remote-access) găsită pe clientul controlat (doar primire). + +ex. `default-connect-password=abcd1234` + +### enable-trusted-devices + +Permite dispozitivelor de încredere să omită verificarea 2FA. + +https://github.com/rustdesk/rustdesk/discussions/8513#discussioncomment-10234494 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | Y | `enable-trusted-devices=N` | + +### hide-tray + +Dezactivează pictograma din bara de sistem (systray). + +https://github.com/rustdesk/rustdesk-server-pro/issues/332 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `hide-tray=Y` | + +### one-way-clipboard-redirection + +Dezactivează sincronizarea clipboard-ului de la partea controlată la partea de control, disponibil în clientul RustDesk >=1.3.1 (partea controlată) + +https://github.com/rustdesk/rustdesk/discussions/7837 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `one-way-clipboard-redirection=Y` | + +### one-way-file-transfer + +Dezactivează transferul de fișiere de la partea controlată la partea de control, disponibil în clientul RustDesk >=1.3.1 (partea controlată) + +https://github.com/rustdesk/rustdesk/discussions/7837 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `one-way-file-transfer=Y` | + + +### sync-init-clipboard + +Dacă se sincronizează clipboard-ul inițial la stabilirea conexiunii (doar de la partea de control la partea controlată), disponibil în clientul RustDesk >=1.3.1 (partea de control) + +https://github.com/rustdesk/rustdesk/discussions/9010 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `sync-init-clipboard=Y` | + +### allow-logon-screen-password + +Dacă se permite introducerea parolei pe ecranul de logare când se folosește [modul de aprobare doar prin clic](https://rustdesk.com/docs/en/self-host/client-configuration/advanced-settings/#approve-mode), disponibil în clientul RustDesk >=1.3.1 (partea controlată) + +https://github.com/rustdesk/rustdesk/discussions/9269 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-logon-screen-password=Y` | + +### allow-https-21114 + +De obicei, HTTPS folosește portul 443. Când portul serverului API este setat greșit la 21114, clientul RustDesk va elimina setarea portului 21114 în mod implicit. Setarea opțiunii la Y permite utilizarea 21114 ca port HTTPS. Disponibil în clientul RustDesk >=1.3.9. + +https://github.com/rustdesk/rustdesk-server-pro/discussions/570 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-https-21114=Y` | + +### allow-d3d-render + +Redarea D3D poate obține FPS mare și reduce utilizarea CPU, dar ecranul de control la distanță poate fi negru pe unele dispozitive. Disponibil în clientul RustDesk >=1.3.9, doar Windows. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-d3d-render=Y` | + +### allow-hostname-as-id + +[Folosește hostname ca id](https://github.com/rustdesk/rustdesk-server-pro/discussions/483), spațiile din hostname sunt înlocuite cu '-'. Acest lucru nu este garantat 100% și se întâmplă doar prima dată când este rulat clientul RustDesk (adică pe un client nou instalat); dacă apare un conflict, va fi atribuit un ID aleatoriu. + +Disponibil în clientul RustDesk versiunea 1.4.0 și ulterioară. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-hostname-as-id=Y` | + +### allow-websocket + +Folosește protocolul WebSocket pentru a conecta serverul și clientul. Disponibil doar în clientul RustDesk >=1.4.0 și serverul Pro >= 1.5.7. Rețineți că WebSocket suportă doar conexiuni relay. + +Pentru a face WebSocket să funcționeze, trebuie să configurați corect proxy-ul reverse, 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 + +**Locație**: + +**Desktop** Setări → Rețea → Folosește Websocket +**Mobil** Setări → Folosește Websocket + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-websocket=Y` | + +### allow-numeric-one-time-password + +Această opțiune activează sau dezactivează utilizarea parolelor unice doar numerice. +Disponibilă doar în clientul RustDesk >=1.4.1 și serverul Pro >= 1.5.9. + +**Discuție**: https://github.com/rustdesk/rustdesk-server-pro/discussions/685 + +**Previzualizare**: https://github.com/rustdesk/rustdesk/pull/11846 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-numeric-one-time-password=Y` | + +### register-device + +Nu înregistrați dispozitivul, nu îl veți vedea în pagina de dispozitive din consola web. + +**Disponibil doar în serverul Pro >= 1.6.0 și necesită [licență custom2](https://rustdesk.com/pricing#custom2) și număr de conexiuni simultane >= 2.** + +Dacă `register-device=N`, următoarele nu vor funcționa pentru acest dispozitiv. +- Autentificare +- comanda `--assign` +- `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` +- Jurnale de audit +- Strategie + +**Discuție**: https://github.com/rustdesk/rustdesk-server-pro/discussions/672 și https://github.com/rustdesk/rustdesk-server-pro/discussions/182 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | Y | `register-device=N` | + +### main-window-always-on-top + +Menține întotdeauna fereastra principală deasupra. + +**Discuție**: https://github.com/rustdesk/rustdesk-server-pro/issues/761 + +Disponibil doar în clientul RustDesk 1.4.2. + +| Instalare necesară | Valori | Implicit | Exemplu | +| :------: | :------: | :------: | :------: | +| 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 + +Dezactivează panoul `Discovered` (lângă panoul `Favorites`) pe clientul RustDesk + +| Opțiune | Instalare necesară | Valori | Implicit | Exemplu | +| :------: | :------: | :------: | :------: | :------: | +| disable-discovery-panel | N | Y, N | N | `disable-discovery-panel=Y` | + +### touch-mode + +Controlează dacă se utilizează modul tactil sau modul mouse în timpul sesiunilor de control la distanță. + +#### Diferențe de comportament în funcție de versiune + +##### RustDesk (Partea de control) < 1.4.3 + +După prima conexiune, această opțiune setează setarea "touch-mode" pentru fiecare peer. Ulterior, setările individuale ale fiecărui peer determină dacă se utilizează modul tactil sau modul mouse. + +**Locație**: + +1. **Desktop** +2. **Mobil** Setări → Setări afișare → Alte opțiuni implicite → Mod tactil + +##### RustDesk (Partea de control) >= 1.4.3 + +Această opțiune controlează uniform dacă toate dispozitivele peer folosesc modul tactil sau modul mouse, suprascriind setările individuale ale dispozitivelor. + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `touch-mode=Y` | + +### show-virtual-mouse + +https://github.com/rustdesk/rustdesk/pull/12911 + +Controlează afișarea mouse-ului virtual când mobil -> desktop. + +**Locație**: + +1. **Desktop** +2. **Mobil** Sesiune la distanță -> bară de navigare de jos -> asistent gesturi + +Disponibil din RustDesk 1.4.3 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `show-virtual-mouse=Y` | + +**Notă**: Această opțiune ar trebui configurată în **Default settings** în loc de **Override settings**. + +### show-virtual-joystick + +https://github.com/rustdesk/rustdesk/pull/12911 + +Controlează afișarea joystick-ului virtual când mobil -> desktop. + +Această opțiune necesită ca **show-virtual-mouse** să fie activat. + +**Locație**: + +1. **Desktop** +2. **Mobil** Sesiune la distanță -> bară de navigare de jos -> asistent gesturi + +Disponibil din RustDesk 1.4.3 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `show-virtual-joystick=Y` | + +**Notă**: Această opțiune ar trebui configurată în **Default settings** în loc de **Override settings**. + +### allow-insecure-tls-fallback + +În mod implicit, RustDesk verifică certificatul serverului pentru protocoalele care folosesc TLS. + +Cu această opțiune activată, RustDesk va reveni la omiterea pasului de verificare și va continua în caz de eșec al verificării. + +**Locație**: + +**Desktop** Setări → Rețea → Permite revenirea la TLS nesigur +**Mobil** Setări → Permite revenirea la TLS nesigur + +Disponibil din RustDesk 1.4.4 + +| Valori | Implicit | Exemplu | +| :------: | :------: | :------: | +| Y, N | N | `allow-insecure-tls-fallback=Y` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md b/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md index a45e358..93c3953 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md +++ b/content/self-host/client-configuration/advanced-settings/_index.zh-cn.md @@ -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` | diff --git a/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md b/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md index 15d6164..b566da2 100644 --- a/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md +++ b/content/self-host/client-configuration/advanced-settings/_index.zh-tw.md @@ -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=` | - -### 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` | diff --git a/content/self-host/client-deployment/_index.ro.md b/content/self-host/client-deployment/_index.ro.md new file mode 100644 index 0000000..9c1f71f --- /dev/null +++ b/content/self-host/client-deployment/_index.ro.md @@ -0,0 +1,376 @@ +--- +title: Deployare client +weight: 400 +pre: "2.4. " +--- + +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/(?.*)/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 ", 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 "..............................................." +``` \ No newline at end of file diff --git a/content/self-host/nat-loopback-issues/_index.ro.md b/content/self-host/nat-loopback-issues/_index.ro.md new file mode 100644 index 0000000..eaa3f8f --- /dev/null +++ b/content/self-host/nat-loopback-issues/_index.ro.md @@ -0,0 +1,131 @@ +--- +title: Probleme NAT Loopback +weight: 500 +pre: "2.5. " +--- + +{{% 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) +
+ +Accesați setarea "DNS rewrites". + +![](/docs/en/self-host/nat-loopback-issues/images/adguard_home_click_dns_rewrites.png) +
+ +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!*** +
+ +#### 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 +``` \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/Docker/_index.ro.md b/content/self-host/rustdesk-server-oss/Docker/_index.ro.md new file mode 100644 index 0000000..bfafadf --- /dev/null +++ b/content/self-host/rustdesk-server-oss/Docker/_index.ro.md @@ -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 +``` + + +{{% 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 +``` \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/_index.ro.md b/content/self-host/rustdesk-server-oss/_index.ro.md new file mode 100644 index 0000000..f808754 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/_index.ro.md @@ -0,0 +1,13 @@ +--- +title: RustDesk Server OSS +weight: 100 +pre: "2.1. " +--- + +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" %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/install/_index.ro.md b/content/self-host/rustdesk-server-oss/install/_index.ro.md new file mode 100644 index 0000000..0e1fe15 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/install/_index.ro.md @@ -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 .deb` sau `dpkg -i .deb`. + +## Configurează clientul +Te rog verifică [această pagină](/docs/en/self-host/client-configuration/#2-manual-config). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/_index.ro.md b/content/self-host/rustdesk-server-oss/synology/_index.ro.md new file mode 100644 index 0000000..6423fc9 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/_index.ro.md @@ -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" %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ro.md b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ro.md new file mode 100644 index 0000000..92078cd --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/dsm-6/_index.ro.md @@ -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. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.ro.md b/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.ro.md new file mode 100644 index 0000000..1bc600a --- /dev/null +++ b/content/self-host/rustdesk-server-oss/synology/dsm-7/_index.ro.md @@ -0,0 +1,90 @@ +--- +title: Synology DSM 7.2 +weight: 20 +--- + + +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 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-oss/windows/_index.ro.md b/content/self-host/rustdesk-server-oss/windows/_index.ro.md new file mode 100644 index 0000000..36b36d9 --- /dev/null +++ b/content/self-host/rustdesk-server-oss/windows/_index.ro.md @@ -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 +nssm install +``` + +**Pornește serviciile** + +După instalarea serviciilor, pornește-le: +```cmd +nssm start +nssm start +``` + +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 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/2fa/_index.ro.md b/content/self-host/rustdesk-server-pro/2fa/_index.ro.md new file mode 100644 index 0000000..a363cfe --- /dev/null +++ b/content/self-host/rustdesk-server-pro/2fa/_index.ro.md @@ -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 %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/_index.ro.md b/content/self-host/rustdesk-server-pro/_index.ro.md new file mode 100644 index 0000000..5a9c37b --- /dev/null +++ b/content/self-host/rustdesk-server-pro/_index.ro.md @@ -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: "2.2. " +--- + +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://: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 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/console/_index.de.md b/content/self-host/rustdesk-server-pro/console/_index.de.md index 55cbc18..6daee20 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.de.md +++ b/content/self-host/rustdesk-server-pro/console/_index.de.md @@ -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 --user_name `. 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 --user_name `. +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 --strategy_name ` 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 --address_book_name ` oder `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- + +## 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 --user_name + +--- + +Unterstützte Parameter + +| Parameter | Beschreibung | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | -------------------------------------------------- | ------------------- | --------------- | +| `--user_name ` | Weist dem Gerät einen Benutzer zu | | | +| `--strategy_name ` | Weist dem Gerät eine Strategie zu | | | +| `--address_book_name ` | Weist das Gerät einem Adressbuch zu | | | +| `--address_book_tag ` | Weist über Adressbuch-Tag zu | | | +| `--address_book_alias ` | Weist über Adressbuch-Alias zu | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Setzt das Passwort für den Adressbucheintrag | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Fügt eine Notiz für den Adressbucheintrag hinzu | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Weist das Gerät einer Gerätegruppe zu | | | +| `--note ` | Fügt dem Gerät eine Notiz hinzu | 1.6.6 | 1.4.3 | +| `--device_username ` | Legt den Gerätenutzernamen fest | 1.6.6 | 1.4.3 | +| `--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" ... | more` +oder +`"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--name ] [--group_name ]` + +**Filter:** +- `--name`: Benutzername (unscharfe Suche) +- `--group_name`: Benutzergruppe (exakte Übereinstimmung) + +**Beispiel:** +`./users.py --url https://example.com --token view --group_name Default` + +**Grundlegende Operationen:** + +- **Benutzer deaktivieren:** + `./users.py --url --token disable --name testuser` + +- **Benutzer aktivieren:** + `./users.py --url --token enable --name testuser` + +- **Benutzer löschen:** + `./users.py --url --token delete --name testuser` + +**Benutzererstellung und Einladung:** + +- **Neuen Benutzer erstellen:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Erforderlich: `--web-console-url` + +- **2FA-Erzwingung deaktivieren:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optional: `--web-console-url` + +- **2FA zurücksetzen:** + `./users.py --url --token reset-2fa --name username` + +- **E-Mail-Verifizierung deaktivieren:** + `./users.py --url --token disable-email-verification --name username` + +- **Erzwungenes Abmelden:** + `./users.py --url --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 --token view [--name ]` + +**Beispiel:** +`./user_group.py --url https://example.com --token view --name "Vertriebsteam"` + +**Gruppenoperationen:** + +- **Benutzergruppe erstellen:** + `./user_group.py --url --token add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from ''] [--access-to '']` + + Beispiel mit Zugriffskontrolle: + `./user_group.py --url --token add --name "Engineering" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Dev-Server"}]'` + +- **Benutzergruppe aktualisieren:** + `./user_group.py --url --token update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from ''] [--access-to '']` + +- **Benutzergruppe löschen:** + `./user_group.py --url --token delete --name "Gruppenname"` + + Unterstützt kommagetrennte Namen: `--name "Gruppe1,Gruppe2,Gruppe3"` + +**Benutzerverwaltung in Gruppen:** + +- **Benutzer in Gruppe anzeigen:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filter: + - `--name`: Gruppenname (exakte Übereinstimmung, optional) + - `--user-name`: Benutzername (unscharfe Suche, optional) + + Beispiel: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Benutzer zur Gruppe hinzufügen:** + `./user_group.py --url --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 --token view [--name ]` + +**Beispiel:** +`./device_group.py --url https://example.com --token view` + +**Gruppenoperationen:** + +- **Gerätegruppe erstellen:** + `./device_group.py --url --token add --name "Gruppenname" [--note "Beschreibung"] [--accessed-from '']` + + Beispiel: + `./device_group.py --url --token add --name "Produktion" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Gerätegruppe aktualisieren:** + `./device_group.py --url --token update --name "Gruppenname" [--new-name "Neuer Name"] [--note "Neue Notiz"] [--accessed-from '']` + +- **Gerätegruppe löschen:** + `./device_group.py --url --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 --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 --token view-devices --name Produktion + + # Nach Gerätename suchen + ./device_group.py --url --token view-devices --device-name server + + # Filter kombinieren + ./device_group.py --url --token view-devices --name Produktion --user-name john + ``` + + +- **Geräte zur Gruppe hinzufügen:** + `./device_group.py --url --token add-devices --name "Gruppenname" --ids "deviceid1,deviceid2"` + +- **Geräte aus Gruppe entfernen:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 assign --device_name PC01 --assign_to user_name=mike + +--- + +#### Adressbuchverwaltung (`ab.py`) + +**Hilfe anzeigen:** + ./ab.py -h + +**Freigegebene Adressbücher anzeigen:** + ./ab.py --url --token view-ab [--ab-name ] + +**Persönliche Adressbuch-GUID abrufen:** + ./ab.py --url --token get-personal-ab + +**Ein freigegebenes Adressbuch hinzufügen:** + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Ein freigegebenes Adressbuch aktualisieren oder löschen:** + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Peers in einem Adressbuch anzeigen:** + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Peer hinzufügen, aktualisieren oder löschen:** + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Tag-Verwaltung:** + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Zugriffsregelverwaltung:** + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Beispiel (Lesezugriff für Benutzer „mike“ hinzufügen):** + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### Strategieverwaltung (`strategies.py`) + +**Hilfe anzeigen:** +`./strategies.py -h` + +**Alle Strategien auflisten:** +`./strategies.py --url --token list` + +**Spezifische Strategie anzeigen:** +```bash +# Nach Name +./strategies.py --url --token view --name "Default" + +# Nach GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Strategie aktivieren oder deaktivieren:** +```bash +./strategies.py --url --token enable --name "StrategieName" +./strategies.py --url --token disable --name "StrategieName" +``` + +**Strategie Geräten, Benutzern oder Gerätegruppen zuweisen:** +```bash +# Geräten zuweisen (nach Geräte-ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Benutzern zuweisen (nach Benutzername) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Gerätegruppen zuweisen (nach Gruppenname) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Gemischte Zuweisung +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Strategie-Zuweisung aufheben:** +```bash +# Von Geräten aufheben +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Von Benutzern aufheben +./strategies.py --url --token unassign --users "admin" + +# Von Gerätegruppen aufheben +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Dateiübertragungsprotokolle anzeigen:** + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Alarmprotokolle anzeigen:** + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Konsolenprotokolle anzeigen:** + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 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" ... | more` oder `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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. diff --git a/content/self-host/rustdesk-server-pro/console/_index.en.md b/content/self-host/rustdesk-server-pro/console/_index.en.md index 6e36038..ff24f77 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.en.md +++ b/content/self-host/rustdesk-server-pro/console/_index.en.md @@ -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 --user_name `. 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 --user_name `. +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 --strategy_name `. +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 --address_book_name ` or `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- + +## 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 --user_name +``` + +Supported Parameters + +| Parameter | Description | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | --------------------------------------- | ------------------- | --------------- | ------------------- | +| `--user_name ` | Assign a user to the device | | | +| `--strategy_name ` | Assign a strategy to the device | | | +| `--address_book_name ` | Assign device to an address book | | | +| `--address_book_tag ` | Assign with address book tag | | | +| `--address_book_alias ` | Assign with address book alias | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Set password for the address book entry | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Set note for the address book entry | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Assign device to a device group | | | +| `--note ` | Add note to the device | 1.6.6 | 1.4.3 | +| `--device_username ` | Set the device username | 1.6.6 | 1.4.3 | +| `--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" ... | more` or `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--name ] [--group_name ]` + +**Filters:** +- `--name`: username (fuzzy search) +- `--group_name`: user group (exact match) + +**Example:** +`./users.py --url https://example.com --token view --group_name Default` + +**Basic operations:** + +- **Disable user:** + `./users.py --url --token disable --name testuser` + +- **Enable user:** + `./users.py --url --token enable --name testuser` + +- **Delete user:** + `./users.py --url --token delete --name testuser` + +**User creation and invitation:** + +- **Create new user:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Required: `--web-console-url` + +- **Disable 2FA enforcement:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optional: `--web-console-url` + +- **Reset 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Disable email verification:** + `./users.py --url --token disable-email-verification --name username` + +- **Force logout:** + `./users.py --url --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 --token view [--name ]` + +**Example:** +`./user_group.py --url https://example.com --token view --name "Sales Team"` + +**Group operations:** + +- **Create user group:** + `./user_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from ''] [--access-to '']` + + Example with access control: + `./user_group.py --url --token add --name "Engineering" --accessed-from '[{"type":0,"name":"Managers"}]' --access-to '[{"type":1,"name":"DevServers"}]'` + +- **Update user group:** + `./user_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from ''] [--access-to '']` + +- **Delete user group:** + `./user_group.py --url --token delete --name "GroupName"` + + Supports comma-separated names: `--name "Group1,Group2,Group3"` + +**User management in groups:** + +- **View users in group:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + Filters: + - `--name`: group name (exact match, optional) + - `--user-name`: username (fuzzy search, optional) + + Example: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Add users to group:** + `./user_group.py --url --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 --token view [--name ]` + +**Example:** +`./device_group.py --url https://example.com --token view` + +**Group operations:** + +- **Create device group:** + `./device_group.py --url --token add --name "GroupName" [--note "description"] [--accessed-from '']` + + Example: + `./device_group.py --url --token add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Update device group:** + `./device_group.py --url --token update --name "GroupName" [--new-name "NewName"] [--note "new note"] [--accessed-from '']` + +- **Delete device group:** + `./device_group.py --url --token delete --name "GroupName"` + + Supports comma-separated names: `--name "Group1,Group2,Group3"` + +**Device management in groups:** + +- **View devices in group:** + `./device_group.py --url --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 --token view-devices --name Production + + # Search by device name + ./device_group.py --url --token view-devices --device-name server + + # Combine filters + ./device_group.py --url --token view-devices --name Production --user-name john + ``` + +- **Add devices to group:** + `./device_group.py --url --token add-devices --name "GroupName" --ids "deviceid1,deviceid2"` + +- **Remove devices from group:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 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 --token view-ab [--ab-name ]` + +**Get personal address book GUID:** +`./ab.py --url --token get-personal-ab` + +**Add a shared address book:** +`./ab.py --url --token add-ab --ab-name [--note ] [--password ]` + +**Update or delete a shared address book:** +`./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ]` +`./ab.py --url --token delete-ab --ab-guid ` + +**View peers in an address book:** +`./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ]` + +**Add, update, or delete a peer:** +`./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token delete-peer --ab-guid --peer-id ` + +**Tags management:** +`./ab.py --url --token view-tag --ab-guid ` +`./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00]` +`./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000` +`./ab.py --url --token delete-tag --ab-guid --tag-name ` + +**Access rules management:** +`./ab.py --url --token view-rule --ab-guid ` +`./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full` +`./ab.py --url --token update-rule --rule-guid --rule-permission rw` +`./ab.py --url --token delete-rule --rule-guid ` + +**Example (add read-only rule for user "mike"):** +`./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro` + +--- + +#### Strategies Management (`strategies.py`) + +**Show help:** +`./strategies.py -h` + +**List all strategies:** +`./strategies.py --url --token list` + +**View a specific strategy:** +```bash +# By name +./strategies.py --url --token view --name "Default" + +# By GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Enable or disable a strategy:** +```bash +./strategies.py --url --token enable --name "StrategyName" +./strategies.py --url --token disable --name "StrategyName" +``` + +**Assign strategy to devices, users, or device groups:** +```bash +# Assign to devices (by device ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Assign to users (by username) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Assign to device groups (by group name) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Mixed assignment +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Unassign strategy:** +```bash +# Unassign from devices +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Unassign from users +./strategies.py --url --token unassign --users "admin" + +# Unassign from device groups +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**View file audits:** +`./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**View alarm audits:** +`./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**View console audits:** +`./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**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 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 Enter. diff --git a/content/self-host/rustdesk-server-pro/console/_index.es.md b/content/self-host/rustdesk-server-pro/console/_index.es.md index d696e9e..8af4ad5 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.es.md +++ b/content/self-host/rustdesk-server-pro/console/_index.es.md @@ -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 --user_name `. 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 --user_name `. +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 --strategy_name `. +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 --address_book_name ` o `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- -La línea de comandos en Windows no tiene salida por defecto. Para obtener salida, ejecute así, `"C:\Program Files\RustDesk\rustdesk.exe" ... | more` o `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --user_name + +Parámetros Soportados + +| Parámetro | Descripción | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | --------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Asignar un usuario al dispositivo | | | +| `--strategy_name ` | Asignar una estrategia al dispositivo | | | +| `--address_book_name ` | Asignar dispositivo a una libreta | | | +| `--address_book_tag ` | Asignar con etiqueta de libreta | | | +| `--address_book_alias ` | Asignar con alias de libreta | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Establecer contraseña para la entrada | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Establecer nota para la entrada | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Asignar dispositivo a un grupo | | | +| `--note ` | Agregar nota al dispositivo | 1.6.6 | 1.4.3 | +| `--device_username ` | Establecer el nombre de usuario del dispositivo | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--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 view --group_name Default` + +**Operaciones básicas:** + +- **Deshabilitar usuario:** + `./users.py --url --token disable --name testuser` + +- **Habilitar usuario:** + `./users.py --url --token enable --name testuser` + +- **Eliminar usuario:** + `./users.py --url --token delete --name testuser` + +**Creación e invitación de usuarios:** + +- **Crear nuevo usuario:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Requerido: `--web-console-url` + +- **Deshabilitar aplicación 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcional: `--web-console-url` + +- **Restablecer 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Deshabilitar verificación por correo:** + `./users.py --url --token disable-email-verification --name username` + +- **Cerrar sesión forzada:** + `./users.py --url --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 --token view [--name ]` + +**Ejemplo:** +`./user_group.py --url https://example.com --token view --name "Equipo Ventas"` + +**Operaciones de grupo:** + +- **Crear grupo de usuarios:** + `./user_group.py --url --token add --name "NombreGrupo" [--note "descripción"] [--accessed-from ''] [--access-to '']` + + Ejemplo con control de acceso: + `./user_group.py --url --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 --token update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from ''] [--access-to '']` + +- **Eliminar grupo de usuarios:** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtros: + - `--name`: nombre del grupo (coincidencia exacta, opcional) + - `--user-name`: nombre de usuario (búsqueda difusa, opcional) + + Ejemplo: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Agregar usuarios al grupo:** + `./user_group.py --url --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 --token view [--name ]` + +**Ejemplo:** +`./device_group.py --url https://example.com --token view` + +**Operaciones de grupo:** + +- **Crear grupo de dispositivos:** + `./device_group.py --url --token add --name "NombreGrupo" [--note "descripción"] [--accessed-from '']` + + Ejemplo: + `./device_group.py --url --token add --name "Producción" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Actualizar grupo de dispositivos:** + `./device_group.py --url --token update --name "NombreGrupo" [--new-name "Nuevo Nombre"] [--note "nueva nota"] [--accessed-from '']` + +- **Eliminar grupo de dispositivos:** + `./device_group.py --url --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 --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 --token view-devices --name Producción + + # Buscar por nombre de dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinar filtros + ./device_group.py --url --token view-devices --name Producción --user-name john + ``` + + +- **Agregar dispositivos al grupo:** + `./device_group.py --url --token add-devices --name "NombreGrupo" --ids "deviceid1,deviceid2"` + +- **Quitar dispositivos del grupo:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 view --user_name mike + +**Operaciones:** + +`view` puede reemplazarse por `enable`, `disable`, `delete`, o `assign`. + +**Ejemplo (asignar dispositivo):** + + ./devices.py --url https://example.com --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 --token view-ab [--ab-name ] + +**Obtener GUID de libreta personal:** + + ./ab.py --url --token get-personal-ab + +**Agregar una libreta compartida:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Actualizar o eliminar una libreta compartida:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Ver peers en una libreta:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Agregar, actualizar o eliminar un peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Gestión de etiquetas:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Gestión de reglas de acceso:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Ejemplo (agregar regla de solo lectura para el usuario "mike"):** + + ./ab.py --url https://example.com --token add-rule --ab-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 --token list` + +**Ver una estrategia específica:** +```bash +# Por nombre +./strategies.py --url --token view --name "Default" + +# Por GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Habilitar o deshabilitar una estrategia:** +```bash +./strategies.py --url --token enable --name "NombreEstrategia" +./strategies.py --url --token disable --name "NombreEstrategia" +``` + +**Asignar estrategia a dispositivos, usuarios o grupos de dispositivos:** +```bash +# Asignar a dispositivos (por ID de dispositivo) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Asignar a usuarios (por nombre de usuario) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Asignar a grupos de dispositivos (por nombre de grupo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Asignación mixta +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Desasignar estrategia:** +```bash +# Desasignar de dispositivos +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Desasignar de usuarios +./strategies.py --url --token unassign --users "admin" + +# Desasignar de grupos de dispositivos +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Ver auditorías de archivos:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Ver auditorías de alarmas:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Ver auditorías de consola:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 view-conn --remote 123456789 --days-ago 7 ## Buscar un dispositivo 1. Vaya a Dispositivos. diff --git a/content/self-host/rustdesk-server-pro/console/_index.fr.md b/content/self-host/rustdesk-server-pro/console/_index.fr.md index 30f87c2..b2c1ef1 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.fr.md +++ b/content/self-host/rustdesk-server-pro/console/_index.fr.md @@ -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 --user_name `. 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 --user_name `. +L’Utilisateur est l’utilisateur 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 --strategy_name `. +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 d’un 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 --address_book_name ` ou `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- -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" ... | more` ou `"C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String`, voir [ici](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952). +## Jeton API + +Vous devez d’abord aller dans **Paramètres → Jetons → Créer** et créer un jeton avec les permissions requises : **Périphérique, Journal d’Audit, Utilisateur, Groupe, Stratégie, Carnet d’Adresses**. + +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 l’exécutable RustDesk avec le paramètre `--assign`. +Cela permet d’assigner des utilisateurs, des stratégies, des carnets d’adresses 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 --user_name + +Paramètres pris en charge + +| Paramètre | Description | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Assigner un utilisateur au périphérique | | | +| `--strategy_name ` | Assigner une stratégie au périphérique | | | +| `--address_book_name ` | Assigner le périphérique à un carnet | | | +| `--address_book_tag ` | Assigner avec un tag du carnet | | | +| `--address_book_alias ` | Assigner avec un alias de carnet | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Définir le mot de passe de l’entrée | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Définir une note pour l’entrée | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Assigner le périphérique à un groupe | | | +| `--note ` | Ajouter une note au périphérique | 1.6.6 | 1.4.3 | +| `--device_username ` | Définir le nom d’utilisateur du périphérique | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--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 view --group_name Default` + +**Opérations de base :** + +- **Désactiver un utilisateur :** + `./users.py --url --token disable --name testuser` + +- **Activer un utilisateur :** + `./users.py --url --token enable --name testuser` + +- **Supprimer un utilisateur :** + `./users.py --url --token delete --name testuser` + +**Création et invitation d'utilisateurs :** + +- **Créer un nouvel utilisateur :** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Requis : `--web-console-url` + +- **Désactiver l'application 2FA :** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Optionnel : `--web-console-url` + +- **Réinitialiser 2FA :** + `./users.py --url --token reset-2fa --name username` + +- **Désactiver la vérification par e-mail :** + `./users.py --url --token disable-email-verification --name username` + +- **Déconnexion forcée :** + `./users.py --url --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 --token view [--name ]` + +**Exemple :** +`./user_group.py --url https://example.com --token view --name "Équipe Ventes"` + +**Opérations sur les groupes :** + +- **Créer un groupe d'utilisateurs :** + `./user_group.py --url --token add --name "NomGroupe" [--note "description"] [--accessed-from ''] [--access-to '']` + + Exemple avec contrôle d'accès : + `./user_group.py --url --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 --token update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from ''] [--access-to '']` + +- **Supprimer un groupe d'utilisateurs :** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtres : + - `--name` : nom du groupe (correspondance exacte, optionnel) + - `--user-name` : nom d'utilisateur (recherche floue, optionnel) + + Exemple : + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Ajouter des utilisateurs à un groupe :** + `./user_group.py --url --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 --token view [--name ]` + +**Exemple :** +`./device_group.py --url https://example.com --token view` + +**Opérations sur les groupes :** + +- **Créer un groupe de périphériques :** + `./device_group.py --url --token add --name "NomGroupe" [--note "description"] [--accessed-from '']` + + Exemple : + `./device_group.py --url --token add --name "Production" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Mettre à jour un groupe de périphériques :** + `./device_group.py --url --token update --name "NomGroupe" [--new-name "Nouveau Nom"] [--note "nouvelle note"] [--accessed-from '']` + +- **Supprimer un groupe de périphériques :** + `./device_group.py --url --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 --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 --token view-devices --name Production + + # Rechercher par nom de périphérique + ./device_group.py --url --token view-devices --device-name server + + # Combiner les filtres + ./device_group.py --url --token view-devices --name Production --user-name john + ``` + + +- **Ajouter des périphériques à un groupe :** + `./device_group.py --url --token add-devices --name "NomGroupe" --ids "deviceid1,deviceid2"` + +- **Retirer des périphériques d'un groupe :** + `./device_group.py --url --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 l’aide :** + + ./devices.py -h + +**Voir les périphériques :** + + ./devices.py --url --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_days ] + +**Filtres :** + + --id : ID du périphérique + --device_name : nom du périphérique + --user_name : utilisateur assigné + --group_name : groupe d’utilisateurs + --device_group_name : groupe de périphériques + --offline_days : jours hors ligne + +**Exemple :** + + ./devices.py --url https://example.com --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 assign --device_name PC01 --assign_to user_name=mike + +--- + +#### Gestion du Carnet d’Adresses (`ab.py`) + +**Afficher l’aide :** + + ./ab.py -h + +**Voir les carnets partagés :** + + ./ab.py --url --token view-ab [--ab-name ] + +**Obtenir le GUID du carnet personnel :** + + ./ab.py --url --token get-personal-ab + +**Ajouter un carnet partagé :** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Mettre à jour ou supprimer un carnet partagé :** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Voir les pairs dans un carnet :** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Ajouter, mettre à jour ou supprimer un pair :** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Gestion des étiquettes :** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Gestion des règles d’accès :** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Exemple (ajouter une règle en lecture seule pour l’utilisateur "mike") :** + + ./ab.py --url https://example.com --token add-rule --ab-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 --token list` + +**Voir une stratégie spécifique :** +```bash +# Par nom +./strategies.py --url --token view --name "Default" + +# Par GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Activer ou désactiver une stratégie :** +```bash +./strategies.py --url --token enable --name "NomStratégie" +./strategies.py --url --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 --token assign --name "Default" --peers "1849118658,1337348840" + +# Attribuer aux utilisateurs (par nom d'utilisateur) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Attribuer aux groupes de périphériques (par nom de groupe) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Attribution mixte +./strategies.py --url --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 --token unassign --peers "1849118658,1337348840" + +# Retirer des utilisateurs +./strategies.py --url --token unassign --users "admin" + +# Retirer des groupes de périphériques +./strategies.py --url --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 l’aide :** + + ./audits.py -h + +**Voir les audits de connexion :** + + ./audits.py --url --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Voir les audits de fichiers :** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Voir les audits d’alarme :** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Voir les audits de console :** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 d’alarme) + --operator : nom de l’opé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 view-conn --remote 123456789 --days-ago 7 ## Rechercher un appareil 1. Allez dans Appareils. diff --git a/content/self-host/rustdesk-server-pro/console/_index.it.md b/content/self-host/rustdesk-server-pro/console/_index.it.md index d6e0e4f..6cec448 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.it.md +++ b/content/self-host/rustdesk-server-pro/console/_index.it.md @@ -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 --user_name `. 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 --user_name `. +L’Utente è l’utente 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 --strategy_name `. +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 --address_book_name ` o `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- -La riga di comando su Windows non ha output per impostazione predefinita. Per ottenere output, esegui così, `"C:\Program Files\RustDesk\rustdesk.exe" ... | more` o `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 l’eseguibile 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 --user_name + +Parametri supportati + +| Parametro | Descrizione | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ----------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Assegna un utente al dispositivo | | | +| `--strategy_name ` | Assegna una strategia al dispositivo | | | +| `--address_book_name ` | Assegna il dispositivo a una rubrica | | | +| `--address_book_tag ` | Assegna con tag della rubrica | | | +| `--address_book_alias ` | Assegna con alias della rubrica | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Imposta la password per la voce | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Imposta una nota per la voce | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Assegna il dispositivo a un gruppo | | | +| `--note ` | Aggiunge una nota al dispositivo | 1.6.6 | 1.4.3 | +| `--device_username ` | Imposta il nome utente del dispositivo | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--name ] [--group_name ]` + +**Filtri:** +- `--name`: nome utente (ricerca fuzzy) +- `--group_name`: gruppo utenti (corrispondenza esatta) + +**Esempio:** +`./users.py --url https://example.com --token view --group_name Default` + +**Operazioni di base:** + +- **Disabilitare utente:** + `./users.py --url --token disable --name testuser` + +- **Abilitare utente:** + `./users.py --url --token enable --name testuser` + +- **Eliminare utente:** + `./users.py --url --token delete --name testuser` + +**Creazione e invito utenti:** + +- **Creare nuovo utente:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Richiesto: `--web-console-url` + +- **Disabilitare imposizione 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opzionale: `--web-console-url` + +- **Reimpostare 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Disabilitare verifica email:** + `./users.py --url --token disable-email-verification --name username` + +- **Disconnessione forzata:** + `./users.py --url --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 --token view [--name ]` + +**Esempio:** +`./user_group.py --url https://example.com --token view --name "Team Vendite"` + +**Operazioni sui gruppi:** + +- **Creare gruppo utenti:** + `./user_group.py --url --token add --name "NomeGruppo" [--note "descrizione"] [--accessed-from ''] [--access-to '']` + + Esempio con controllo accesso: + `./user_group.py --url --token add --name "Ingegneria" --accessed-from '[{"type":0,"name":"Manager"}]' --access-to '[{"type":1,"name":"Server Dev"}]'` + +- **Aggiornare gruppo utenti:** + `./user_group.py --url --token update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from ''] [--access-to '']` + +- **Eliminare gruppo utenti:** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtri: + - `--name`: nome del gruppo (corrispondenza esatta, opzionale) + - `--user-name`: nome utente (ricerca fuzzy, opzionale) + + Esempio: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Aggiungere utenti al gruppo:** + `./user_group.py --url --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 --token view [--name ]` + +**Esempio:** +`./device_group.py --url https://example.com --token view` + +**Operazioni sui gruppi:** + +- **Creare gruppo dispositivi:** + `./device_group.py --url --token add --name "NomeGruppo" [--note "descrizione"] [--accessed-from '']` + + Esempio: + `./device_group.py --url --token add --name "Produzione" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Aggiornare gruppo dispositivi:** + `./device_group.py --url --token update --name "NomeGruppo" [--new-name "Nuovo Nome"] [--note "nuova nota"] [--accessed-from '']` + +- **Eliminare gruppo dispositivi:** + `./device_group.py --url --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 --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 --token view-devices --name Produzione + + # Cercare per nome dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinare filtri + ./device_group.py --url --token view-devices --name Produzione --user-name john + ``` + +- **Visualizzare gruppi dispositivi accessibili:** + `./device_group.py --url --token accessible` + + Mostra tutti i gruppi dispositivi accessibili all'utente corrente. + +- **Aggiungere dispositivi al gruppo:** + `./device_group.py --url --token add-devices --name "NomeGruppo" --ids "deviceid1,deviceid2"` + +- **Rimuovere dispositivi dal gruppo:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 assign --device_name PC01 --assign_to user_name=mike + +--- + +#### Gestione Rubrica (`ab.py`) + +**Mostra aiuto:** + + ./ab.py -h + +**Visualizza rubriche condivise:** + + ./ab.py --url --token view-ab [--ab-name ] + +**Ottieni GUID rubrica personale:** + + ./ab.py --url --token get-personal-ab + +**Aggiungi rubrica condivisa:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Aggiorna o elimina rubrica condivisa:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Visualizza peer in una rubrica:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Aggiungi, aggiorna o elimina un peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Gestione tag:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Gestione regole di accesso:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Esempio (aggiungi regola sola lettura per l’utente "mike"):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### Gestione delle Strategie (`strategies.py`) + +**Mostra aiuto:** +`./strategies.py -h` + +**Elenca tutte le strategie:** +`./strategies.py --url --token list` + +**Visualizza una strategia specifica:** +```bash +# Per nome +./strategies.py --url --token view --name "Default" + +# Per GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Abilita o disabilita una strategia:** +```bash +./strategies.py --url --token enable --name "NomeStrategia" +./strategies.py --url --token disable --name "NomeStrategia" +``` + +**Assegna strategia a dispositivi, utenti o gruppi dispositivi:** +```bash +# Assegna a dispositivi (per ID dispositivo) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Assegna a utenti (per nome utente) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Assegna a gruppi dispositivi (per nome gruppo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Assegnazione mista +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Rimuovi assegnazione strategia:** +```bash +# Rimuovi da dispositivi +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Rimuovi da utenti +./strategies.py --url --token unassign --users "admin" + +# Rimuovi da gruppi dispositivi +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizza audit file:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizza audit allarmi:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizza audit console:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 view-conn --remote 123456789 --days-ago 7 ## Cercare un dispositivo 1. Vai su Dispositivi. diff --git a/content/self-host/rustdesk-server-pro/console/_index.ja.md b/content/self-host/rustdesk-server-pro/console/_index.ja.md index 1343318..2988a1b 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.ja.md +++ b/content/self-host/rustdesk-server-pro/console/_index.ja.md @@ -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" ... | more`または`"C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String`のように実行してください。[こちら](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)を参照してください。 +## APIトークン + +まず、**設定 → トークン → 作成**に移動し、必要な権限(**デバイス、監査ログ、ユーザー、グループ、戦略、アドレス帳**)を持つトークンを作成する必要があります。 + +作成後、これらのトークンを**コマンドライン**または**Python CLI**を通じて使用し、対応する権限で操作を実行できます。 + +### コマンドラインからトークンを使用して割り当て + +`--assign`パラメータを使用してRustDesk実行ファイルで割り当てを行うこともできます。 +これにより、ユーザー、戦略、アドレス帳、またはデバイスグループをコマンドラインから直接デバイスに割り当てることができます。 + +**例:** + + "C:\Program Files\RustDesk\rustdesk.exe" --assign --token --user_name + +サポートされているパラメータ + +| パラメータ | 説明 | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | デバイスにユーザーを割り当て | | | +| `--strategy_name ` | デバイスに戦略を割り当て | | | +| `--address_book_name ` | デバイスをアドレス帳に割り当て | | | +| `--address_book_tag ` | アドレス帳タグで割り当て | | | +| `--address_book_alias ` | アドレス帳のエイリアスで割り当て | 1.5.8 | 1.4.1 | +| `--address_book_password ` | アドレス帳エントリのパスワードを設定 | 1.6.6 | 1.4.3 | +| `--address_book_note ` | アドレス帳エントリにメモを設定 | 1.6.6 | 1.4.3 | +| `--device_group_name ` | デバイスをデバイスグループに割り当て | | | +| `--note ` | デバイスにメモを追加 | 1.6.6 | 1.4.3 | +| `--device_username ` | デバイスのユーザー名を設定 | 1.6.6 | 1.4.3 | +| `--device_name ` | デバイス名を設定 | 1.6.6 | 1.4.3 | + +Windowsのコマンドラインはデフォルトでは出力を表示しません。出力を取得するには次のように実行してください: + + "C:\Program Files\RustDesk\rustdesk.exe" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String + +詳細は[こちら](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。 + +### Python CLI管理ツール + +#### ユーザー管理 (`users.py`) + +**ヘルプ表示:** +`./users.py -h` + +**ユーザー表示:** +`./users.py --url --token view [--name ] [--group_name ]` + +**フィルター:** +- `--name`:ユーザー名(あいまい検索) +- `--group_name`:ユーザーグループ名(完全一致) + +**例:** +`./users.py --url https://example.com --token view --group_name Default` + +**基本操作:** + +- **ユーザーを無効化:** + `./users.py --url --token disable --name testuser` + +- **ユーザーを有効化:** + `./users.py --url --token enable --name testuser` + +- **ユーザーを削除:** + `./users.py --url --token delete --name testuser` + +**ユーザーの作成と招待:** + +- **新規ユーザーの作成:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "メモ"]` + + 必須パラメータ:`--name`、`--password`、`--group_name` + オプションパラメータ:`--email`、`--note` + +- **メールでユーザーを招待:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "メモ"]` + + 必須パラメータ:`--email`、`--name`、`--group_name` + オプションパラメータ:`--note` + +**2FAとセキュリティ操作:** + +- **2FA強制を有効化:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必須パラメータ:`--web-console-url` + +- **2FA強制を無効化:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + オプションパラメータ:`--web-console-url` + +- **2FAをリセット:** + `./users.py --url --token reset-2fa --name username` + +- **メール認証を無効化:** + `./users.py --url --token disable-email-verification --name username` + +- **強制ログアウト:** + `./users.py --url --token force-logout --name username` + +**注意事項:** +- 複数のユーザーに対して操作を行う場合(フィルターでマッチ)、確認プロンプトが表示されます +- 一致するユーザーがいない場合は「Found 0 users」と表示されます + +--- + +#### ユーザーグループ管理 (`user_group.py`) + +**ヘルプ表示:** +`./user_group.py -h` + +**ユーザーグループ表示:** +`./user_group.py --url --token view [--name ]` + +**例:** +`./user_group.py --url https://example.com --token view --name "営業チーム"` + +**グループ操作:** + +- **ユーザーグループの作成:** + `./user_group.py --url --token add --name "グループ名" [--note "説明"] [--accessed-from ''] [--access-to '']` + + アクセス制御付きの例: + `./user_group.py --url --token add --name "エンジニアリング" --accessed-from '[{"type":0,"name":"マネージャー"}]' --access-to '[{"type":1,"name":"開発サーバー"}]'` + +- **ユーザーグループの更新:** + `./user_group.py --url --token update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from ''] [--access-to '']` + +- **ユーザーグループの削除:** + `./user_group.py --url --token delete --name "グループ名"` + + カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"` + +**グループ内ユーザー管理:** + +- **グループ内のユーザーを表示:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + フィルター: + - `--name`:グループ名(完全一致、オプション) + - `--user-name`:ユーザー名(あいまい検索、オプション) + + 例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **グループにユーザーを追加:** + `./user_group.py --url --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 --token view [--name ]` + +**例:** +`./device_group.py --url https://example.com --token view` + +**グループ操作:** + +- **デバイスグループの作成:** + `./device_group.py --url --token add --name "グループ名" [--note "説明"] [--accessed-from '']` + + 例: + `./device_group.py --url --token add --name "本番環境" --accessed-from '[{"type":0,"name":"管理者"}]'` + +- **デバイスグループの更新:** + `./device_group.py --url --token update --name "グループ名" [--new-name "新しい名前"] [--note "新しいメモ"] [--accessed-from '']` + +- **デバイスグループの削除:** + `./device_group.py --url --token delete --name "グループ名"` + + カンマ区切りで複数指定可能:`--name "グループ1,グループ2,グループ3"` + +**グループ内デバイス管理:** + +- **グループ内のデバイスを表示:** + `./device_group.py --url --token view-devices [フィルター]` + + 利用可能なフィルター: + - `--name`:デバイスグループ名(完全一致) + - `--id`:デバイスID(あいまい検索) + - `--device-name`:デバイス名(あいまい検索) + - `--user-name`:ユーザー名/所有者(あいまい検索) + - `--device-username`:デバイスにログインしているユーザー名(あいまい検索) + + 例: + ```bash + # グループ内のすべてのデバイスを表示 + ./device_group.py --url --token view-devices --name 本番環境 + + # デバイス名で検索 + ./device_group.py --url --token view-devices --device-name server + + # フィルターを組み合わせ + ./device_group.py --url --token view-devices --name 本番環境 --user-name john + ``` + + +- **グループにデバイスを追加:** + `./device_group.py --url --token add-devices --name "グループ名" --ids "deviceid1,deviceid2"` + +- **グループからデバイスを削除:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_days ] + +**フィルター:** + + --id : デバイスID + --device_name : デバイス名 + --user_name : 割り当てユーザー + --group_name : ユーザーグループ + --device_group_name : デバイスグループ + --offline_days : オフライン日数 + +**例:** + + ./devices.py --url https://example.com --token view --user_name mike + +**操作:** + +`view`は`enable`、`disable`、`delete`、`assign`に置き換え可能です。 + +**例(デバイスを割り当てる):** + + ./devices.py --url https://example.com --token assign --device_name PC01 --assign_to user_name=mike + +--- + +#### アドレス帳管理 (`ab.py`) + +**ヘルプ表示:** + + ./ab.py -h + +**共有アドレス帳表示:** + + ./ab.py --url --token view-ab [--ab-name ] + +**個人アドレス帳GUID取得:** + + ./ab.py --url --token get-personal-ab + +**共有アドレス帳追加:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**共有アドレス帳の更新または削除:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**アドレス帳内のピア表示:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**ピアの追加、更新、削除:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**タグ管理:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**アクセスルール管理:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**例(ユーザー "mike" に読み取り専用ルールを追加):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### ストラテジー管理 (`strategies.py`) + +**ヘルプを表示:** +`./strategies.py -h` + +**すべてのストラテジーを一覧表示:** +`./strategies.py --url --token list` + +**特定のストラテジーを表示:** +```bash +# 名前で +./strategies.py --url --token view --name "Default" + +# GUIDで +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**ストラテジーを有効化または無効化:** +```bash +./strategies.py --url --token enable --name "ストラテジー名" +./strategies.py --url --token disable --name "ストラテジー名" +``` + +**デバイス、ユーザー、またはデバイスグループにストラテジーを割り当て:** +```bash +# デバイスに割り当て(デバイスIDで) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# ユーザーに割り当て(ユーザー名で) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# デバイスグループに割り当て(グループ名で) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合割り当て +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**ストラテジーの割り当てを解除:** +```bash +# デバイスから解除 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# ユーザーから解除 +./strategies.py --url --token unassign --users "admin" + +# デバイスグループから解除 +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**ファイル監査の表示:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**アラーム監査の表示:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**コンソール監査の表示:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**フィルター:** + + --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 view-conn --remote 123456789 --days-ago 7 ## デバイスの検索 1. デバイスに移動します。 diff --git a/content/self-host/rustdesk-server-pro/console/_index.pl.md b/content/self-host/rustdesk-server-pro/console/_index.pl.md index 154fb10..3df1744 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.pl.md +++ b/content/self-host/rustdesk-server-pro/console/_index.pl.md @@ -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 --user_name `. 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 --user_name `. +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 --strategy_name `. +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 --address_book_name ` lub `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- -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" ... | więcej` lub `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --user_name + +Obsługiwane parametry + +| Parametr | Opis | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Przypisz użytkownika do urządzenia | | | +| `--strategy_name ` | Przypisz strategię do urządzenia | | | +| `--address_book_name ` | Przypisz urządzenie do książki adresowej | | | +| `--address_book_tag ` | Przypisz z tagiem książki adresowej | | | +| `--address_book_alias ` | Przypisz z aliasem książki adresowej | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Ustaw hasło dla wpisu w książce adresowej| 1.6.6 | 1.4.3 | +| `--address_book_note ` | Ustaw notatkę dla wpisu w książce adresowej | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Przypisz urządzenie do grupy | | | +| `--note ` | Dodaj notatkę do urządzenia | 1.6.6 | 1.4.3 | +| `--device_username ` | Ustaw nazwę użytkownika urządzenia | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--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 view --group_name Default` + +**Podstawowe operacje:** + +- **Wyłącz użytkownika:** + `./users.py --url --token disable --name testuser` + +- **Włącz użytkownika:** + `./users.py --url --token enable --name testuser` + +- **Usuń użytkownika:** + `./users.py --url --token delete --name testuser` + +**Tworzenie i zapraszanie użytkowników:** + +- **Utwórz nowego użytkownika:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Wymagane: `--web-console-url` + +- **Wyłącz wymuszanie 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcjonalne: `--web-console-url` + +- **Zresetuj 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Wyłącz weryfikację email:** + `./users.py --url --token disable-email-verification --name username` + +- **Wymuś wylogowanie:** + `./users.py --url --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 --token view [--name ]` + +**Przykład:** +`./user_group.py --url https://example.com --token view --name "Zespół Sprzedaży"` + +**Operacje na grupach:** + +- **Utwórz grupę użytkowników:** + `./user_group.py --url --token add --name "NazwaGrupy" [--note "opis"] [--accessed-from ''] [--access-to '']` + + Przykład z kontrolą dostępu: + `./user_group.py --url --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 --token update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from ''] [--access-to '']` + +- **Usuń grupę użytkowników:** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtry: + - `--name`: nazwa grupy (dokładne dopasowanie, opcjonalne) + - `--user-name`: nazwa użytkownika (wyszukiwanie rozmyte, opcjonalne) + + Przykład: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Dodaj użytkowników do grupy:** + `./user_group.py --url --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 --token view [--name ]` + +**Przykład:** +`./device_group.py --url https://example.com --token view` + +**Operacje na grupach:** + +- **Utwórz grupę urządzeń:** + `./device_group.py --url --token add --name "NazwaGrupy" [--note "opis"] [--accessed-from '']` + + Przykład: + `./device_group.py --url --token add --name "Produkcja" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Aktualizuj grupę urządzeń:** + `./device_group.py --url --token update --name "NazwaGrupy" [--new-name "Nowa Nazwa"] [--note "nowa notatka"] [--accessed-from '']` + +- **Usuń grupę urządzeń:** + `./device_group.py --url --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 --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 --token view-devices --name Produkcja + + # Szukaj po nazwie urządzenia + ./device_group.py --url --token view-devices --device-name server + + # Połącz filtry + ./device_group.py --url --token view-devices --name Produkcja --user-name john + ``` + +- **Wyświetl dostępne grupy urządzeń:** + `./device_group.py --url --token accessible` + + Pokazuje wszystkie grupy urządzeń dostępne dla bieżącego użytkownika. + +- **Dodaj urządzenia do grupy:** + `./device_group.py --url --token add-devices --name "NazwaGrupy" --ids "deviceid1,deviceid2"` + +- **Usuń urządzenia z grupy:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 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 --token view-ab [--ab-name ] + +**Pobierz GUID osobistej książki adresowej:** + + ./ab.py --url --token get-personal-ab + +**Dodaj udostępnioną książkę adresową:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Aktualizuj lub usuń udostępnioną książkę adresową:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Wyświetl peerów w książce adresowej:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Dodaj, zaktualizuj lub usuń peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Zarządzanie tagami:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Zarządzanie regułami dostępu:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Przykład (dodaj regułę tylko do odczytu dla użytkownika "mike"):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### Zarządzanie Strategiami (`strategies.py`) + +**Pokaż pomoc:** +`./strategies.py -h` + +**Wyświetl wszystkie strategie:** +`./strategies.py --url --token list` + +**Zobacz konkretną strategię:** +```bash +# Po nazwie +./strategies.py --url --token view --name "Default" + +# Po GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Włącz lub wyłącz strategię:** +```bash +./strategies.py --url --token enable --name "NazwaStrategii" +./strategies.py --url --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 --token assign --name "Default" --peers "1849118658,1337348840" + +# Przypisz do użytkowników (po nazwie użytkownika) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Przypisz do grup urządzeń (po nazwie grupy) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Przypisanie mieszane +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**Cofnij przypisanie strategii:** +```bash +# Cofnij z urządzeń +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# Cofnij z użytkowników +./strategies.py --url --token unassign --users "admin" + +# Cofnij z grup urządzeń +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt plików:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt alarmów:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt konsoli:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 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 --user_name + +Obsługiwane parametry + +| Parametr | Opis | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Przypisz użytkownika do urządzenia | | | +| `--strategy_name ` | Przypisz strategię do urządzenia | | | +| `--address_book_name ` | Przypisz urządzenie do książki adresowej | | | +| `--address_book_tag ` | Przypisz z tagiem książki adresowej | | | +| `--address_book_alias ` | Przypisz z aliasem książki adresowej | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Ustaw hasło dla wpisu w książce adresowej| 1.6.6 | 1.4.3 | +| `--address_book_note ` | Ustaw notatkę dla wpisu w książce adresowej | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Przypisz urządzenie do grupy | | | +| `--note ` | Dodaj notatkę do urządzenia | 1.6.6 | 1.4.3 | +| `--device_username ` | Ustaw nazwę użytkownika urządzenia | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--name ] [--group_name ] + +**Filtry:** + + --name : nazwa użytkownika + --group_name : grupa użytkowników + +**Przykład:** + + ./users.py --url https://example.com --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 disable --name testuser + +--- + +#### Zarządzanie urządzeniami (`devices.py`) + +**Pokaż pomoc:** + + ./devices.py -h + +**Wyświetl urządzenia:** + + ./devices.py --url --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 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 --token view-ab [--ab-name ] + +**Pobierz GUID osobistej książki adresowej:** + + ./ab.py --url --token get-personal-ab + +**Dodaj udostępnioną książkę adresową:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Aktualizuj lub usuń udostępnioną książkę adresową:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Wyświetl peerów w książce adresowej:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Dodaj, zaktualizuj lub usuń peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Zarządzanie tagami:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Zarządzanie regułami dostępu:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Przykład (dodaj regułę tylko do odczytu dla użytkownika "mike"):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### Audyty (`audits.py`) + +**Pokaż pomoc:** + + ./audits.py -h + +**Wyświetl audyt połączeń:** + + ./audits.py --url --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt plików:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt alarmów:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Wyświetl audyt konsoli:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 view-conn --remote 123456789 --days-ago 7 ## Wyszukiwanie urządzenia 1. Przejdź do sekcji Urządzenia. diff --git a/content/self-host/rustdesk-server-pro/console/_index.pt.md b/content/self-host/rustdesk-server-pro/console/_index.pt.md index ca359fc..1002db7 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.pt.md +++ b/content/self-host/rustdesk-server-pro/console/_index.pt.md @@ -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 --user_name `. 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 --user_name `. +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 --strategy_name `. +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 --address_book_name ` ou `--assign --token --address_book_name --address_book_tag --address_book_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 --device_group_name `. +--- -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" ... | more` ou `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --user_name + +Parâmetros suportados + +| Parâmetro | Descrição | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | Atribui um usuário ao dispositivo | | | +| `--strategy_name ` | Atribui uma estratégia ao dispositivo | | | +| `--address_book_name ` | Atribui o dispositivo a um livro de endereços | | | +| `--address_book_tag ` | Atribui com tag do livro de endereços | | | +| `--address_book_alias ` | Atribui com alias do livro de endereços | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Define a senha da entrada do livro | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Define nota para a entrada do livro | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Atribui o dispositivo a um grupo | | | +| `--note ` | Adiciona nota ao dispositivo | 1.6.6 | 1.4.3 | +| `--device_username ` | Define o nome de usuário do dispositivo | 1.6.6 | 1.4.3 | +| `--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" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--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 view --group_name Default` + +**Operações básicas:** + +- **Desativar usuário:** + `./users.py --url --token disable --name testuser` + +- **Ativar usuário:** + `./users.py --url --token enable --name testuser` + +- **Excluir usuário:** + `./users.py --url --token delete --name testuser` + +**Criação e convite de usuários:** + +- **Criar novo usuário:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Obrigatório: `--web-console-url` + +- **Desabilitar imposição 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opcional: `--web-console-url` + +- **Redefinir 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Desabilitar verificação por email:** + `./users.py --url --token disable-email-verification --name username` + +- **Forçar logout:** + `./users.py --url --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 --token view [--name ]` + +**Exemplo:** +`./user_group.py --url https://example.com --token view --name "Equipe Vendas"` + +**Operações de grupo:** + +- **Criar grupo de usuários:** + `./user_group.py --url --token add --name "NomeGrupo" [--note "descrição"] [--accessed-from ''] [--access-to '']` + + Exemplo com controle de acesso: + `./user_group.py --url --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 --token update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from ''] [--access-to '']` + +- **Excluir grupo de usuários:** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtros: + - `--name`: nome do grupo (correspondência exata, opcional) + - `--user-name`: nome do usuário (busca difusa, opcional) + + Exemplo: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Adicionar usuários ao grupo:** + `./user_group.py --url --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 --token view [--name ]` + +**Exemplo:** +`./device_group.py --url https://example.com --token view` + +**Operações de grupo:** + +- **Criar grupo de dispositivos:** + `./device_group.py --url --token add --name "NomeGrupo" [--note "descrição"] [--accessed-from '']` + + Exemplo: + `./device_group.py --url --token add --name "Produção" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Atualizar grupo de dispositivos:** + `./device_group.py --url --token update --name "NomeGrupo" [--new-name "Novo Nome"] [--note "nova nota"] [--accessed-from '']` + +- **Excluir grupo de dispositivos:** + `./device_group.py --url --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 --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 --token view-devices --name Produção + + # Buscar por nome de dispositivo + ./device_group.py --url --token view-devices --device-name server + + # Combinar filtros + ./device_group.py --url --token view-devices --name Produção --user-name john + ``` + +- **Visualizar grupos de dispositivos acessíveis:** + `./device_group.py --url --token accessible` + + Mostra todos os grupos de dispositivos acessíveis ao usuário atual. + +- **Adicionar dispositivos ao grupo:** + `./device_group.py --url --token add-devices --name "NomeGrupo" --ids "deviceid1,deviceid2"` + +- **Remover dispositivos do grupo:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 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 --token view-ab [--ab-name ] + +**Obter GUID do livro de endereços pessoal:** + + ./ab.py --url --token get-personal-ab + +**Adicionar livro de endereços compartilhado:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**Atualizar ou deletar livro de endereços compartilhado:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**Visualizar peers em um livro de endereços:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**Adicionar, atualizar ou deletar um peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**Gerenciamento de tags:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**Gerenciamento de regras de acesso:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**Exemplo (adicionar regra somente leitura para usuário "mike"):** + + ./ab.py --url https://example.com --token add-rule --ab-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 --token list` + +**Ver uma estratégia específica:** +```bash +# Por nome +./strategies.py --url --token view --name "Default" + +# Por GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Ativar ou desativar uma estratégia:** +```bash +./strategies.py --url --token enable --name "NomeEstrategia" +./strategies.py --url --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 --token assign --name "Default" --peers "1849118658,1337348840" + +# Atribuir a usuários (por nome de usuário) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Atribuir a grupos de dispositivos (por nome de grupo) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Atribuição mista +./strategies.py --url --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 --token unassign --peers "1849118658,1337348840" + +# Cancelar de usuários +./strategies.py --url --token unassign --users "admin" + +# Cancelar de grupos de dispositivos +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizar auditoria de arquivos:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizar auditoria de alarmes:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**Visualizar auditoria de console:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**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 view-conn --remote 123456789 --days-ago 7 ## Procurando por um dispositivo 1. Vá para Dispositivos. diff --git a/content/self-host/rustdesk-server-pro/console/_index.ro.md b/content/self-host/rustdesk-server-pro/console/_index.ro.md new file mode 100644 index 0000000..61549da --- /dev/null +++ b/content/self-host/rustdesk-server-pro/console/_index.ro.md @@ -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://: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. + + +![](/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ă Enter. +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 --user_name +``` + +Parametri suportati + +| Parameter | Descriere | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ------------------------------------- | ------------------- | --------------- | +| `--user_name ` | Atribuie un utilizator dispozitivului | | | +| `--strategy_name ` | Atribuie o strategie dispozitivului | | | +| `--address_book_name ` | Atribuie dispozitivul la o agendă | | | +| `--address_book_tag ` | Atribuire folosind tag-ul agendei | | | +| `--address_book_alias ` | Atribuire folosind aliasul | 1.5.8 | 1.4.1 | +| `--address_book_password ` | Setează parola pentru înregistrare | 1.6.6 | 1.4.3 | +| `--address_book_note ` | Setează nota pentru înregistrare | 1.6.6 | 1.4.3 | +| `--device_group_name ` | Atribuie dispozitiv la grup | | | +| `--note ` | Adaugă o notă dispozitivului | 1.6.6 | 1.4.3 | +| `--device_username ` | Setează username pentru dispozitiv | 1.6.6 | 1.4.3 | +| `--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" ... | more` sau `"C:\Program Files\RustDesk\rustdesk.exe" ... | 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 --token view [--name ] [--group_name ]` + +**Filtre:** +- `--name`: username (căutare aproximativă) +- `--group_name`: grup utilizatori (potrivire exactă) + +**Exemplu:** +`./users.py --url https://example.com --token view --group_name Default` + +**Operații de bază:** + +- **Dezactivează utilizator:** + `./users.py --url --token disable --name testuser` + +- **Activează utilizator:** + `./users.py --url --token enable --name testuser` + +- **Șterge utilizator:** + `./users.py --url --token delete --name testuser` + +**Creare și invitare utilizatori:** + +- **Creează utilizator nou:** + `./users.py --url --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 --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 --token enable-2fa-enforce --name username --web-console-url ` + + Necesar: `--web-console-url` + +- **Dezactivează impunere 2FA:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + Opțional: `--web-console-url` + +- **Resetează 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **Dezactivează verificare email:** + `./users.py --url --token disable-email-verification --name username` + +- **Deconectare forțată:** + `./users.py --url --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 --token view [--name ]` + +**Exemplu:** +`./user_group.py --url https://example.com --token view --name "Echipa Vânzări"` + +**Operații pe grupuri:** + +- **Creează grup utilizatori:** + `./user_group.py --url --token add --name "NumeGrup" [--note "descriere"] [--accessed-from ''] [--access-to '']` + + Exemplu cu control acces: + `./user_group.py --url --token add --name "Inginerie" --accessed-from '[{"type":0,"name":"Manageri"}]' --access-to '[{"type":1,"name":"Servere Dev"}]'` + +- **Actualizează grup utilizatori:** + `./user_group.py --url --token update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from ''] [--access-to '']` + +- **Șterge grup utilizatori:** + `./user_group.py --url --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 --token view-users [--name ] [--user-name ]` + + Filtre: + - `--name`: nume grup (potrivire exactă, opțional) + - `--user-name`: username (căutare aproximativă, opțional) + + Exemplu: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **Adaugă utilizatori în grup:** + `./user_group.py --url --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 --token view [--name ]` + +**Exemplu:** +`./device_group.py --url https://example.com --token view` + +**Operații pe grupuri:** + +- **Creează grup dispozitive:** + `./device_group.py --url --token add --name "NumeGrup" [--note "descriere"] [--accessed-from '']` + + Exemplu: + `./device_group.py --url --token add --name "Producție" --accessed-from '[{"type":0,"name":"Admins"}]'` + +- **Actualizează grup dispozitive:** + `./device_group.py --url --token update --name "NumeGrup" [--new-name "Nume Nou"] [--note "notă nouă"] [--accessed-from '']` + +- **Șterge grup dispozitive:** + `./device_group.py --url --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 --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 --token view-devices --name Producție + + # Caută după nume dispozitiv + ./device_group.py --url --token view-devices --device-name server + + # Combină filtre + ./device_group.py --url --token view-devices --name Producție --user-name john + ``` + +- **Vezi grupuri dispozitive accesibile:** + `./device_group.py --url --token accessible` + + Afișează toate grupurile de dispozitive accesibile utilizatorului curent. + +- **Adaugă dispozitive în grup:** + `./device_group.py --url --token add-devices --name "NumeGrup" --ids "deviceid1,deviceid2"` + +- **Elimină dispozitive din grup:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_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 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 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 --token view-ab [--ab-name ]` + +**Obține GUID-ul agendei personale:** +`./ab.py --url --token get-personal-ab` + +**Adaugă o agendă partajată:** +`./ab.py --url --token add-ab --ab-name [--note ] [--password ]` + +**Actualizează sau șterge o agendă partajată:** +`./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ]` +`./ab.py --url --token delete-ab --ab-guid ` + +**Vezi peer-ii dintr-o agendă:** +`./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ]` + +**Adaugă/actualizează/șterge un peer:** +`./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2]` +`./ab.py --url --token delete-peer --ab-guid --peer-id ` + +**Management tag-uri:** +`./ab.py --url --token view-tag --ab-guid ` +`./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00]` +`./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000` +`./ab.py --url --token delete-tag --ab-guid --tag-name ` + +**Management reguli de acces:** +`./ab.py --url --token view-rule --ab-guid ` +`./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full` +`./ab.py --url --token update-rule --rule-guid --rule-permission rw` +`./ab.py --url --token delete-rule --rule-guid ` + +**Exemplu (adaugă regulă read-only pentru utilizatorul "mike"):** +`./ab.py --url https://example.com --token add-rule --ab-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 --token list` + +**Vezi o strategie specifică:** +```bash +# După nume +./strategies.py --url --token view --name "Default" + +# După GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**Activați sau dezactivați o strategie:** +```bash +./strategies.py --url --token enable --name "NumeStrategie" +./strategies.py --url --token disable --name "NumeStrategie" +``` + +**Atribuiți strategia dispozitivelor, utilizatorilor sau grupurilor de dispozitive:** +```bash +# Atribuiți dispozitivelor (după ID dispozitiv) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# Atribuiți utilizatorilor (după nume utilizator) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# Atribuiți grupurilor de dispozitive (după nume grup) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# Atribuire mixtă +./strategies.py --url --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 --token unassign --peers "1849118658,1337348840" + +# Anulați de la utilizatori +./strategies.py --url --token unassign --users "admin" + +# Anulați de la grupuri de dispozitive +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**Vezi audituri fișiere:** +`./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**Vezi audituri alarme:** +`./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**Vezi audituri consolă:** +`./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ]` + +**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 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 Enter. +3. Pentru wildcard adaugă `%` la început, sfârșit sau ambele părți ale termenului de căutare. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md b/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md index af01975..893f490 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md +++ b/content/self-host/rustdesk-server-pro/console/_index.zh-cn.md @@ -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 --user_name + +**支持的参数:** + +| 参数名 | 说明 | RustDesk Server Pro | RustDesk Client | +| ------- | ---- | ------------------- | ---------------- | +| `--user_name ` | 为设备分配用户 | | | +| `--strategy_name ` | 为设备分配策略 | | | +| `--address_book_name ` | 将设备分配到地址簿 | | | +| `--address_book_tag ` | 按标签分配地址簿 | | | +| `--address_book_alias ` | 设置地址簿别名 | 1.5.8 | 1.4.1 | +| `--address_book_password ` | 为地址簿条目设置密码 | 1.6.6 | 1.4.3 | +| `--address_book_note ` | 为地址簿条目添加备注 | 1.6.6 | 1.4.3 | +| `--device_group_name ` | 将设备分配到设备组 | | | +| `--note ` | 为设备添加备注 | 1.6.6 | 1.4.3 | +| `--device_username ` | 设置设备用户名 | 1.6.6 | 1.4.3 | +| `--device_name ` | 设置设备名称 | 1.6.6 | 1.4.3 | + +Windows 命令行默认无输出,如需查看输出,可使用如下方式运行: + + "C:\Program Files\RustDesk\rustdesk.exe" ... | more + +或 + + "C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String + +详情参考:RustDesk 讨论区相关评论链接(原文处有链接)。 + +--- + +### Python CLI 管理工具 + +#### 用户管理 (`users.py`) + +**查看帮助:** +`./users.py -h` + +**查看用户:** +`./users.py --url --token view [--name ] [--group_name ]` + +**过滤条件:** +- `--name`:用户名(模糊搜索) +- `--group_name`:用户组名(精确匹配) + +**示例:** +`./users.py --url https://example.com --token view --group_name Default` + +**基本操作:** + +- **禁用用户:** + `./users.py --url --token disable --name testuser` + +- **启用用户:** + `./users.py --url --token enable --name testuser` + +- **删除用户:** + `./users.py --url --token delete --name testuser` + +**用户创建和邀请:** + +- **创建新用户:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "备注"]` + + 必需参数:`--name`、`--password`、`--group_name` + 可选参数:`--email`、`--note` + +- **通过邮箱邀请用户:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "备注"]` + + 必需参数:`--email`、`--name`、`--group_name` + 可选参数:`--note` + +**2FA 和安全操作:** + +- **启用 2FA 强制要求:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必需参数:`--web-console-url` + +- **禁用 2FA 强制要求:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + 可选参数:`--web-console-url` + +- **重置 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **禁用邮箱验证:** + `./users.py --url --token disable-email-verification --name username` + +- **强制登出:** + `./users.py --url --token force-logout --name username` + +**注意事项:** +- 当操作多个用户时(通过过滤器匹配),系统会提示确认 +- 如果没有匹配的用户,将显示 "Found 0 users" + +--- + +#### 用户组管理 (`user_group.py`) + +**查看帮助:** +`./user_group.py -h` + +**查看用户组:** +`./user_group.py --url --token view [--name ]` + +**示例:** +`./user_group.py --url https://example.com --token view --name "销售团队"` + +**组操作:** + +- **创建用户组:** + `./user_group.py --url --token add --name "组名" [--note "描述"] [--accessed-from ''] [--access-to '']` + + 带访问控制的示例: + `./user_group.py --url --token add --name "工程部" --accessed-from '[{"type":0,"name":"管理层"}]' --access-to '[{"type":1,"name":"开发服务器"}]'` + +- **更新用户组:** + `./user_group.py --url --token update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from ''] [--access-to '']` + +- **删除用户组:** + `./user_group.py --url --token delete --name "组名"` + + 支持逗号分隔的多个组名:`--name "组1,组2,组3"` + +**组内用户管理:** + +- **查看组内用户:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + 过滤条件: + - `--name`:组名(精确匹配,可选) + - `--user-name`:用户名(模糊搜索,可选) + + 示例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **添加用户到组:** + `./user_group.py --url --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 --token view [--name ]` + +**示例:** +`./device_group.py --url https://example.com --token view` + +**组操作:** + +- **创建设备组:** + `./device_group.py --url --token add --name "组名" [--note "描述"] [--accessed-from '']` + + 示例: + `./device_group.py --url --token add --name "生产环境" --accessed-from '[{"type":0,"name":"管理员"}]'` + +- **更新设备组:** + `./device_group.py --url --token update --name "组名" [--new-name "新名称"] [--note "新备注"] [--accessed-from '']` + +- **删除设备组:** + `./device_group.py --url --token delete --name "组名"` + + 支持逗号分隔的多个组名:`--name "组1,组2,组3"` + +**组内设备管理:** + +- **查看组内设备:** + `./device_group.py --url --token view-devices [过滤条件]` + + 可用的过滤条件: + - `--name`:设备组名(精确匹配) + - `--id`:设备 ID(模糊搜索) + - `--device-name`:设备名称(模糊搜索) + - `--user-name`:用户名/所有者(模糊搜索) + - `--device-username`:设备上登录的用户名(模糊搜索) + + 示例: + ```bash + # 查看组内所有设备 + ./device_group.py --url --token view-devices --name 生产环境 + + # 按设备名搜索 + ./device_group.py --url --token view-devices --device-name server + + # 组合过滤条件 + ./device_group.py --url --token view-devices --name 生产环境 --user-name john + ``` + + +- **添加设备到组:** + `./device_group.py --url --token add-devices --name "组名" --ids "deviceid1,deviceid2"` + +- **从组中移除设备:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_days ] + +**过滤条件:** +`--id`:设备 ID +`--device_name`:设备名称 +`--user_name`:分配的用户 +`--group_name`:用户组 +`--device_group_name`:设备组 +`--offline_days`:离线天数 + +**示例:** + + ./devices.py --url https://example.com --token view --user_name mike + +**操作命令:** +`view` 可替换为 `enable`(启用)、`disable`(禁用)、`delete`(删除)或 `assign`(分配)。 + +**示例(分配设备):** + + ./devices.py --url https://example.com --token assign --device_name PC01 --assign_to user_name=mike + +--- + +#### 地址簿管理 (ab.py) + +**查看帮助:** + + ./ab.py -h + +**查看共享地址簿:** + + ./ab.py --url --token view-ab [--ab-name ] + +**获取个人地址簿 GUID:** + + ./ab.py --url --token get-personal-ab + +**添加共享地址簿:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**更新或删除共享地址簿:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**查看地址簿中的设备(peer):** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**添加、更新或删除设备(peer):** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**标签管理:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**访问规则管理:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**示例(为用户 mike 添加只读权限):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### 策略管理 (`strategies.py`) + +**查看帮助:** +`./strategies.py -h` + +**列出所有策略:** +`./strategies.py --url --token list` + +**查看指定策略:** +```bash +# 通过名称 +./strategies.py --url --token view --name "Default" + +# 通过 GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**启用或禁用策略:** +```bash +./strategies.py --url --token enable --name "策略名称" +./strategies.py --url --token disable --name "策略名称" +``` + +**分配策略到设备、用户或设备组:** +```bash +# 分配到设备(使用设备 ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# 分配到用户(使用用户名) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# 分配到设备组(使用组名) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合分配 +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**取消分配策略:** +```bash +# 取消设备的策略 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# 取消用户的策略 +./strategies.py --url --token unassign --users "admin" + +# 取消设备组的策略 +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看文件审计:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看告警审计:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看控制台操作审计:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**过滤条件:** +`--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 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. 进入设备页面。 diff --git a/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md b/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md index 2b0742f..08b1bd4 100644 --- a/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md +++ b/content/self-host/rustdesk-server-pro/console/_index.zh-tw.md @@ -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 --user_name + +支援參數 + +| 參數 | 說明 | RustDesk Server Pro | RustDesk Client | +| --------------------------------------- | ---------------------------------------- | ----------------- | --------------- | +| `--user_name ` | 將使用者分配給設備 | | | +| `--strategy_name ` | 將策略分配給設備 | | | +| `--address_book_name ` | 將設備分配給通訊錄 | | | +| `--address_book_tag ` | 使用通訊錄標籤進行分配 | | | +| `--address_book_alias ` | 使用通訊錄別名進行分配 | 1.5.8 | 1.4.1 | +| `--address_book_password ` | 設定通訊錄條目的密碼 | 1.6.6 | 1.4.3 | +| `--address_book_note ` | 設定通訊錄條目的備註 | 1.6.6 | 1.4.3 | +| `--device_group_name ` | 將設備分配到設備群組 | | | +| `--note ` | 為設備添加備註 | 1.6.6 | 1.4.3 | +| `--device_username ` | 設定設備使用者名稱 | 1.6.6 | 1.4.3 | +| `--device_name ` | 設定設備名稱 | 1.6.6 | 1.4.3 | + +Windows 命令列預設不會輸出結果。若要查看輸出,可使用: + + "C:\Program Files\RustDesk\rustdesk.exe" ... | more + "C:\Program Files\RustDesk\rustdesk.exe" ... | Out-String + +詳情參考 [這裡](https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952)。 + +### Python CLI 管理工具 + +#### 使用者管理 (`users.py`) + +**顯示幫助:** +`./users.py -h` + +**查看使用者:** +`./users.py --url --token view [--name ] [--group_name ]` + +**篩選條件:** +- `--name`:使用者名稱(模糊搜尋) +- `--group_name`:使用者群組名稱(精確匹配) + +**範例:** +`./users.py --url https://example.com --token view --group_name Default` + +**基本操作:** + +- **停用使用者:** + `./users.py --url --token disable --name testuser` + +- **啟用使用者:** + `./users.py --url --token enable --name testuser` + +- **刪除使用者:** + `./users.py --url --token delete --name testuser` + +**使用者建立和邀請:** + +- **建立新使用者:** + `./users.py --url --token new --name username --password 'password123' --group_name Default [--email user@example.com] [--note "備註"]` + + 必要參數:`--name`、`--password`、`--group_name` + 選用參數:`--email`、`--note` + +- **透過電子郵件邀請使用者:** + `./users.py --url --token invite --email user@example.com --name username --group_name Default [--note "備註"]` + + 必要參數:`--email`、`--name`、`--group_name` + 選用參數:`--note` + +**2FA 和安全操作:** + +- **啟用 2FA 強制要求:** + `./users.py --url --token enable-2fa-enforce --name username --web-console-url ` + + 必要參數:`--web-console-url` + +- **停用 2FA 強制要求:** + `./users.py --url --token disable-2fa-enforce --name username [--web-console-url ]` + + 選用參數:`--web-console-url` + +- **重設 2FA:** + `./users.py --url --token reset-2fa --name username` + +- **停用電子郵件驗證:** + `./users.py --url --token disable-email-verification --name username` + +- **強制登出:** + `./users.py --url --token force-logout --name username` + +**注意事項:** +- 當操作多個使用者時(透過篩選器匹配),系統會提示確認 +- 如果沒有匹配的使用者,將顯示 "Found 0 users" + +--- + +#### 使用者群組管理 (`user_group.py`) + +**顯示幫助:** +`./user_group.py -h` + +**查看使用者群組:** +`./user_group.py --url --token view [--name ]` + +**範例:** +`./user_group.py --url https://example.com --token view --name "銷售團隊"` + +**群組操作:** + +- **建立使用者群組:** + `./user_group.py --url --token add --name "群組名稱" [--note "描述"] [--accessed-from ''] [--access-to '']` + + 帶存取控制的範例: + `./user_group.py --url --token add --name "工程部" --accessed-from '[{"type":0,"name":"管理層"}]' --access-to '[{"type":1,"name":"開發伺服器"}]'` + +- **更新使用者群組:** + `./user_group.py --url --token update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from ''] [--access-to '']` + +- **刪除使用者群組:** + `./user_group.py --url --token delete --name "群組名稱"` + + 支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"` + +**群組內使用者管理:** + +- **查看群組內使用者:** + `./user_group.py --url --token view-users [--name ] [--user-name ]` + + 篩選條件: + - `--name`:群組名稱(精確匹配,選用) + - `--user-name`:使用者名稱(模糊搜尋,選用) + + 範例: + `./user_group.py --url --token view-users --name Default --user-name john` + +- **新增使用者到群組:** + `./user_group.py --url --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 --token view [--name ]` + +**範例:** +`./device_group.py --url https://example.com --token view` + +**群組操作:** + +- **建立設備群組:** + `./device_group.py --url --token add --name "群組名稱" [--note "描述"] [--accessed-from '']` + + 範例: + `./device_group.py --url --token add --name "生產環境" --accessed-from '[{"type":0,"name":"管理員"}]'` + +- **更新設備群組:** + `./device_group.py --url --token update --name "群組名稱" [--new-name "新名稱"] [--note "新備註"] [--accessed-from '']` + +- **刪除設備群組:** + `./device_group.py --url --token delete --name "群組名稱"` + + 支援逗號分隔的多個群組名稱:`--name "群組1,群組2,群組3"` + +**群組內設備管理:** + +- **查看群組內設備:** + `./device_group.py --url --token view-devices [篩選條件]` + + 可用的篩選條件: + - `--name`:設備群組名稱(精確匹配) + - `--id`:設備 ID(模糊搜尋) + - `--device-name`:設備名稱(模糊搜尋) + - `--user-name`:使用者名稱/擁有者(模糊搜尋) + - `--device-username`:設備上登入的使用者名稱(模糊搜尋) + + 範例: + ```bash + # 查看群組內所有設備 + ./device_group.py --url --token view-devices --name 生產環境 + + # 按設備名稱搜尋 + ./device_group.py --url --token view-devices --device-name server + + # 組合篩選條件 + ./device_group.py --url --token view-devices --name 生產環境 --user-name john + ``` + +- **查看可存取的設備群組:** + + 顯示目前使用者可存取的所有設備群組。 + +- **新增設備到群組:** + `./device_group.py --url --token add-devices --name "群組名稱" --ids "deviceid1,deviceid2"` + +- **從群組中移除設備:** + `./device_group.py --url --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 --token view [--id ] [--device_name ] [--user_name ] [--group_name ] [--device_group_name ] [--offline_days ] + +**篩選條件:** + + --id : 設備 ID + --device_name : 設備名稱 + --user_name : 分配的使用者 + --group_name : 使用者群組 + --device_group_name : 設備群組 + --offline_days : 離線天數 + +**範例:** + + ./devices.py --url https://example.com --token view --user_name mike + +**操作:** + +`view` 可替換為 `enable`、`disable`、`delete` 或 `assign`。 + +**範例(分配設備):** + + ./devices.py --url https://example.com --token assign --device_name PC01 --assign_to user_name=mike + +--- + +#### 通訊錄管理 (`ab.py`) + +**顯示幫助:** + + ./ab.py -h + +**查看共享通訊錄:** + + ./ab.py --url --token view-ab [--ab-name ] + +**取得個人通訊錄 GUID:** + + ./ab.py --url --token get-personal-ab + +**新增共享通訊錄:** + + ./ab.py --url --token add-ab --ab-name [--note ] [--password ] + +**更新或刪除共享通訊錄:** + + ./ab.py --url --token update-ab --ab-guid [--ab-update-name ] [--note ] + ./ab.py --url --token delete-ab --ab-guid + +**查看通訊錄中的 peer:** + + ./ab.py --url --token view-peer --ab-guid [--peer-id ] [--alias ] + +**新增、更新或刪除 peer:** + + ./ab.py --url --token add-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token update-peer --ab-guid --peer-id [--alias ] [--note ] [--tags tag1,tag2] + ./ab.py --url --token delete-peer --ab-guid --peer-id + +**標籤管理:** + + ./ab.py --url --token view-tag --ab-guid + ./ab.py --url --token add-tag --ab-guid --tag-name [--tag-color 0xFF00FF00] + ./ab.py --url --token update-tag --ab-guid --tag-name --tag-color 0xFFFF0000 + ./ab.py --url --token delete-tag --ab-guid --tag-name + +**存取規則管理:** + + ./ab.py --url --token view-rule --ab-guid + ./ab.py --url --token add-rule --ab-guid [--rule-type user|group|everyone] [--rule-user ] [--rule-group ] --rule-permission ro|rw|full + ./ab.py --url --token update-rule --rule-guid --rule-permission rw + ./ab.py --url --token delete-rule --rule-guid + +**範例(為使用者 "mike" 新增唯讀規則):** + + ./ab.py --url https://example.com --token add-rule --ab-guid --rule-user mike --rule-permission ro + +--- + +#### 策略管理 (`strategies.py`) + +**顯示幫助:** +`./strategies.py -h` + +**列出所有策略:** +`./strategies.py --url --token list` + +**查看指定策略:** +```bash +# 通過名稱 +./strategies.py --url --token view --name "Default" + +# 通過 GUID +./strategies.py --url --token view --guid "01983006-fcca-7c12-9a91-b1df483c6073" +``` + +**啟用或禁用策略:** +```bash +./strategies.py --url --token enable --name "策略名稱" +./strategies.py --url --token disable --name "策略名稱" +``` + +**分配策略到設備、使用者或設備群組:** +```bash +# 分配到設備(使用設備 ID) +./strategies.py --url --token assign --name "Default" --peers "1849118658,1337348840" + +# 分配到使用者(使用使用者名稱) +./strategies.py --url --token assign --name "Default" --users "admin,user1" + +# 分配到設備群組(使用群組名稱) +./strategies.py --url --token assign --name "Default" --device-groups "device_group1,Production" + +# 混合分配 +./strategies.py --url --token assign \ + --name "Default" \ + --peers "1849118658" \ + --users "admin" \ + --device-groups "device_group1" +``` + +**取消分配策略:** +```bash +# 取消設備的策略 +./strategies.py --url --token unassign --peers "1849118658,1337348840" + +# 取消使用者的策略 +./strategies.py --url --token unassign --users "admin" + +# 取消設備群組的策略 +./strategies.py --url --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 --token view-conn [--remote ] [--conn-type ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看檔案稽核:** + + ./audits.py --url --token view-file [--remote ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看警示稽核:** + + ./audits.py --url --token view-alarm [--device ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**查看控制台稽核:** + + ./audits.py --url --token view-console [--operator ] [--page-size ] [--current ] [--created-at <"YYYY-MM-DD HH:MM:SS">] [--days-ago ] + +**篩選條件:** + + --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 view-conn --remote 123456789 --days-ago 7 ## 搜尋裝置 1. 進入裝置頁面。 diff --git a/content/self-host/rustdesk-server-pro/faq/_index.ro.md b/content/self-host/rustdesk-server-pro/faq/_index.ro.md new file mode 100644 index 0000000..22d6f58 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/faq/_index.ro.md @@ -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 , de ex. `hbbs` și `hbbr` dacă ai urmat manualul nostru +sudo docker stop +sudo docker rm +sudo docker rmi +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 21114–21119 ș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 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ro.md b/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ro.md new file mode 100644 index 0000000..885b673 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/Docker/_index.ro.md @@ -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). \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/Script/_index.ro.md b/content/self-host/rustdesk-server-pro/installscript/Script/_index.ro.md new file mode 100644 index 0000000..8f33777 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/Script/_index.ro.md @@ -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`. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/_index.ro.md b/content/self-host/rustdesk-server-pro/installscript/_index.ro.md new file mode 100644 index 0000000..ef645fd --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/_index.ro.md @@ -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 \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/installscript/windows/_index.ro.md b/content/self-host/rustdesk-server-pro/installscript/windows/_index.ro.md new file mode 100644 index 0000000..c70d396 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/installscript/windows/_index.ro.md @@ -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`. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/ldap/_index.ro.md b/content/self-host/rustdesk-server-pro/ldap/_index.ro.md new file mode 100644 index 0000000..ba6caec --- /dev/null +++ b/content/self-host/rustdesk-server-pro/ldap/_index.ro.md @@ -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. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/license/_index.ro.md b/content/self-host/rustdesk-server-pro/license/_index.ro.md new file mode 100644 index 0000000..5b8da7b --- /dev/null +++ b/content/self-host/rustdesk-server-pro/license/_index.ro.md @@ -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 e‑mail validă în pagina de checkout Stripe. Licența (și factura într‑un e‑mail separat) vă vor fi trimise pe e‑mail 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://: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 self‑service de licențe: [https://rustdesk.com/self-host/account/](https://rustdesk.com/self-host/account/). Autentificați‑vă cu e‑mailul 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ți‑vă cu adresa de e‑mail folosită la checkout‑ul 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`. \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/oidc/_index.ro.md b/content/self-host/rustdesk-server-pro/oidc/_index.ro.md new file mode 100644 index 0000000..c8900e3 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/oidc/_index.ro.md @@ -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" %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/oidc/azure/_index.ro.md b/content/self-host/rustdesk-server-pro/oidc/azure/_index.ro.md new file mode 100644 index 0000000..8910660 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/oidc/azure/_index.ro.md @@ -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ți‑vă î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/`, atunci **Callback URL** va fi `http://localhost:8000/api/oidc/callback`. Dacă este accesată prin `https://192.168.0.1:8000/`, 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 secret‑ului. Notă: această valoare este vizibilă doar la crearea inițială. Nu va mai fi afișată după părăsirea paginii. Păstrați‑o în siguranță. +![](/docs/ro/self-host/rustdesk-server-pro/oidc/azure/images/7-Azure-CopySecretValue.png) +11. În RustDesk Pro, lipiți valoarea client secret‑ului. +![](/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//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) \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/permissions/_index.ro.md b/content/self-host/rustdesk-server-pro/permissions/_index.ro.md new file mode 100644 index 0000000..91bffc4 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/permissions/_index.ro.md @@ -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ându‑vă î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 într‑un 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 într‑un 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 %}} \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/relay/_index.ro.md b/content/self-host/rustdesk-server-pro/relay/_index.ro.md new file mode 100644 index 0000000..a5be508 --- /dev/null +++ b/content/self-host/rustdesk-server-pro/relay/_index.ro.md @@ -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_-.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ți‑vă la server prin SSH și creați un volume pentru `hbbr`. + +``` +# docker volume create hbbr +``` + +Volume‑ul `hbbr` va fi localizat în `/var/lib/docker/volumes/hbbr/_data`. + +2 - Copiați perechea de chei private în locația volume‑ului; în acest exemplu folosim SCP pentru a copia fișierele. + +Sintaxa comenzii este `scp username@server:`. + +``` +# 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, s‑ar putea să doriți să blocați/permiteți IP‑uri 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 firewall‑ul** +``` +# 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ți‑vă 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 [site‑ul 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 link‑ul de descărcare, care este gratuit. + +Accesați `Manage License Keys` și generați o cheie nouă. +
+![](https://github.com/rustdesk/doc.rustdesk.com/assets/642149/632aeb33-4f5d-4a31-9010-38e01c22d3c9) +
+![](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.** +
+![](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. +
+![](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. +
+![](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 într‑un 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 +``` \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/smtp/_index.ro.md b/content/self-host/rustdesk-server-pro/smtp/_index.ro.md new file mode 100644 index 0000000..7863d6a --- /dev/null +++ b/content/self-host/rustdesk-server-pro/smtp/_index.ro.md @@ -0,0 +1,8 @@ +--- +title: SMTP +weight: 16 +--- + +Configurarea SMTP permite serverului dvs. să trimită notificări prin e‑mail, cum ar fi invitații pentru utilizatori, verificări la autentificare și alerte de conexiune. + +[Tutorial video](https://youtu.be/0LyQY1JS4Uc) \ No newline at end of file diff --git a/content/self-host/rustdesk-server-pro/strategy/_index.ro.md b/content/self-host/rustdesk-server-pro/strategy/_index.ro.md new file mode 100644 index 0000000..6ec52fb --- /dev/null +++ b/content/self-host/rustdesk-server-pro/strategy/_index.ro.md @@ -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 pop‑up 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 drop‑down 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 drop‑down 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 drop‑down 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. \ No newline at end of file diff --git a/content/videos/_index.ro.md b/content/videos/_index.ro.md new file mode 100644 index 0000000..3b121ae --- /dev/null +++ b/content/videos/_index.ro.md @@ -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) \ No newline at end of file diff --git a/hugo.yaml b/hugo.yaml index d092b48..13017a5 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -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"] diff --git a/themes/hextra b/themes/hextra index 7031718..7b27743 160000 --- a/themes/hextra +++ b/themes/hextra @@ -1 +1 @@ -Subproject commit 7031718449830fb5d2faa6342b947961ff293820 +Subproject commit 7b2774315999631e0e6aa35dc01f7a6d0c182e46 diff --git a/v3/src/pages/ar/pricing.astro b/v3/src/pages/ar/pricing.astro index 5fe7e5f..b7d5371 100644 --- a/v3/src/pages/ar/pricing.astro +++ b/v3/src/pages/ar/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/de/pricing.astro b/v3/src/pages/de/pricing.astro index 1548efc..057afea 100644 --- a/v3/src/pages/de/pricing.astro +++ b/v3/src/pages/de/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/es/pricing.astro b/v3/src/pages/es/pricing.astro index 41e3f0f..5664136 100644 --- a/v3/src/pages/es/pricing.astro +++ b/v3/src/pages/es/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/fr/pricing.astro b/v3/src/pages/fr/pricing.astro index 66aab9e..0b169b5 100644 --- a/v3/src/pages/fr/pricing.astro +++ b/v3/src/pages/fr/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/it/pricing.astro b/v3/src/pages/it/pricing.astro index 3db6eeb..6b098a1 100644 --- a/v3/src/pages/it/pricing.astro +++ b/v3/src/pages/it/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/ja/pricing.astro b/v3/src/pages/ja/pricing.astro index f396c1f..6a041ef 100644 --- a/v3/src/pages/ja/pricing.astro +++ b/v3/src/pages/ja/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/ko/pricing.astro b/v3/src/pages/ko/pricing.astro index f645a26..e5cac6e 100644 --- a/v3/src/pages/ko/pricing.astro +++ b/v3/src/pages/ko/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/pricing.astro b/v3/src/pages/pricing.astro index 2ef42fc..9fd2997 100644 --- a/v3/src/pages/pricing.astro +++ b/v3/src/pages/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/pt/pricing.astro b/v3/src/pages/pt/pricing.astro index 80d59d8..a15e45f 100644 --- a/v3/src/pages/pt/pricing.astro +++ b/v3/src/pages/pt/pricing.astro @@ -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'); + } } }); } diff --git a/v3/src/pages/zh-cn/pricing.astro b/v3/src/pages/zh-cn/pricing.astro index 262d4d0..270e406 100644 --- a/v3/src/pages/zh-cn/pricing.astro +++ b/v3/src/pages/zh-cn/pricing.astro @@ -37,7 +37,22 @@ const metadata = { cancelButtonText: '否', }).then((result) => { if (result.isConfirmed) { - window.open(redirectUrl + '¤cy=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'); + } } }); } diff --git a/v3/src/pages/zh-tw/pricing.astro b/v3/src/pages/zh-tw/pricing.astro index ab9ffde..fb4a4cc 100644 --- a/v3/src/pages/zh-tw/pricing.astro +++ b/v3/src/pages/zh-tw/pricing.astro @@ -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'); + } } }); }