Skip to content
RustDesk edited this page Jun 12, 2024 · 116 revisions

How does RustDesk work?

https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F

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?

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:

  • On the device you wish to control
  • Go into the Menu and select Enable direct IP...
  • 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.

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. image

Web client

https://rustdesk.com/docs/en/dev/build/web/

http://web.rustdesk.com/ no https for the time being

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.

If you host the server in your intranet with some type of routers, you may have network problem because of NAT hairping,

https://rustdesk.com/docs/en/self-host/nat-loopback-issues/

https://www.reddit.com/r/rustdesk/comments/13fkdyd/comment/jjvm6j1/?utm_source=share&utm_medium=web2x&context=3

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

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

Again, the document is open source, modify it if you do not like it, https://github.com/rustdesk/doc.rustdesk.com

Connection log on server side.

https://github.com/rustdesk/rustdesk-server/blob/4d6d439b1ad797f8f8741a42672fa46c1503672e/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: ~/Library/Logs/RustDesk/server/
  • Linux: /root/.local/share/logs/RustDesk/server/
  • Windows:
    • Portable: %AppData%\Roaming\RustDesk\log\server\
    • Installed: C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\log\server\
  • Android (Available in V1.2.4)

image

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

image

No sound

https://github.com/rustdesk/rustdesk/issues/4280#issuecomment-1543618744

Sponsor open source RustDesk (Donate)

https://github.com/sponsors/rustdesk

https://ko-fi.com/rustdesk

Why does self-hosting server need to configure a public key?

https://github.com/rustdesk/rustdesk/discussions/966#discussioncomment-6017364

Hide connection popup

https://github.com/rustdesk/rustdesk/discussions/4424

White screen on windows

https://github.com/rustdesk/rustdesk/issues/418#issuecomment-1595882547

Nginx stream proxy

https://github.com/rustdesk/rustdesk-server/issues/265

Managed vs unmanaged

https://www.reddit.com/r/rustdesk/comments/14y6u8c/looking_into_rustdesk_but_have_a_question/

Keyboard translation modes

RustDesk >= 1.2.0

image
  • 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.

Force relay

RustDesk >= 1.2.0

Some users experience connection problems with 10054 error code when using the desktop or mobile client, but not when using the web client. This is because the web client always uses a relay for connection. To resolve the issue, you can add the suffix '/r' to the remote ID.

image

or

image

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-1768000251

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 install it on controlled side.

image image

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 image

Use domain instead of ip for direct ip access.

https://github.com/rustdesk/rustdesk/discussions/5833

I have no display

You need to install virtual display yourself.

https://github.com/rustdesk/rustdesk/discussions/6444#discussioncomment-8521217

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://www.reddit.com/r/rustdesk/comments/1bkeqcv/wake_on_lan_support/

SOCKS5 proxy failure

https://github.com/rustdesk/rustdesk/discussions/6398#discussioncomment-9065991

Connection reset by the peer

image

We have seen two cases having this hbbr key issue while upgading RustDesk server.

CTRL-ALT-DEL does not work

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 andoid service from being killed by 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 output on Windows

  • cmd.exe: rustdesk --get-id | more

  • PowerShell: rustdesk.exe --get-id | Out-String

https://github.com/rustdesk/rustdesk/discussions/6377#discussioncomment-8094952

Clone this wiki locally