Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TCP support with tcp encrypted stream to opensource rustdesk-server #400

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

eltorio
Copy link

@eltorio eltorio commented Apr 11, 2024

Compiling Rustdesk client with TEST_TCP enables to use tcp as the transport stream. This stream is encrypted.
This protocol is enabled in the pro version of rustdesk-server but not in the opensource version.

This pull request enables this protocol in the opensource version.

It also updates the hbb_common library to the latest version found in https://github.com/rustdesk/rustdesk

@herokukms
Copy link

herokukms commented Apr 13, 2024

Hi @eltorio ,
I saw your PR, could you publish binaries for linux ?
Thank you

@eltorio
Copy link
Author

eltorio commented Apr 13, 2024

@herokukms
No problem I'll publish them but I published a docker image sctg/sctgdesk-server:latest for linux/amd64 and linux/arm64 they are based on Ubuntu 22.04. It is easy to extract the binaries from:

docker create --name tempcontainer sctg/sctgdesk-server:latest
docker cp tempcontainer:/usr/local/bin/hbbs .
docker cp tempcontainer:/usr/local/bin/hbbr .
docker cp tempcontainer:/usr/local/bin/rustdesk-utils .

@herokukms
Copy link

@eltorio,
thank you it works well with the TEST_TCP, could you publish the client you spoke?

I modified the RustDesk client for adding an option to choose between UDP and TCP mode

Thank you

@eltorio
Copy link
Author

eltorio commented Apr 13, 2024

No sorry, I cannot for 2 reasons:

  • it is customized with our rendez-vous and relay-server
  • it is restricted to our private key

But I respect the AGPLv3 license of Rustdesk and I published all the code on my fork:
You can build it yourself:
All the build is made via this modified workflow
It produces binaries for Macos intel, iOS, Ubuntu amd64, windows x64 and x86, everything is customized via Github secrets. At the end it uploads the builds to a private S3 bucket.
You can adapt it to your needs,
The CI workflow use a special build.py for making some customizations. You may want to keep the original one if you don't need to customize the client.
Finally:
if you want to integrate only the TCP/UDP switch to your source look at 2ea8447c9603ca0a578eb103088ba87345e24c4e or better compare flutter/lib/desktop/pages/desktop_setting_page.dart and src/rendezvous_mediator.rs with rustdesk/rustdesk head

@eltorio
Copy link
Author

eltorio commented Apr 15, 2024

@herokukms as promised I published hbbs, hbbr and rustdesk-utils in my fork .
Note that:

  • the .deb are for Ubuntu jammy (22.04 LTS)
  • the .zip are only the binaries they are linked with libc6

@herokukms
Copy link

@eltorio thanks a lot it works

@herokukms
Copy link

Dear @eltorio ,
I updated your release and now hbbs listens on 21114 ?
Did you change something ?

@eltorio
Copy link
Author

eltorio commented May 6, 2024

Dear @herokukms,

I appreciate your interest in my work. However, I believe this might not be the best place to discuss a fork.

You're correct, my hbbs does listen on tcp/21114. This is because it includes a minimalist API server for Rustdesk. I understand that this might not be what you're looking for. The reason it's visible is due to the AGPLv3 license of the rustdesk-server. This license grants you the right to access the source code. However, if you choose to modify it, you are obligated to publish your modifications under the same license.

I am a firm believer in open source and therefore, I respect the terms of the license.

Regarding your question, you're welcome to explore the project. Please note that it lacks a user interface, support, and documentation, except for an openapi3.json and a Rapidoc frontend.

If you're in need of an API server, I would recommend considering a Rustdesk Pro license if it's within your budget.
I don't have any plan to implement a full clone of rustdesk-server-pro !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants