[go: up one dir, main page]

Skip to content
RustDesk edited this page Nov 16, 2024 · 259 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:

  • Enable direct ip access on controlled side (the machine you wish to control) image
  • 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. 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

Video tutorials

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

deadline has elapsed

Try out force relay first. If it does not work, please check the possible reasons below:

Please check access logs on the controlled side, along with the hbbs and hbbr logs; you can find more clues.

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.

image

or

image

You can force to use relay for all connections in web console of Pro.

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

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 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]:

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.

image

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

image

Here is a good example, https://github.com/rustdesk/rustdesk/discussions/8999

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 REINSTALL=ALL REINSTALLMODE=vamus /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.

image

image

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

image image

API of RustDesk server Pro

# 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

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#discussioncomment-6860073 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 / licensed 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 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.

image

Licensed users

Licensed users, also known as login users, the number of people from your team can log into the web console and the RustDesk client. 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.

image

You need to log in to the RustDesk client first to access address books and permission-enabled devices.

image

Concurrent connections

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

https://community.teamviewer.com/English/discussion/10470/the-maximum-number-of-your-concurrent-teamviewer-sessions-has-been-reached

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

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 cm popup 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

image

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

image

Does the product have an agent that can only receive connection similar to TeamViewer host?

Yes, we provide quick support clients which receive connection only.

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

Set up http proxy

https://github.com/rustdesk/rustdesk/wiki/Set-up-http-proxy-server

Mouse is blue circle sometimes

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

https://github.com/rustdesk/rustdesk/issues/9274

Feature request policy

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.

Where is Settings?

image

How to change codec?

image

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.

image

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

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) ?

If both sides are Windows, you can see a RDP shortcut as below.

image

Otherwise, please follow below:

  • Start tcp tunneling first.

image

  • Create a port forward

image

  • 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 provide this solution if you have some devices that need to be supported occasionally without unattended access.

Clone this wiki locally