|
|
@@ -44,7 +44,8 @@ desktop software that provides self-hosted solutions.
|
|
44
|
44
|
#### The PC client uses version ***1.3.0***, and versions ***1.2.6+*** have been tested to work.
|
|
45
|
45
|
|
|
46
|
46
|
#### Solutions for PC client connection timeout or connection issues
|
|
47
|
|
-- The connection issue is due to the server version lagging behind the client version, causing the server to not respond to the client's `secure_tcp` request, resulting in a timeout.
|
|
|
47
|
+##### Connection issues or timeouts
|
|
|
48
|
+Because the server version lags behind the client version, the server does not respond to the client's `secure_tcp` request, causing the client to timeout.
|
|
48
|
49
|
Relevant code can be found at `https://github.com/rustdesk/rustdesk/blob/master/src/client.rs#L322`
|
|
49
|
50
|
```rust
|
|
50
|
51
|
if !key.is_empty() && !token.is_empty() {
|
|
|
@@ -56,34 +57,36 @@ desktop software that provides self-hosted solutions.
|
|
56
|
57
|
As seen, when both `key` and `token` are not empty, `secure_tcp` is called, but the server does not respond, causing the client to timeout.
|
|
57
|
58
|
The `secure_tcp` code is located at `https://github.com/rustdesk/rustdesk/blob/master/src/common.rs#L1203`
|
|
58
|
59
|
|
|
59
|
|
-- ***Solutions***
|
|
60
|
|
- 1. Specify the key on the server.
|
|
61
|
|
- - Advantage: Simple
|
|
62
|
|
- - Disadvantage: The connection is not encrypted
|
|
63
|
|
- ```bash
|
|
64
|
|
- hbbs -r <relay-server-ip[:port]> -k <key>
|
|
65
|
|
- hbbr -k <key>
|
|
66
|
|
- ```
|
|
67
|
|
- For example
|
|
68
|
|
- ```bash
|
|
69
|
|
- hbbs -r <relay-server-ip[:port]> -k abc1234567
|
|
70
|
|
- hbbr -k abc1234567
|
|
71
|
|
- ```
|
|
72
|
|
- 2. Use a system-generated key or a custom key pair on the server. If the client is already logged in, it may timeout or fail to connect. Logging out and reconnecting usually resolves the issue, and the web client does not need to log out.
|
|
73
|
|
- - Advantage: Encrypted connection
|
|
74
|
|
- - Disadvantage: Complicated operation
|
|
75
|
|
- 3. Use a system-generated key or a custom key pair on the server, fork the official client code to modify `secure_tcp` to return directly, then compile using `Github Actions` and download the compiled client.
|
|
76
|
|
- Refer to [official documentation](https://rustdesk.com/docs/en/dev/build/all/)
|
|
77
|
|
- - Advantage: Encrypted connection, customizable client features, ready to use after compilation
|
|
78
|
|
- - Disadvantage: Requires forking code and compiling, which can be challenging
|
|
79
|
|
- 4. Use [my forked code](https://github.com/lejianwen/rustdesk), which has already modified `secure_tcp`. You can download and use it directly from [here](https://github.com/lejianwen/rustdesk/releases)
|
|
80
|
|
- - Advantage: Code changes are viewable, compiled with `Github Actions`, encrypted connection, ready to use
|
|
81
|
|
- - Disadvantage: May not keep up with official version updates
|
|
82
|
|
-##### If encryption is not a high priority, use `1`. If encryption is important, use `3` or `4`.
|
|
|
60
|
+##### Four Solutions
|
|
|
61
|
+1. Specify the key on the server.
|
|
|
62
|
+ - Advantage: Simple
|
|
|
63
|
+ - Disadvantage: The connection is not encrypted
|
|
|
64
|
+ ```bash
|
|
|
65
|
+ hbbs -r <relay-server-ip[:port]> -k <key>
|
|
|
66
|
+ hbbr -k <key>
|
|
|
67
|
+ ```
|
|
|
68
|
+ For example
|
|
|
69
|
+ ```bash
|
|
|
70
|
+ hbbs -r <relay-server-ip[:port]> -k abc1234567
|
|
|
71
|
+ hbbr -k abc1234567
|
|
|
72
|
+ ```
|
|
|
73
|
+2. Use a system-generated key or a custom key pair on the server. If the client is already logged in, it may timeout or fail to connect. Logging out and reconnecting usually resolves the issue, and the web client does not need to log out.
|
|
|
74
|
+ - Advantage: Encrypted connection
|
|
|
75
|
+ - Disadvantage: Complicated operation
|
|
|
76
|
+3. Use a system-generated key or a custom key pair on the server, fork the official client code to modify `secure_tcp` to return directly, then compile using `Github Actions` and download the compiled client.
|
|
|
77
|
+ Refer to [official documentation](https://rustdesk.com/docs/en/dev/build/all/)
|
|
|
78
|
+ - Advantage: Encrypted connection, customizable client features, ready to use after compilation
|
|
|
79
|
+ - Disadvantage: Requires forking code and compiling, which can be challenging
|
|
|
80
|
+4. Use [my forked code](https://github.com/lejianwen/rustdesk), which has already modified `secure_tcp`. You can download and use it directly from [here](https://github.com/lejianwen/rustdesk/releases)
|
|
|
81
|
+ - Advantage: Code changes are viewable, compiled with `Github Actions`, encrypted connection, ready to use
|
|
|
82
|
+ - Disadvantage: May not keep up with official version updates
|
|
|
83
|
+
|
|
|
84
|
+***If encryption is not a high priority, use `1`. If encryption is important, use `3` or `4`.***
|
|
83
|
85
|
|
|
84
|
86
|
## Overview
|
|
85
|
87
|
|
|
86
|
|
-### API Service: Basic implementation of the PC client's primary interfaces.Supports the Personal version api, which can be enabled by configuring the `rustdesk.personal` file or the `RUSTDESK_API_RUSTDESK_PERSONAL` environment variable.
|
|
|
88
|
+### API Service
|
|
|
89
|
+Basic implementation of the PC client's primary interfaces.Supports the Personal version api, which can be enabled by configuring the `rustdesk.personal` file or the `RUSTDESK_API_RUSTDESK_PERSONAL` environment variable.
|
|
87
|
90
|
|
|
88
|
91
|
#### Login
|
|
89
|
92
|
|
|
|
@@ -97,17 +100,18 @@ The `secure_tcp` code is located at `https://github.com/rustdesk/rustdesk/blob/m
|
|
97
|
100
|
|
|
98
|
101
|

|
|
99
|
102
|
|
|
100
|
|
-#### Groups: Groups are divided into `shared groups` and `regular groups`. In shared groups, everyone can see the peers of all group members, while in regular groups, only administrators can see all members' peers.
|
|
|
103
|
+#### Groups
|
|
|
104
|
+Groups are divided into `shared groups` and `regular groups`. In shared groups, everyone can see the peers of all group members, while in regular groups, only administrators can see all members' peers.
|
|
101
|
105
|
|
|
102
|
106
|

|
|
103
|
107
|
|
|
104
|
108
|
### Web Admin
|
|
105
|
109
|
|
|
106
|
|
-***The frontend and backend are separated to provide a user-friendly management interface, primarily for managing and
|
|
107
|
|
-displaying data.Frontend code is available at [rustdesk-api-web](https://github.com/lejianwen/rustdesk-api-web)***
|
|
|
110
|
+* The frontend and backend are separated to provide a user-friendly management interface, primarily for managing and
|
|
|
111
|
+displaying data.Frontend code is available at [rustdesk-api-web](https://github.com/lejianwen/rustdesk-api-web)
|
|
108
|
112
|
|
|
109
|
|
-***Admin panel URL: `http://<your server[:port]>/_admin/`. The default username and password for the initial
|
|
110
|
|
-installation are `admin` `admin`, please change the password immediately.***
|
|
|
113
|
+* Admin panel URL: `http://<your server[:port]>/_admin/`. The default username and password for the initial
|
|
|
114
|
+installation are `admin` `admin`, please change the password immediately.
|
|
111
|
115
|
|
|
112
|
116
|
1. Admin interface:
|
|
113
|
117
|

|
|
|
@@ -117,7 +121,7 @@ installation are `admin` `admin`, please change the password immediately.***
|
|
117
|
121
|

|
|
118
|
122
|
3. Groups can be customized for easy management. Currently, two types are supported: `shared group` and `regular group`.
|
|
119
|
123
|

|
|
120
|
|
-4. You can open the web client directly for convenience:
|
|
|
124
|
+4. You can directly open the web client for convenient use; it can also be shared with guests, allowing them to remotely access the device via the web client.
|
|
121
|
125
|

|
|
122
|
126
|
5. OAuth support: Currently, `GitHub` and `Google` is supported. You need to create an `OAuth App` and configure it in
|
|
123
|
127
|
the admin
|
|
|
@@ -179,9 +183,8 @@ logger:
|
|
179
|
183
|
report-caller: true
|
|
180
|
184
|
```
|
|
181
|
185
|
|
|
182
|
|
-* Environment variables, with the prefix `RUSTDESK_API_RUSTDESK_PERSONAL`, will override the settings in the
|
|
183
|
|
- configuration file if
|
|
184
|
|
- present.
|
|
|
186
|
+### Environment Variables
|
|
|
187
|
+The prefix for variable names is `RUSTDESK_API`. If environment variables exist, they will override the configurations in the configuration file.
|
|
185
|
188
|
|
|
186
|
189
|
| Variable Name | Description | Example |
|
|
187
|
190
|
|------------------------------------|-----------------------------------------------------------|--------------------------------|
|
|
|
@@ -454,7 +457,22 @@ Download the release from [release](https://github.com/lejianwen/rustdesk-api/re
|
|
454
|
457
|
6. Open your browser and visit `http://<your server[:port]>/_admin/`, with default credentials `admin admin`. Please
|
|
455
|
458
|
change the password promptly.
|
|
456
|
459
|
|
|
457
|
|
-## Miscellaneous
|
|
|
460
|
+#### nginx reverse proxy
|
|
|
461
|
+Configure reverse proxy in `nginx`
|
|
|
462
|
+```
|
|
|
463
|
+server {
|
|
|
464
|
+ listen <your port>;
|
|
|
465
|
+ server_name <your server>;
|
|
|
466
|
+ location / {
|
|
|
467
|
+ proxy_pass http://<api-server[:port]>;
|
|
|
468
|
+ proxy_set_header Host $host;
|
|
|
469
|
+ proxy_set_header X-Real-IP $remote_addr;
|
|
|
470
|
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
471
|
+ proxy_set_header X-Forwarded-Proto $scheme;
|
|
|
472
|
+ }
|
|
|
473
|
+}
|
|
|
474
|
+```
|
|
|
475
|
+## Others
|
|
458
|
476
|
|
|
459
|
477
|
- [Change client ID](https://github.com/abdullah-erturk/RustDesk-ID-Changer)
|
|
460
|
|
-- [webclient](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|
|
|
478
|
+- [Web client source](https://hub.docker.com/r/keyurbhole/flutter_web_desk)
|