rustdesk / rustdesk-server Goto Github PK
View Code? Open in Web Editor NEWRustDesk Server Program
Home Page: https://rustdesk.com/server
License: GNU Affero General Public License v3.0
RustDesk Server Program
Home Page: https://rustdesk.com/server
License: GNU Affero General Public License v3.0
https://rustdesk.com/docs/en/self-host/windows/
我按照上面的创建成功了,我怎么连接服务器呢?
将文件名改成rustdesk-host=ip,key=key.exe 并不能成功!
IP服务器填写上IP,Key填写id_ed25519.pub文件中的Key也不能成功,求解!
"A totally new version will be ready to be downloaded soon."
when?
My server system is CentOS8;I want using Docker to build my personal server. Now Docker is running hbbs and hbbr All ports are not change. Docker tell me hbbs and hbbr is healthy but when I changing Id Serve to my IPAddress Win10 RuskDesk(Client) always shows"RustDesk is accessing network" I built it with official documents now I don't know what's wrong with it and how I can make working
docker logs tell me where hbbs or hbbr is starting
Hi all,
I'm trying to run rustdesk-server from a docker.
I did :
docker image rm rustdesk/rustdesk-server mkdir /srv/rustdesk-server cd /srv/rustdesk-server sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v
pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbs
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use
[2022-06-11 12:27:58.526310 +00:00] INFO [src/peer.rs:82] DB_URL=./db_v2.sqlite3
Error: An error occured while creating a new object: error returned from database: unable to open database file
sudo docker run --name hbbr -d -p 21117:21117 -p 21119:21119 -v pwd
:/root -it --net=host --rm rustdesk/rustdesk-server hbbr
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Port mappings have been discarded as one of the Host, Container, Pod, and None network modes are in use
da0eb9db1c7487ca09cc4a51134bb3a6e5142925adf828964178133308db3af2
[billy@z-95 rust]$ sudo docker ps
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
da0eb9db1c74 docker.io/rustdesk/rustdesk-server:latest-arm64v8 hbbr 9 seconds ago Up 8 seconds ago hbbr
[billy@z-95 rust]$`
Docker desktop version 4.9
Windows 11 21H2
Client rustdesk version: 1.1.9 x64
User A
User B
They are both showing the relay server is "Ready".
But when I trying to connect from User A to User B
I got an error : Unable to connect to the relay server
And on the User B's machine, no popups are showing.
The hbbs and hbbr are in the same machine of the User B inside Docker desktop's docker container
hbbs log:
[2022-06-16 12:30:31.207625 +00:00] INFO [src/peer.rs:82] DB_URL=./db_v2.sqlite3
[2022-06-16 12:30:31.328147 +00:00] INFO [src/rendezvous_server.rs:94] serial=0
[2022-06-16 12:30:31.328188 +00:00] INFO [src/rendezvous_server.rs:96] Listening on tcp/udp 0.0.0.0:21116
[2022-06-16 12:30:31.328184 +00:00] INFO [src/common.rs:41] rendezvous-servers=[]
[2022-06-16 12:30:31.328199 +00:00] INFO [src/rendezvous_server.rs:97] Listening on tcp 0.0.0.0:21115, extra port for NAT test
[2022-06-16 12:30:31.328200 +00:00] INFO [src/rendezvous_server.rs:98] Listening on websocket 0.0.0.0:21118
[2022-06-16 12:30:31.328381 +00:00] INFO [src/common.rs:120] Private/public key written to id_ed25519/id_ed25519.pub
[2022-06-16 12:30:31.336736 +00:00] INFO [src/common.rs:41] relay-servers=["host.docker.internal:21117"]
[2022-06-16 12:30:31.328219 +00:00] INFO [libs/hbb_common/src/udp.rs:33] Receive buf size of udp 0.0.0.0:21116: Ok(212992)
[2022-06-16 12:30:31.336827 +00:00] INFO [src/rendezvous_server.rs:135] ALWAYS_USE_RELAY=N
[2022-06-16 12:30:31.336844 +00:00] INFO [src/rendezvous_server.rs:155] Start
[2022-06-16 13:34:26.833530 +00:00] INFO [src/peer.rs:100] update_pk USER_A_ID 172.27.0.1:33057 [49, 100, 57, 48, 99, 56, 98, 50, 45, 97, 55, 98, 54, 45, 52, 54, 99, 48, 45, 98, 54, 48, 54, 45, 54, 51, 99, 51, 48, 53, 54, 51, 99, 99, 57, 53] [176, 62, 191, 210, 41, 182, 237, 198, 35, 56, 68, 255, 160, 86, 175, 64, 97, 209, 143, 133, 214, 252, 193, 64, 28, 169, 103, 136, 201, 175, 10, 219]
[2022-06-16 13:37:02.248151 +00:00] INFO [src/peer.rs:100] update_pk USER_B_ID 172.27.0.1:33489 [98, 54, 102, 53, 57, 51, 101, 99, 45, 52, 48, 55, 48, 45, 52, 54, 48, 50, 45, 98, 99, 50, 97, 45, 100, 101, 56, 97, 57, 97, 56, 99, 97, 54, 55, 48] [236, 222, 69, 7, 106, 38, 253, 31, 34, 247, 41, 127, 200, 100, 38, 178, 184, 225, 114, 7, 51, 86, 242, 5, 183, 100, 81, 90, 210, 177, 12, 150]
you can see both clients are connected
hbbr log:
[2022-06-16 12:30:30.260123 +00:00] INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
[2022-06-16 12:30:30.260138 +00:00] INFO [src/relay_server.rs:83] Listening on websocket 0.0.0.0:21119
[2022-06-16 12:30:30.260136 +00:00] INFO [src/relay_server.rs:81] Listening on tcp 0.0.0.0:21117
[2022-06-16 12:30:30.260134 +00:00] INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
[2022-06-16 12:30:30.260139 +00:00] INFO [src/relay_server.rs:85] Start
[2022-06-16 12:30:30.260163 +00:00] INFO [src/relay_server.rs:104] DOWNGRADE_THRESHOLD: 0.66
[2022-06-16 12:30:30.260167 +00:00] INFO [src/relay_server.rs:113] DOWNGRADE_START_CHECK: 1800s
[2022-06-16 12:30:30.260169 +00:00] INFO [src/relay_server.rs:122] LIMIT_SPEED: 4Mb/s
[2022-06-16 12:30:30.260170 +00:00] INFO [src/relay_server.rs:132] TOTAL_BANDWIDTH: 1024Mb/s
[2022-06-16 12:30:30.260172 +00:00] INFO [src/relay_server.rs:146] SINGLE_BANDWIDTH: 16Mb/s
[2022-06-16 13:37:47.344650 +00:00] INFO [src/relay_server.rs:446] New relay request 4e80cdf8-e278-412b-9d2d-5a4103974fe3 from 172.27.0.1:38108
[2022-06-16 13:37:21.348970 +00:00] INFO [src/relay_server.rs:446] New relay request 20af647b-e2b9-47e4-b45e-1855a40044d5 from 172.27.0.1:37466
[2022-06-16 13:42:30.341972 +00:00] INFO [src/relay_server.rs:446] New relay request e26de483-41de-4d85-a08d-da9d6123ed3b from 172.27.0.1:45640
[2022-06-16 13:45:27.340929 +00:00] INFO [src/relay_server.rs:446] New relay request 71643a71-78e7-48f6-9b59-0619797b9ad5 from 172.27.0.1:50498
docker-compose.yml:
version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
command: hbbs -r host.docker.internal:21117
volumes:
- ./rustdesk/hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./rustdesk/hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped
I tested it with rustdesk version 1.1.8 on debian unstable with kernel version 5.10.0-8. I check the system service file and found that there are not logs being recorded. Maybe that is another feature that can be included. Meanwhile if there are any suggestions on how to support wayland I may give a try to work on it.
Thanks again for such an awesome software. It simple works, I tested it on kde plasma with X11 and even the mobile app is great. It is consuming very little network bandwidth and there are so many features already.
Can I use address book on a self-hosted server?
If I want to connect to a remote system it takes 20-30 seconds. But mostly it timeouts after 30 seconds. Both systems are running Windows 10 with RustDesk 1.1.9.
RustDesk Server was installed via docker and docker-compose on a public available server.
I used this docker-compose config:
version: '3'
services:
rustdesk-server:
container_name: rustdesk-server
network_mode: host
image: rustdesk/rustdesk-server-s6:latest
environment:
- "RELAY=<PUBLIC_IP>:21117"
- "ENCRYPTED_ONLY=1"
volumes:
- ./data:/data
restart: unless-stopped
but I also tried:
version: '3'
services:
rustdesk-server:
container_name: rustdesk-server
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21117:21117
- 21118:21118
- 21119:21119
image: rustdesk/rustdesk-server-s6:latest
environment:
- "RELAY=<PUBLIC_IP>:21117"
- "ENCRYPTED_ONLY=1"
volumes:
- ./data:/data
restart: unless-stopped
Ports 21115-21119/tcp and 21116/udp for incoming connections are open.
Any idea what could cause this long time it needs to connect?
It would be great not to compile binaries for distributions such as Alpine Linux or Void Linux.
Here is simple shell script to build it under Alpine Linux and (additionally) simple service for running it.
I read the document but cannot get the point what the function of both servers are? It results the setting of relay and rendezvous server. For example, the remote is in China, say Shanghai, the local is in USA. And I have 3 VPS which can be used as rendezvous and relay servers. Say, there are each VPS located in USA, Japan and Shanghai. The question is which VPS shall be used as rendezvous server? The closest to the local or to the remote? Where should the relay be located? Close to local, remote, or the rendezvous server?
I use the synology docker version.
I try to connect from win10 at home to remote linux (ubuntu 20.04) at office. Both sides use the latest rustdesk 1.1.9.
When I use the default server, I can connect. But using my self-server , I cannot connect.
The IP of synology at home is 192.168.0.110, and win10 is 192.168.0.109
I have a public network IP, say A.B.C.D which can connect to home via it.
I made nat to synology (192.168.0.110) for ports 21115, 21116, and 21117
I set the "ID server" at win10 rustdesk as 192.168.0.110
I set the "ID server" at remote linux rustdesk as A.B.C.D
The docker command for hbbs is: hbbs -r 192.168.0.110
The docker command for hbbr is just: hbbr
Both win10 and linux sides should have reached the server because the logs of hbbs and hbbr have the following clues
Hello @ all,
could you please be so kind and support binarys for the "armv7l" Plattform.
Best regards,
René
Hi,
In the settings i can specify an API server and a key, too.
Searching didn't yield anything useful and There seems to be nothing inside the docker container, in the docs and no repo. But how can I run my own API server and take this whole thing behind a firewall with no internet connection?
Thanks for help!
I just discovered this amazing app.
We'd like to put the portable version on our website for our customers.
Is there any way to change the portable version, so that it points to our own server?
我用docker自建了服务器,在同一局域网下,连接没有问题,当控制端和被控端,不在同一局域网下时,就会一直报错,连接错误,连接被对方关闭?请问这是自建服务器限制呢,还是什么问题呢?谢谢
Z ERROR hbbs::lic] Registered email required (-m option). Please pay and register on https://rustdesk.com/server.
Recently, I try to install rustdesk-server spk package in synology DSM 7.0 system. But I get a package format error.
Can new spk build supported?
docs should be divided into a docker part and a part without using docker
Hi,
as stated in the documentation, you can set the host and public key in the filename of the client for Windows.
https://rustdesk.com/docs/en/self-host/install/#key
I installed the docker version and the content of id_ed25519.pub looks like that:
uoZ/IMgUtiRqELp/dAyRbP1k9lkCjY4BaM9xUseDdRU=
When I use host and pub key in the filename of the client, I get something like that which is not a valid Windows filename:
rustdesk-host=my.remote.host,key=uoZ/IMgUtiRqELp/dAyRbP1k9lkCjY4BaM9xUseDdRU=.exe
because of the "/".
Any advice or am I missing something?
Unable to install RustDesk in POPOS
`Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'rustdesk' instead of './rustdesk-1.1.9.deb'
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
rustdesk : Depends: pulseaudio
E: Unable to correct problems, you have held broken packages.`
cannot install pulseaudio on Pop
Any alternative for installation?
Would be nice if this had an official docker image.
After I run my server, when I try to log in, it displays "http://ip:21114/api/login Operation timeout".Where do I need to register or start the registration service?
from Reddit
#!/bin/bash
# Get Username
uname=$(whoami)
# Get Company name and domain name
# Setup Database server
apt update
apt install unzip -y
# Make Folder /opt/rustdesk/
if [ ! -d "/opt/rustdesk" ]; then
echo "Creating /opt/rustdesk"
mkdir -p /opt/rustdesk/
cd /opt/rustdesk/
fi
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.5/rustdesk-server-linux-x64.zip
unzip rustdesk-server-linux-x64.zip
rm rustdesk-server-linux-x64.zip
# Setup Systemd to launch hbbs
echo -e "\n[Unit]\nDescription=Rustdesk Signal Server\n\n[Service]\nType=simple\nLimitNOFILE=1000000\nExecStart=/opt/rustdesk/hbbs\nWorkingDirectory=/opt/rustdesk/\nUser=${uname}\nGroup=${uname}\nRestart=always\n# Restart service after 10 seconds if node service crashes\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target\n" > rustdesksignal.service
sudo cp rustdesksignal.service /etc/systemd/system/rustdesksignal.service
rm rustdesksignal.service
sudo systemctl enable rustdesksignal.service
sudo systemctl start rustdesksignal.service
# Setup Systemd to launch hbbr
echo -e "\n[Unit]\nDescription=Rustdesk Relay Server\n\n[Service]\nType=simple\nLimitNOFILE=1000000\nExecStart=/opt/rustdesk/hbbr\nWorkingDirectory=/opt/rustdesk/\nUser=${uname}\nGroup=${uname}\nRestart=always\n# Restart service after 10 seconds if node service crashes\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target\n" > rustdeskrelay.service
sudo cp rustdeskrelay.service /etc/systemd/system/rustdeskrelay.service
rm rustdeskrelay.service
sudo systemctl enable rustdeskrelay.service
sudo systemctl start rustdeskrelay.service
Currently the server does not seem to listen on IPv6 hosts, only on IPv4.
The client however will attempt to connect to IPv6 if the domain name is used and both A and AAAA records exist. Either prevent the client from attempting to connect via IPv6 or make the server listen on IPv6 hosts as well...
The controller sends a message to the controlled person, and the controlled person cannot send a message to the controller
Can we get some step by step instructions on how to build for macOS without having to rely on docker?
All posts I searched in last 10mins online is talking about how great ruskdesk is.
I am trying to find a way to set it up on my home Linux box.
I find there is only source code in the Releases. No documentation.
How does it work out of box exactly?
Thanks.
Hi! I'm very happy to have know Rustdesk. Thanks in advance ;-)
You know the date when the source code will be finished rewriting?
Best regards!
I have changed the ID and RELAY server to my hosted one and when I am restarting the the windows client it states:
Stuck on connecting to the RustDesk network...
Should it be like that?
Does the latest version of rustdek server docker turn off change ID?
Would you produce a Dockerfile and maintain it?
It would make it easier to run a server.
Ideally a Dockerfile for multiple platforms (or one for each). GitHub Actions make testing and publishing on DockerHub (or GitHub repo) easy: multiple platform publishing and testing
EDIT: I am asking because the original issue (c.f. #4 (comment)) links to a file that does not exist anymore: https://github.com/rustdesk/rustdesk-server/blob/master/id-relay-set.md#docker-example
Describe the bug you encountered:
if rustdesk is configured with a security key (Option -k _) , then a remote connection will only work on the same subnet. A client in another network cannot be reached. But it is possible without a key.
What did you expect to happen instead?
That rustdesk can connect to a client in another subnet
How did you install RustDesk
?
Create a yml, based on the rustdesk installation manuel with Parameter -k _
docker-compose up -d
RustDesk version and environment
Server - latest Docker Image from 27.7.2022 from github
Client 1 - Android 1.1.10.-1
Client 2 + 3 - Windows rustdesk 1.1.9
Nice greetings
André Lehrmann
how to customize 'key' (the content of 'id_ed25519.pub') in the Linux/docker version?
Hello,
When I try to connect from my phone to my PC using my self hosted Rustdesk server I only get a key mismatch error, but it never asks me for a key or password for my PC.
Server is running on Docker. Both clients connect to the server okay.
I have tried rebooting my server as well as both clients and have cleared all data on my Rustdesk client on my Android phone.
Hi,
Can someone explain to me what is the benefit of hosted rustdesk and what happen if my rustdest server offline?
Not work
Archive of source code on release page (also can be downloaded by this link) does not contain actual source code of this project.
version: '3'
services:
hbbs:
image: rustdesk/rustdesk-server
command: hbbs -r rustdesk.example.org:21117
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
volumes:
- ./data:/root
hbbr:
image: rustdesk/rustdesk-server
command: hbbr
ports:
- 21117:21117
- 21119:21119
volumes:
- ./data:/root
Creating network "rustdesk_default" with the default driver
Creating rustdesk_hbbs_1 ... done
Creating rustdesk_hbbr_1 ... done
Attaching to rustdesk_hbbs_1, rustdesk_hbbr_1
hbbr_1 | [2022-06-09T03:27:33Z ERROR hbbr::lic] Registered email required (-m option). Please pay and register on https://rustdesk.com/server.
hbbs_1 | [2022-06-09T03:27:33Z ERROR hbbs::lic] Registered email required (-m option). Please pay and register on https://rustdesk.com/server.
rustdesk_hbbs_1 exited with code 0
rustdesk_hbbr_1 exited with code 0
Hello, I am trying to deploy any of the S6-overlay based images and they are not present in Docker Hub.
I need server in intronet?
perhaps you will do this. and yet I did not find prices. and where to pay for the server
Wondering if at this stage it would be wise to run this behind a reverse proxy? Seeing as the login isn't available (from my understanding?) for self hosted yet..
Also, any idea what the proxy settings would need to pass everything through?
The server in the docker container does not seem to repond to SIGINT (aka the result of ctrl+c) or SIGTERM (signal used by podman container stop
) signals, which doesn't allow me to cleanly shut down the container.
This makes it impossible to shut down the container using a simple ctrl+c, and using the stop command takes more time than it should (which sends SIGKILL after a timeout).
SIGKILL obviously works (via podman container kill
), but it's not a clean exit.
I'm running this on an aarch64 (aka. arm64) system - Ubuntu 22.04 LTS, with podman as a replacement to docker, using a rootless container.
I've also tried sending in the signals directly into the container process - no results.
The solution I would like to see is a signal handler to be added for those signals, which would cause the process to cleanly exit. I'm concerned that forcibly ending the process via SIGKILL can cause data loss.
This also might apply to standalone server executables, but I didn't test those.
I see progress of making the server open source, however, the API server is still closed source and no way to self host it. I wonder is that on the plan or there will be no chance of being open source?
Hi there
anyway to use the login function of the clients so that if i login it shows the list of hosts i've used/connected to?
like team viewer does?
regards
Jeremy
If -k _
enabled, your current docker may have problem, because hbbr
need to read the public key generated by hbbs
, we need to start hbbr
a litter later than hbbs
.
without --net=host, our P2P direct link (via hole punch) can not work, because hbbs can only get virtual ip of docker rathter than real ip of the connection.
Originally posted by @rustdesk in #36 (comment)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.