Table of Contents
- How does RustDesk work?
- Apple / Google Store
- How much does the community version of RustDesk server cost?
- Can I host my own RustDesk server?
- Where can I download RustDesk Server?
- The server is asking me for a license, where can I get one from?
- Config client for self-hosting
- What does the server do, why do I need it?
- I only use RustDesk for a few devices on my local network with no Internet connectivity... Can I still use RustDesk with direct ip access?
- hbbs -c, the configuration file format
- Change id, addressbook/api/login and web console?
- Hardware requirement for RustDesk server.
- Deploy RustDesk server in intranet.
- X11 error: connection refused (login as root)
- How to update RustDesk server?
- Some RustDesk Server installer
- About self-hosting setup
- Connection log on server side.
- How does it work?
- Access Logs?
- Wayland
- Change default options
- No sound
- Sponsor open source RustDesk (Donate)
- Why does self-hosting server need to configure a public key?
- White screen on windows
- Nginx stream proxy
- Keyboard translation modes
- deadline has elapsed
- Force relay
- Headless Linux Support
- Run in docker
- Can not open issue on Mac/OSX
- Mac input/record permission
- Performance issue on win11
- Windows UAC
- SELinux on Fedora
- Access devices on another self-hosted or public server.
- Use domain instead of ip for direct ip access.
- Why Pro?
- Workaound of X11 connection refused issue
- WOL (wake on lan)
- SOCKS5 proxy failure
- Connection reset by the peer
- CTRL-ALT-DEL does not work
- Unable to display image despite screen sharing being enabled on Android
- Modify Login Screen (gdm) session from Wayland to X11
- Prevent Android service from being killed by the system
- Failed to connect via rendezvous server: Please try later
- Command line
- Command line output on Windows
- Run in iOS simulator
- No Mouse Pointer when no physical mouse detected
- Failed to log in with custom client build or public release with wrong API settings.
- Connection Log or device name on devices page of web console is empty
- Unexpected character when log in
- Impossible to get Android input permission
- Install/Upgrade from command line on Windows.
- How to use TCP tunneling (port forwarding).
- DDNS
- How to separate the tabs (enable the separate window mode)?
- API of RustDesk server Pro
- Android "Start on boot" and limitations
- Steps to create custom clients
- Android 13 / 14 Input Controll is Restricted by Android due to "Security reasons"
- Unable to open macOS App
- Unlock security settings not work on some Linux
- The main interface cannot be displayed when using multiple monitors
- What are managed devices / Login users / concurrent connections in Pro?
- Proxy for Pro server
- How often does Pro check license?
- The connection is interrupted every 10-15 seconds
- Hide connection popup (cm) and hide tray
- How can we set up a client with a fixed password for unattended remote access?
- Set up http proxy
- Mouse is blue circle sometimes when there is no physical mouse sometimes
- Feature request policy of Pro
- Feature request policy of OSS
- Where is Settings?
- How to change codec?
- Required ports for client
- Delete devices with API
- 2FA always fail
- The connection is not allowed. You have not logged in or your login session has expired
- The connection is not allowed, the remote device is disabled
- URI / UNI link
- The main interface cannot be displayed when using multiple monitors
- How to use RDP via tcp tunneling (port forward) ?
- What is the callback / client id / secret of Azure in Pro?
- What about casual support cases for Pro?
- Does the product have an agent that can only receive connection similar to TeamViewer host?
- Security Information
- Unable to Validate License (Failed to update license)
- Docker ssl problem
- Windows 10 opens the software with a white screen and no content (monitor/display turned off)
- Windows connect to specific Session
- Connection note
- Business name and VAT etc in the invoice
- Migrate self-hosting OSS version to Pro
- Renew / upgrade license
- Refresh license
- SSL/TLS/HTTPS setup with NGINX
- Custom2 license has limited connections, but custom license has unlimited
- Migrate license to another machine
- Unattended access
- Concerned about managed devices and quick support
- Reset password/email verification / 2fa verification in Pro of web console
- Assign address book
- Assign group
- Bind RootCAs of host to docker container
- Easy access mode
- RustDesk Service does not start automatically
- Key mismatch
- RustDesk Service service terminated unexpectedly
- Can not delete devices on web console
- Custom Client creation fails with error 403
- Unknown custom clients downloads and executions
- Showing multiple remote minotors as individual windows
- Need to set license everyting after restarting container
- Open connection in new window rather than tab
- Building custom client on web console not work
- Desktop crash after a few minutes
- When can we get latest custom client version after public release?
- Panicked at library/std/src/sys/pal/unix/time.rs when running hbbs / hbbr in container
- Update button is missing
- LDAP integration
- Rendezvous errors with running RustDesk server on Windows
- Is web client integrated into RusetDesk server pro?
- How to use rustdesk.com/web client with self-hosting.
- Failed to connect to wss relay server with public web client
- WSS and CORS setup for web client V2 preview
- Does ip whitelist supports CIDR?
- What OSs does privacy mode support?
- What OSs does remote printer support?
- What are the minimum OS requirements?
- Can we control iOS?
- The new icon for my custom client does not take effect on Windows after I change it.
- Duplicate id of cloned system
- Authenticate SMTP to Office 365
- Skip the printer driver installation from command
- How to know if the connection is encrypted.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
How does RustDesk work?
https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F
Apple / Google Store
- Google Store: We removed ourself from Google Store due to scamming, https://github.com/rustdesk/rustdesk/discussions/5660
- Why do you do this?
I know it does not make sense, but it is useful, though we can not control scammers switch to the other tools.
- Why don’t other vendors do this?
Both TeamViewer and AnyDesk have frequently been targeted by scams. You can verify this by searching online or checking their Reddit communities. I cannot answer why they haven’t implemented similar measures—you would need to ask them directly.
- Can be self-hosting scammed?
Yes, absolutely. In fact, many scammers use self-hosting solutions. They set up their own servers and trick users (often targeting seniors) into installing custom clients that connect to their self-hosted servers. However, it’s important not to confuse the concept of being scammed (social engineering) with being hacked (technical breaches). Self-hosting, when properly secured, remains a safer and more secure solution compared to SaaS, as it is harder to hack.
How much does the community version of RustDesk server cost?
The community releases are free of charge if you wish to self host, no license is required.
Can I host my own RustDesk server?
- Yes, you can host your own RustDesk server
- There's a guide here: https://rustdesk.com/docs/en/self-host/
Where can I download RustDesk Server?
You can download RustDesk server from:
The server is asking me for a license, where can I get one from?
Please ensure you have downloaded the newest release of RustDesk server as licenses are no longer required for the community release.
Some users reported they could not pull latest RustDesk server with docker in some countries. https://github.com/rustdesk/rustdesk-server/issues/184
Config client for self-hosting
https://rustdesk.com/docs/en/self-host/client-configuration/
https://rustdesk.com/docs/en/self-host/client-configuration/hardcode-settings/
What does the server do, why do I need it?
- It is primarily used to help your RustDesk clients to find each other.
- Once this is done, it helps you try and get a direct connection between them.
- If this fails and your client and controlled devices cannot talk directly to each other, the relay part of side the server will be used to handle the connection.
I only use RustDesk for a few devices on my local network with no Internet connectivity... Can I still use RustDesk with direct ip access?
Yes, you can!
By default this is turned off for security, however if wish to allow this you can do so by doing steps below:
- Enable direct ip access on controlled side (the machine you wish to control)
- On the client you are connecting from you can now input the Local IP address or host name the address box and click connect.
- the connection is unecrypted, please do not send us issue about this.
- You can not use hostname, because we do not it is id or a name, but there is a workaround, https://github.com/rustdesk/rustdesk/discussions/5833
hbbs -c, the configuration file format
Supper simple format just a=b on each line, a is the name of the option you see from the --help. e.g. e.g.
port=123456
You can also put them in .env file under the same directory of hbbs/hbbr. hbbs/hbbr reads .env file no matter if you specify -c.
Change id, addressbook/api/login and web console?
https://github.com/rustdesk/rustdesk-server/issues/22
https://github.com/rustdesk/rustdesk/discussions/570
https://github.com/rustdesk/rustdesk/issues/509
Hardware requirement for RustDesk server.
The hardware requirements are very low, the minimum configuration of the cloud server is enough, and the CPU and memory requirements are the minimum. Regarding the network size, if the TCP hole punching direct connection fails, the relay traffic will be consumed. The traffic of a relay connection is between 30k-3M/s (1920x1080 screen), depending on the resolution settings and screen update. If it is only for office work demand, the traffic is around 100K/s.
Deploy RustDesk server in intranet.
First you should set relay server with public ip explicitly on "settings" -> "relay" of web console.
If you host the server in your intranet with some type of routers, you may have network problem because of NAT hairping.
Go to access logs on controlled side, you can see more details about failures, also check connection logs %AppData%\RustDesk\log\RustDesk_rCURRENT.log
on controlling side.
One simple solution for NAT hairping (loopback) is that both internal and external use domain. Internally, use an internal DNS Server to point the domain to an intranet IP.
https://rustdesk.com/docs/en/self-host/nat-loopback-issues/
https://github.com/rustdesk/rustdesk-server/issues/24#issuecomment-1234029480
https://github.com/rustdesk/rustdesk/issues/732#issuecomment-1300514997
https://github.com/rustdesk/rustdesk/issues/732#issuecomment-1319433120
https://www.reddit.com/r/rustdesk/comments/1174mgw/comment/j9e9avt/?context=3
https://github.com/rustdesk/rustdesk-server/issues/200#issuecomment-1543710510
https://github.com/rustdesk/rustdesk-server/issues/134#issuecomment-1303437173
https://github.com/rustdesk/rustdesk-server/discussions/353#discussioncomment-8427782
NAT Reflection Mode: https://www.reddit.com/r/PFSENSE/comments/fp9h1f/can_someone_explain_to_me_what_is_nat_reflection/
Also make sure your relay server has correct key, https://github.com/rustdesk/rustdesk/issues/7358
X11 error: connection refused (login as root)
https://github.com/rustdesk/rustdesk/issues/2573#issuecomment-1408672281
How to update RustDesk server?
https://github.com/techahold/rustdeskinstall/issues/30
Some RustDesk Server installer
https://github.com/techahold/rustdeskinstall
https://github.com/elico/rustdesk-ansible-installer
About self-hosting setup
- Most users can make it work following the tutorial: https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/install/ and here is another good tutorial https://www.linkedin.com/pulse/building-your-own-remote-desktop-solution-rustdesk-cloud-montinaro-bv94f
- These videos should be helpful. https://www.youtube.com/watch?v=9nzHm3xGz2I and https://www.youtube.com/watch?v=EeFqj23jxMk. This one is also good, https://www.youtube.com/watch?v=OPVFVAnmpLk. Another one in French: https://www.youtube.com/watch?v=J7t32K5--cM
- This video for Windows,
1254653367
, but it does not cover https and firewall etc. - Most questions are about Linux and network, which can be Googled and ChatGPTed.
- How to Set Up a RustDesk Server with Docker: A Step-by-Step Guide, https://h3x0r.tech/setting-up-a-rustdesk-server-with-docker.
- Go to Discord, there may be some nice users help you. Or search in the discord
welcome
channel, there are many users who have asked similar questions. Whenever, search is your best friend. - If you host the server in your intranet with some type of routers, you may have network problem because of NAT hairping, https://github.com/rustdesk/rustdesk/wiki/FAQ/#deploy-rustdesk-server-in-intranet
- With nginx: https://github.com/rustdesk/rustdesk/issues/835#issuecomment-1162169296
- arm https://github.com/rustdesk/rustdesk-server/issues/125#issuecomment-1320943098
- Change id, addressbook/api/login and web console? https://github.com/rustdesk/rustdesk/wiki/FAQ#change-id-addressbookapilogin-and-web-console
- Windows
- firewalls https://www.reddit.com/r/rustdesk/comments/11u5aou/unable_to_connect_ubuntu_machine_to_selfhosted/
Again, the document is open source, modify it if you do not like it, https://github.com/rustdesk/doc.rustdesk.com
Video tutorials
Connection log on server side.
4d6d439b1a/src/rendezvous_server.rs (L608)
You need to enable it via env RUST_LOG=debug
, e.g.
RUST_LOG=debug ./hbbs ....
How does it work?
https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F
Access Logs?
Our free public server does not persist access log yet.
- Mac:
- Not install:
~/Library/Logs/RustDesk/RustDesk_rCURRENT.log
- Installed:
- Controlled side:
~/Library/Logs/RustDesk/server/RustDesk_rCURRENT.log
- Control side:
~/Library/Logs/RustDesk/RustDesk_rCURRENT.log
- Controlled side:
- Not install:
- Linux:
/root/.local/share/logs/RustDesk/server/
or~/.local/share/logs/RustDesk/server/
- Windows:
- Portable:
%AppData%\RustDesk\log\RustDesk_rCURRENT.log
- Installed:
- Controlled side:
C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\log\server\
- Control side:
%AppData%\RustDesk\log\RustDesk_rCURRENT.log
- Controlled side:
- Portable:
- Android (Available in V1.2.4)
Wayland
Wayland is experimentally supported in nightly build (1.2), but with some limitations.
https://github.com/rustdesk/rustdesk/issues/4276#issuecomment-1537105758
Change default options
No sound
https://github.com/rustdesk/rustdesk/issues/4280#issuecomment-1543618744
Sponsor open source RustDesk (Donate)
https://github.com/sponsors/rustdesk
Why does self-hosting server need to configure a public key?
https://github.com/rustdesk/rustdesk/discussions/966#discussioncomment-6017364
White screen on windows
https://github.com/rustdesk/rustdesk/issues/418#issuecomment-1595882547
Nginx stream proxy
https://github.com/rustdesk/rustdesk-server/issues/265
Keyboard translation modes
RustDesk >= 1.2.0
- Map mode
With "Map 1:1", all keys are mapped from the local to the remote keyboard based on their position. For example, the key "q" on a local QWERTY keyboard will transmit an "a" character if connected to a remote device with an AZERTY keyboard.
This mode is not recommended for office work but it can be useful if the remote device uses specialty software to map macros to specific keys.
- Translate mode
When "Translate" is selected, all keys will be transmitted to the remote endpoint as if the local keyboard layout is active on the remote device.
However, this layout mode may cause problems with certain programs such as video games as they use scan code to process the key presses.
- Legacy mode
This mode is for compatibility with RustDesk <= 1.1.9.
deadline has elapsed
Try out force relay first. If it does not work, please check the possible reasons below:
- You do not install
hbbr
yet - https://github.com/rustdesk/rustdesk-server-pro/discussions/386#discussioncomment-10631971
- The controlled side is configured with wrong key
Please check access logs on the controlled side, along with the hbbs
and hbbr
logs; you can find more clues.
- One user had below error in their access log sometimes. There seems complex networking problem between the pc and the
hbbr
server. Later he resolved this by migratinghbbs/hbbr
to another machine.
[2025-02-28 09:43:37.354355 -06:00] ERROR [src\server.rs:246] Failed to create relay connection for ...:63731 with uuid 2dcd80ff-0169-4cfa-ab02-a72154e0ac65: deadline has elapsed
Force relay
RustDesk >= 1.2.0
Some users experience connection problems with 10054
or deadline has elapsed
(https://github.com/rustdesk/rustdesk-server-pro/discussions/325, broken pipe (os error 32
) error code. Try to add the suffix '/r' to the remote ID.
or
You can force to use relay for all connections in web console of Pro.
Headless Linux Support
https://github.com/rustdesk/rustdesk/wiki/Headless-Linux-Support
Run in docker
https://github.com/rustdesk/rustdesk/pull/7811#issuecomment-2072965054
Can not open issue on Mac/OSX
https://github.com/rustdesk/rustdesk/discussions/5631#discussioncomment-6943538
Mac input/record permission
https://github.com/rustdesk/rustdesk/issues/3261#issuecomment-1446360067 https://github.com/rustdesk/rustdesk/discussions/7762#discussioncomment-9175161
Performance issue on win11
https://www.reddit.com/r/rustdesk/comments/17ajz0x/windows_11_and_remote_desktop_performance_is/
Windows UAC
When you run RustDesk on Windows without installation, you will find the window is freeze when you open system settings, task manager etc. This is classic Windows UAC limitation. You can avoid this by accepting the connection with elevation or requesting elevation from menu of controlling window, or run as admin, or install it on controlled side.
SELinux on Fedora
RustDesk can not run normally on Fedora with default SELinux policy. Please configure it correctly, https://rustdesk.com/docs/en/client/linux/selinux/
Access devices on another self-hosted or public server.
https://github.com/rustdesk/rustdesk/issues/6198#issuecomment-1794694273
Use domain instead of ip for direct ip access.
https://github.com/rustdesk/rustdesk/discussions/5833
Why Pro?
"With the Pro version, can you make a client with all server settings in it easy?"
Yup, fairly easy, as long as you have a basic understanding of Linux. All you need is a fresh linux setup on a small VM or server (2GB Ram, 2 CPU) "Is it a good alternative for anydesk or TeamViewer for a msp connecting to a lot of different pc's and company's?"
It's an OUTSTANDING alternative for both, but especially TeamViewer. Using RustDesk with an internal Relay Server helps show how buggy, slow and bloated TeamViewer is (even the paid version), which we moved away from.
It's difficult to accurately describe how fast and lean RustDesk remote desktop connections are with your own server. The Web Gui you get with the paid version is outstanding and feature rich. Some of it's features include the ability to setup user accounts to manage the server, and the ability of users to login to the server to see all machines listed, and login to any of those machines with a single click, shared address book, custom client generator with your icon, logo, configuration, preset settings, and name.
The paid version also provides a number of security features not available with the free version, such as extensive logging (login attempts, time/date stamp, originating IP) and client machine management.
Workaound of X11 connection refused issue
https://github.com/rustdesk/rustdesk/discussions/5095#discussioncomment-8768671
I also hit this in arch kde x11 session.
sudo pacman -S xorg-xhost
add below in my
.bashrc
solve my problem (which enables local root can access you X11 even without $XAUTHORITY)xhost +local:root > /dev/null 2>&1
WOL (wake on lan)
https://github.com/rustdesk/rustdesk/discussions/1249
SOCKS5 proxy failure
https://github.com/rustdesk/rustdesk/discussions/6398#discussioncomment-9065991
Connection reset by the peer
-
Try out using force relay https://github.com/rustdesk/rustdesk/wiki/FAQ#force-relay.
-
If it is windows portable, it may be caused by the Windows Firewall Dialog, since the first P2P connection attempt will give rise to a TCP listening port. To avoid this, for custom client, you can set below option. Otherwise, you can use force relay https://github.com/rustdesk/rustdesk/wiki/FAQ#force-relay.
-
Check your relay server (hbbr/21117) is using the same key as hbbs (using the same
id_ed25519
file or having the same content). You can see some errors related to connection to relay server in https://github.com/rustdesk/rustdesk/wiki/FAQ#access-logs on controlled side.It may be caused by using wrong volumns mapping in docker compose file, please strictly follow https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/docker/#docker-compose, or you changed hbbs key but forgot to sync to hbbr (and restart), or some other reasons.
We have seen two cases having this hbbr key issue while upgading RustDesk server.
CTRL-ALT-DEL does not work
- Make sure you install RustDesk on Windows, a system service is required for this so you have to install
- Check if
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\SoftwareSASGeneration
registry have correct value, 1 or 3. https://knowledge.broadcom.com/external/article/21517/ctrlaltdel-does-not-work-on-remote-contr.html
Unable to display image despite screen sharing being enabled on Android
We encountered this issue when there are multiple RustDesk clients operating on Android, one being the public release and the other a custom client. If you initiate the service of one client and subsequently start the service of the other, you will not be able to retrieve an image. To rectify this, you must forcibly close the first client (making sure it's not running in the background) and then restart the other one. If the issue persists, please reboot your Android device.
Modify Login Screen (gdm) session from Wayland to X11
https://rustdesk.com/docs/en/client/linux/#login-screen Above may not work in some distro or gnome version, here is fix (may be not proper) https://github.com/rustdesk/rustdesk/issues/8106#issuecomment-2122537264
Prevent Android service from being killed by the system
https://github.com/rustdesk/rustdesk/issues/6192#issuecomment-1848358333
Failed to connect via rendezvous server: Please try later
https://github.com/rustdesk/rustdesk/issues/388#issuecomment-1915892570
Case study:
A: What happened lately?
B: Nothing, our rustdesk works since 8 months. But this morning it’s doesn’t work, even after restarting the docker.
A: I believe there is some unawared router/network or firewall change on your side causing the problem. You can check access log (controlled device) to see if there is something different. https://github.com/rustdesk/rustdesk/wiki/FAQ#access-logs
B: Thanks, you have the true answer. The issue come from our Fortinet Client.
Command line
https://github.com/rustdesk/rustdesk/discussions/3980#discussioncomment-11172341
Command line output on Windows
By default rustdesk.exe
in command line on Windows has no output, you have to run it like below.
-
cmd.exe:
rustdesk.exe <args> | more
, e.g.rustdesk.exe --get-id | more
-
PowerShell:
rustdesk.exe <args> | Out-String
, e.g.rustdesk.exe --get-id | Out-String
https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952
Run in iOS simulator
https://github.com/rustdesk/rustdesk/discussions/5345#discussioncomment-6772568
Instructions to run RustDesk on iOS Simulator [MacOs Apple Silicon]:
- Follow the CI for ios till
662a768d83/.github/workflows/flutter-build.yml (L436)
- Make sure to use target
x86_64-apple-ios
instead ofaarch64-apple-ios
here 👆 - Try
flutter run
and you might get some path error. So search and replace code containing pathtarget/aarch64-apple-ios
totarget/x86_64-apple-ios
- Now you will run into some errors related to architecture mismatch. To fix this add the following to your Podfile
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
+ config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64 i386"
end
end
end
Source: https://github.com/flutter/flutter/issues/94914#issuecomment-992898782
flutter run
👍
No Mouse Pointer when no physical mouse detected
https://github.com/rustdesk/rustdesk/issues/672#issuecomment-1146668238
Failed to log in with custom client build or public release with wrong API settings.
This is usually because your custom client was built before you set up
https
.
Please go to custom clients of web console, modify API
below to correct url, e.g. https://rustdesk.example.com (please remember to remove :21114
), then rerun the build to get a new custom client with the new API
value. If it is not custom client, please go to RustDesk client Settings
-> Network
, set correct API
(the same as web console address).
Here is a good example, https://github.com/rustdesk/rustdesk/discussions/8999
Connection Log or device name on devices page of web console is empty
Actually it is the same problem as above, set correct API
(the same as web console address), you have wrong API settings (please check controlled side for connection log issue).
Please double confirm the API address used for building the custom client, especially some were built before you configured https or domain etc.
You probably have one of below mistakes.
- You changed api from
<ip>:21114
to<domain_name>:80
, and blocked21114
, but you still use<domain_name>:21114
or forget to modify. So please double confirm, change api tohttp://<domain_name>:80
(:80
is not required, it is the default http port) - You changed from http to https, and blocked
80
, but you still usehttp:<domain_name>
or usehttps://<domain_name>:21114
or forget to modify, So please double confirm, change api tohttps://<domain_name>:443
(:443
is not required, it is the default https port). Be careful here, it ishttps
rather thanhttp
. 21114
tls port is changed to443
by rustdesk, https://github.com/rustdesk/rustdesk/discussions/10922#discussioncomment-12336832
For further diagnose, please check the logs on the controlled device for entries similar to DEBUG [src/server/connection.rs:1103]
error sending request for url. The log file path can be found here: https://github.com/rustdesk/rustdesk/wiki/FAQ#access-logs.
Unexpected character when log in
It might be because you used wrong port like this https://github.com/rustdesk/rustdesk-server-pro/issues/396#issuecomment-2564914847
It also might be because you should use https but you used http like this https://github.com/rustdesk/rustdesk-server-pro/discussions/537#discussioncomment-12200960
Impossible to get Android input permission
https://github.com/rustdesk/rustdesk/issues/4023#issuecomment-1566588786 https://github.com/rustdesk/rustdesk/discussions/6241#discussioncomment-10262867
Install/Upgrade from command line on Windows.
On our release page, there are exe
and msi
files, both can be used to install on Windows. If you are our Pro users, you can choose to build exe
or msi
on custom client edition page.
- If you use the exe file:
.\rustdesk.exe --silent-install
- If you use the msi file:
msiexec /i .\rustdesk.msi /quiet
How to use TCP tunneling (port forwarding).
Below is an example of forwarding local 24 port to remote 22. Then you can access remote with ssh localhost -p 24
.
DDNS
https://www.reddit.com/r/rustdesk/comments/1ejw8l3/self_hosted_and_dynamic_ip_question/
How to separate the tabs (enable the separate window mode)?
https://github.com/rustdesk/rustdesk/discussions/2889#discussioncomment-6514549
API of RustDesk server Pro
- General: https://github.com/rustdesk/rustdesk/discussions/5834#discussioncomment-7119453
- Devices: https://github.com/rustdesk/rustdesk-server-pro/discussions/182#discussioncomment-9083837
- Users: Please create a token (check above link for devices) with
Read and write
ofUser Permission
. Download https://raw.githubusercontent.com/rustdesk/rustdesk/master/res/users.py.
# Noted: here, all name containing `test` will be returned
python3 users.py view --url http://rustdesk.yourcompany.com --token <token> --name test
python3 users.py disable --url http://rustdesk.yourcompany.com --token <token> --name test
python3 users.py enable --url http://rustdesk.yourcompany.com --token <token> --name test
- Audit logs: please use
/api/audits/conn
,/api/audits/file
,/api/audits/alarm
,/api/audits/console
, only support 'Get' for logs. Avaiable filters areremote
,local
,created_at
,remote_device_name
,local_device_name
, same to what you see on the web console.
Android "Start on boot" and limitations
https://github.com/rustdesk/rustdesk/issues/3533#issuecomment-1490065448 https://github.com/rustdesk/rustdesk/pull/3425#issuecomment-1606196384 https://github.com/rustdesk/rustdesk/discussions/1330 https://github.com/rustdesk/rustdesk/wiki/FAQ#impossible-to-get-android-input-permission
root
https://github.com/rustdesk/rustdesk/issues/3533#issuecomment-1490226898
Steps to create custom clients
https://github.com/rustdesk/rustdesk/discussions/8981#discussioncomment-10277642
Android 13 / 14 Input Controll is Restricted by Android due to "Security reasons"
https://github.com/rustdesk/rustdesk/discussions/6241
How to remember this.
adb shell appops set com.carriez.flutter_hbb PROJECT_MEDIA allow
https://github.com/rustdesk/rustdesk/discussions/6241#discussioncomment-10262867
Unable to open
macOS App
If your app
file is transfered from telegram or some other tools, the metadata might be changed by these tool.
https://github.com/rustdesk/rustdesk/discussions/8593
Unlock security settings
not work on some Linux
https://github.com/rustdesk/rustdesk/issues/2756#issuecomment-2294775234
The main interface cannot be displayed when using multiple monitors
https://github.com/rustdesk/rustdesk/issues/6223#issuecomment-1787984126
What are managed devices / Login users / concurrent connections in Pro
?
Managed devices
The controlled devices you wish to access remotely are managed devices. These devices are displayed on the Devices
page of the web console
. Excessive devices will be disabled (you can not remote access a disabled device), you can not access these excessive devices remotely. The number of managed devices on the plan is also the maximum number of items allowed in one address book.
Login users
Login users, the number of accounts from your team can log into the web console and the RustDesk client. The team administrator can assign different ACLs to each user. These users are displayed on the Users
page of the web console
. Access control
and shared address books are designed on individual users and user groups. One user can log in to multiple devices.
You need to log in to the RustDesk client first to access address books and permission-enabled devices.
Concurrent connections
It's the same as the so called channels with teamviewer. Here is how TeamViewer defines concurrent connections: it is the number of individual users who can make outgoing connections simultaneously. You can also call it channel, in the same channel, unlimited sessions are allowed.
For example, on one machine A, you can connect to B, C, D, etc., at the same time without limitation. Each outgoing connection in this case is a session, and all of these sessions together are called one channel; unlimited concurrent outgoing sessions are allowed on one machine or in one channel. However, you cannot establish a new connection from B to C while there is an outgoing connection on A at the same time if your license allows only one concurrent connection.
For Example we have support Agent A who is talking to Customer C and Now Agent B wants to communicate with Customer D when Agent A is Connected to Customer C, Then How many concurrent connection do we need? You need 2.
Proxy for Pro
server
Add proxy support for license verification (also apply to custom client generator and oidc) in case you can not access internet directly
e.g. proxy=http://username:password@example.com:8080 ./hbbs
you can also add proxy=http://username:password@example.com:8080
to .env file under working directory (where you can see id_ed25519 / db.sqlite3
files)
About how to set up http proxy server, please check https://github.com/rustdesk/rustdesk/wiki/Set-up-http-proxy-server
How often does Pro
check license?
It pings rustdesk.com on port 443 (outbound) daily. If the ping fails, it retries every minute until it succeeds or until 7 days have passed.
The connection is interrupted every 10-15 seconds
Check C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\log\server\RustDesk_rCURRENT.log
, if there is something as below.
[2024-09-03 02:01:37.719270 +03:00] INFO [src\server\connection.rs:3105] #1524 Connection closed: connection manager error: Failed to launch ["--cm"] with session id 1:..... (os error 740)
This is because of something related to permissions, here is a solution.
https://github.com/rustdesk/rustdesk-server-pro/discussions/382#discussioncomment-10525725
Edit:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
:Value name: C:\Program Files\RustDesk\rustdesk.exe
Value data: RunAsInvoker
Hide connection popup (cm) and hide tray
https://github.com/rustdesk/rustdesk/discussions/6008#discussioncomment-7268951
https://rustdesk.com/docs/en/self-host/client-configuration/advanced-settings/#hide-tray
How can we set up a client with a fixed password for unattended remote access?
- Method 1
- Method 2
You can preset password with custom client. We do not support password-less access yet, but you can share passwords easily with shared address books. If you want to disable random (one-time) password and hide popup, please follow this. You can also set advanced option to disable random password.
Set up http proxy
https://github.com/rustdesk/rustdesk/wiki/Set-up-http-proxy-server
Mouse is blue circle sometimes when there is no physical mouse sometimes
https://github.com/rustdesk/rustdesk/discussions/4945
https://github.com/rustdesk/rustdesk/issues/9274
Feature request policy of Pro
Yes, we prioritize feature requests from our current Pro
users, but not from potential users. We cannot guarantee a 100% commitment, but we will try our best especially for some common requests. Please submit your feature request on https://github.com/rustdesk/rustdesk-server-pro/discussions/new?category=feature-request
Feature request policy of OSS
We might change your FR to general (for those, we totally disagree) or idea (for those, we do not consider for the time being, but might look back sometime) category if we do not agree with your requirement. Please do not try to convince us. We know all requests are the most important for you, but sorry, it is only for you, we have our concerns. We do not attempt to convince you, so please do not convince us either.
Where is Settings
?
How to change codec?
Required ports for client
https://github.com/rustdesk/rustdesk-server-pro/discussions/389
Delete devices with API
https://github.com/rustdesk/rustdesk-server-pro/discussions/182#discussioncomment-9082528
2FA always fail
Please ensure the time on the server is not out of sync, set the correct time accordingly.
The connection is not allowed. You have not logged in or your login session has expired
https://github.com/rustdesk/rustdesk-server-pro/discussions/414
The connection is not allowed, the remote device is disabled
You need to upgrade your plan for more devices, or https://github.com/rustdesk/rustdesk-server-pro/discussions/182
You need to re-enable these devices from the devices page on web console manually after plan upgrade.
URI / UNI link
https://github.com/rustdesk/rustdesk/issues/616#issuecomment-1837468064
The main interface cannot be displayed when using multiple monitors
- Try modify %APPDATA%\RustDesk\config\RustDesk_local.toml by removing the line starting with wm_Main.
- Or press
windows key + shift + left/right
https://github.com/rustdesk/rustdesk/issues/6223#issuecomment-1945512879
How to use RDP via tcp tunneling (port forward) ?
Please make sure the RDP service is turned on on your controlled side. The Windows RDP service is not available on Windows Home edition; you need Windows Pro edition.
If both sides are Windows, you can see a RDP
shortcut as below.
Otherwise, please follow below:
- Start
tcp tunneling
first.
- Create a port forward
- Now, you can connect to RDP via
localhost:1234
.
What is the callback / client id / secret of Azure in Pro?
The callback is the public URL of the API so https://[yourservername]/api/oidc/callback
as long as you setup https and a public URL. The Client ID and secret are part of the Azure application setup steps in the instructions
What about casual support cases for Pro?
We have no way to prevent from casual support devices being added to devices page in web console. But we provide this solution for your case.
Does the product have an agent that can only receive connection similar to TeamViewer host?
Yes, we provide quick support clients (you do not have to install it) which receive connection only.
https://github.com/rustdesk/rustdesk/discussions/8981
Security Information
https://github.com/rustdesk/rustdesk/discussions/9835
Unable to Validate License (Failed to update license)
Google etc can be accessed. The final reason is related to the user's cloud provider.
It was a problem with our cloud provider. It was not a DNS problem. I believe it was something with international routes because Rustdesk site (currently hosted at address 45.76.181.120) was not the only host we couldn't reach from our server.
If you run container (Docker etc), there might be DNS problem with container.
Some users encountered TLS issue on Windows server, we would suggest you switch to Linux. RustDesk server is deprecated running on Window, We know nothing about Windows server.
C:\Windows\system32>curl -X POST https://rustdesk.com/api/lic/license/check -H "Content-Type: application/json" -d "{}"
curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325) - The certificate chain was issued by an authority that is not trusted.
Docker ssl problem
User: We are using docker compose and after a reboot of Rustdesk the console is displaying “License is not verified yet”. License key hasn’t changed since installation and editing it gives us error below :
RustDesk: It seems your docker container has ssl certificate problem, I would suggest you run with native package on the host with out container, or build a new container. about license migrate please: https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-license-retrieval-and-migration
User: Thanks, we’ve been able to resolve the issue and the server seems to be working without problem now.
Windows 10 opens the software with a white screen and no content (monitor/display turned off)
https://github.com/rustdesk/rustdesk/discussions/10344
Windows connect to specific Session
https://github.com/rustdesk/rustdesk/discussions/2095
Connection note
Business name and VAT etc in the invoice
Please turn on the "I'm purchasing as a business" option in the payment page as below first, then you can fill in your business details including VAT etc.
Migrate self-hosting OSS version to Pro
It depends how you installed the OSS version.
I would suggest https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/#migrate-to-new-host-and-backup--restore and the docker installation https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/docker/
If you install the OSS version with script, you could try out https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/installscript/#convert-from-open-source, but many guys failed with the upgrade script, so we still suggest the first link.
Renew / upgrade license
Please follow this link to renew or upgrade (if you want more users and devices) your license.
It won't generate new license key, it will renew / upgrade your current license.
The upgrade will also extend your license expiry to a full year, so you will see the charge higher than your expectation, it is not a bug, and the calculation is correct. Why do we do this? Imagine you only have one day left before your license expires. Upgrading a license with just one day remaining doesn't make much sense. Therefore, for simplicity, we extend it to a full year regardless of how many days are left.
After making the payment, please refresh the license as below to activate it.
Refresh license
After payment, you need to proceed to the web console to activate it manually as below. Just click on Edit, then OK, no need to edit anything, because your license key remains the same.
SSL/TLS/HTTPS setup with NGINX
Custom2 license has limited connections, but custom license has unlimited
Though custom license has unlimited connections, but it has limited devices, excessive devices will be disabled. Though custom2 has limited connections, but excessive devices won't be disabled, though they can not be assigned to users and no permission control, they can still be accessible, this is ok for casual/one-time/quick support scenario.
Migrate license to another machine
The license can only be used on one machine, but you can migrate it to another machine if current machine gets down, https://rustdesk.com/docs/en/self-host/rustdesk-server-pro/license/#invoices-license-retrieval-and-migration
Unattended access
You can get unattended access after you set permanent password on the controlled side or preset password on custom client, or set password from command line rustdesk.com --password <password>
.
Concerned about managed devices and quick support
https://github.com/rustdesk/rustdesk/wiki/FAQ#managed-devices
https://github.com/rustdesk/rustdesk/wiki/FAQ#what-about-casual-support-cases-for-pro
Reset password/email verification / 2fa verification in Pro of web console
https://github.com/rustdesk/rustdesk-server-pro/discussions/183
Assign address book
-
Manually in web console or rustdesk client
-
Preset in the custom client
- Via command line
Assign group
-
Manually in web console
-
Preset in the custom client
- Via command line
Bind RootCAs of host to docker container
https://github.com/rustdesk/rustdesk-server-pro/issues/99#issuecomment-2674522210
Easy access mode
We do not have password-less easy access mode for the time being yet. But you can implement it via preset permanent password in custom client on controlled side.
Then on the controlling side, you can use default-connect-password option or use preset password in address book and share in your team.
RustDesk Service does not start automatically
User: When I start either the RustDesk Custom Client or the normal Client, I have to manually start the RustDesk Service every time.
"C:\Program Files\RustDesk-Persch\rustdesk-persch.exe" --install-service
. Is there a better workaround available?
RustDesk team: I noticed from your
rustdesk.exe --silent-install 1
log, you triggered this. Have you ever stopped the service manually before on the rustdesk client?
User: Yes, I stopped the service via the tray icon in Windows. My mistake! The problem is solved. Sorry for taking up your time. So I had to completely uninstall my previous installation of Rustdesk (delete all hidden files in AppData etc).
Key mismatch
One notable instance, we confirmed with the client about the public key again, it is correct, but they still have key mismtach error. then we connect to their server with our client, we got key mismatch sometimes, and sometime not. The reason is they are running two rustdesk server processes.
RustDesk Service service terminated unexpectedly
https://github.com/rustdesk/rustdesk/discussions/11006
Can not delete devices on web console
You can delete a device only when it is offline and disabled. If the device is always online, you cannot delete it because it will reconnect and appear online again after deletion. In such cases, you can only disable it. A disabled device has the same effect as a deleted one—it becomes inaccessible and does not continues to occupy a slot in your license's device limit.
Custom Client creation fails with error 403
https://github.com/rustdesk/rustdesk-server-pro/discussions/572
Unknown custom clients downloads and executions
https://github.com/rustdesk/rustdesk-server-pro/issues/312
Showing multiple remote minotors as individual windows
https://x.com/rustdesk/status/1714199082640581039
Need to set license everyting after restarting container
you HAVE to use network_mode: "host" to ensure licensing persists
Open connection in new window rather than tab
or turn off below
Building custom client on web console not work
Some users have reported issues where custom client tasks remain stuck in a queued or pending state, and the download link is never generated. Here’s why:
The custom client is not built on your server—it’s compiled on our build server. Your server communicates with ours via HTTP to request these builds. However, some users’ servers lack direct internet access and rely on a proxy. Unfortunately, this proxy strips critical HTTP header fields, which disrupts communication between the servers. As a result, the custom client fails to function correctly, leaving tasks perpetually queued and preventing the download link from being created.
Desktop crash after a few minutes
Try turn off hardware codec please. https://www.reddit.com/r/rustdesk/comments/1h3z7fj/desktop_crash_after_a_few_minutes/
When can we get latest custom client version after public release?
I do not think you want to get issue like this https://github.com/rustdesk/rustdesk/issues/11339 So we always upgrade custom client to newest version later, No ETA yet, but we will try our best. When it is ready, we will notify on https://github.com/rustdesk/rustdesk-server-pro/discussions
Panicked at library/std/src/sys/pal/unix/time.rs
when running hbbs
/ hbbr
in container
Add below
privileged: true
cap_add:
- SYS_TIME
into the config for both hbbr
& hbbs
.
Update button is missing
Try renaming the exe file to rustdesk-install.exe and run that. It should open up the install dialog.
LDAP integration
I have a quick question regarding the LDAP integration. I've completed the configuration, and when I click 'OK', I receive a message confirming that the setup was successful.
However, when we attempt to log in with an Active Directory user on the RustDesk client, the authentication fails with an 'incorrect credentials' error. We've tested this with multiple AD accounts, but the issue persists.
Solution: Please change scope from one to sub.
I got "I/O error: User not found" error when using some user names
The issue was caused by the LDAP configuration missing the correct username attribute. As a result, we were only able to log in using the display name instead of the sAMAccountName.
It happened to work for the "cc" account because the display name and sAMAccountName were identical. In my case, however, the display name was "AA BB" while the sAMAccountName was "aa", and I had only been attempting to log in using the sAMAccountName, which is why my user couldn't be found.
I’ve now updated the configuration to use sAMAccountName as the username attribute, and everything is working as expected.
Rendezvous errors with running RustDesk server on Windows
User: For around 40% of the customers we have, when we connect via RustDesk, we keep getting Rendezvous errors.
RustDesk: That's why we put below in our doc. Becaue we got similar reports.
User: I will change the system to a Linux Server this weekend and test it out
User: Just wanted to thank you as the system is looking a lot more stable.
Is web client integrated into RusetDesk server pro?
It is preview version, so not yet. We do not have an ETA yet. You can only use it via https://rustdesk.com/web for now.
How to use rustdesk.com/web client with self-hosting.
- Point to your server first
- Set web socket correctly on the server side, 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-the-web-client
Failed to connect to wss relay server with public web client
WSS and CORS setup for web client V2 preview
Does ip whitelist supports CIDR?
Yes, we added it, https://github.com/rustdesk/rustdesk/pull/2281
What OSs does privacy mode support?
Windows only so far
What OSs does remote printer support?
Windows as controlled side only so far
What are the minimum OS requirements?
MacOS: 10.14 Windows 7+ or Windows Server 2012+ Linux: Ubuntu 18 equivalent, e.g. Debian 9, Fedora 28, openSUSE 15 etc Android: Android 7.0
Can we control iOS?
This is impossible so far since iOS does not allow this.
The new icon for my custom client does not take effect on Windows after I change it.
cd %localappdata%\microsoft\windows\explorer
del iconcache*
taskkill /F /IM explorer.exe & start explorer
Duplicate id of cloned system
You can try deleteing below directories (If the machines have different IP).
%AppData%\RustDesk\
C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk
and reboot the system.
Authenticate SMTP to Office 365
https://www.reddit.com/r/rustdesk/comments/1kh8f9j/authenticate_smtp_to_office_365/
Skip the printer driver installation from command
https://rustdesk.com/docs/en/client/windows/msi/#installprinter
How to know if the connection is encrypted.
There is an icon to indicate if it is encrypted, please hover mouse there, you will see info.