RustDesk – self-hosted analogue of TeamViewer

I present to your attention your future little Teamviewer. Completely open, with clients on all platforms. Declared a small consumption of server resources. Out of the box, it can walk through nats, like any self-respecting AnyDesk. Since your server is most likely closer to you geographically, the picture will be transmitted faster, and the traffic will be encrypted by you.

The site has documentation for server deployment. But I want docker-compose and so I follow it to github and change two lines in it:
command: hbbs -r rustdesk.example.com:21117
command: hbbr

on the
command: hbbs -r rustdesk.mysweetdomain.org:21117 -k _
command: hbbr -k _

I indicated my domain address, and the addresses inside the network and outside the domain are different. Clients located both in my network and on the Internet somewhere behind nat, despite this, visit each other without problems. And set the -k _ key so that encryption is mandatory. If you do not specify the server’s public key on the client, the connection will not be encrypted. You can not encrypt, but why not? Yes, and no one will stick.

Next, wave docker-compose and the server is already running and listening to local ports. We forward 21115,21116,21117,21118,21119 tcp and 21116 udp on the router.

In the docker, two containers hbbs and hbbr are running, you need to enter both of them and see what they have in the files ./id_ed25519.pub and ./id_ed25519. You need to make sure that these pairs of files are the same in both containers, otherwise you will see this error. The content of ./id_ed25519 is the key. It should be placed here:

You can pass these parameters to the Windows client by naming the client binary, for example like this:
rustdesk-host=rust.mysweetdomain.org,key=wESFQlLasdasdasd5ZGkGZcsas123vasdwRFes=.exe
After that, you can see them in About:

Next, distribute the cunningly named binary to everyone and use it!
Works very fast. Beaver everyone!

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *