forked from rapiz1/rathole
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
24 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -95,20 +95,24 @@ local_addr = "127.0.0.1:22" # 需要被转发的服务的地址 | |
|
||
**推荐首先查看 [examples](./examples) 中的配置示例来快速理解配置格式**,如果有不清楚的地方再查阅完整配置格式。 | ||
|
||
关于如何配置 Noise Protocol 和 TLS 来进行加密传输,参见 [Security](./docs/transport.md)。 | ||
关于如何配置 Noise Protocol 和 TLS 来进行加密传输,参见 [Transport](./docs/transport.md)。 | ||
|
||
下面是完整的配置格式。 | ||
|
||
```toml | ||
[client] | ||
remote_addr = "example.com:2333" # Necessary. The address of the server | ||
default_token = "default_token_if_not_specify" # Optional. The default token of services, if they don't define their own ones | ||
heartbeat_timeout = 40 # Optional. Set to 0 to disable the application-layer heartbeat test. The value must be greater than `server.heartbeat_interval`. Default: 40 seconds | ||
|
||
[client.transport] # The whole block is optional. Specify which transport to use | ||
type = "tcp" # Optional. Possible values: ["tcp", "tls", "noise"]. Default: "tcp" | ||
nodelay = false # Optional. Determine whether to enable TCP_NODELAY for data transmission, if applicable, to improve the latency but decrease the bandwidth. Default: false | ||
keepalive_secs = 10 # Optional. Specify `tcp_keepalive_time` in `tcp(7)`, if applicable. Default: 10 seconds | ||
keepalive_interval = 5 # Optional. Specify `tcp_keepalive_intvl` in `tcp(7)`, if applicable. Default: 5 seconds | ||
|
||
[client.transport.tcp] # Optional. Also affects `noise` and `tls` | ||
proxy = "socks5://user:[email protected]:1080" # Optional. The proxy used to connect to the server. `http` and `socks5` is supported. | ||
nodelay = false # Optional. Determine whether to enable TCP_NODELAY, if applicable, to improve the latency but decrease the bandwidth. Default: false | ||
keepalive_secs = 20 # Optional. Specify `tcp_keepalive_time` in `tcp(7)`, if applicable. Default: 20 seconds | ||
keepalive_interval = 8 # Optional. Specify `tcp_keepalive_intvl` in `tcp(7)`, if applicable. Default: 8 seconds | ||
|
||
[client.transport.tls] # Necessary if `type` is "tls" | ||
trusted_root = "ca.pem" # Necessary. The certificate of CA that signed the server's certificate | ||
|
@@ -123,19 +127,23 @@ remote_public_key = "key_encoded_in_base64" # Optional | |
type = "tcp" # Optional. The protocol that needs forwarding. Possible values: ["tcp", "udp"]. Default: "tcp" | ||
token = "whatever" # Necessary if `client.default_token` not set | ||
local_addr = "127.0.0.1:1081" # Necessary. The address of the service that needs to be forwarded | ||
nodelay = false # Optional. Determine whether to enable TCP_NODELAY for data transmission, if applicable, to improve the latency but decrease the bandwidth. Default: false | ||
|
||
[client.services.service2] # Multiple services can be defined | ||
local_addr = "127.0.0.1:1082" | ||
|
||
[server] | ||
bind_addr = "0.0.0.0:2333" # Necessary. The address that the server listens for clients. Generally only the port needs to be change. | ||
default_token = "default_token_if_not_specify" # Optional | ||
heartbeat_interval = 30 # Optional. The interval between two application-layer heartbeat. Set to 0 to disable sending heartbeat. Default: 30 seconds | ||
|
||
[server.transport] # Same as `[client.transport]` | ||
type = "tcp" | ||
|
||
[server.transport.tcp] # Same as the client | ||
nodelay = false | ||
keepalive_secs = 10 | ||
keepalive_interval = 5 | ||
keepalive_secs = 20 | ||
keepalive_interval = 8 | ||
|
||
[server.transport.tls] # Necessary if `type` is "tls" | ||
pkcs12 = "identify.pfx" # Necessary. pkcs12 file of server's certificate and private key | ||
|
@@ -150,6 +158,7 @@ remote_public_key = "key_encoded_in_base64" | |
type = "tcp" # Optional. Same as the client `[client.services.X.type] | ||
token = "whatever" # Necessary if `server.default_token` not set | ||
bind_addr = "0.0.0.0:8081" # Necessary. The address of the service is exposed at. Generally only the port needs to be change. | ||
nodelay = false # Optional. Same as the client | ||
|
||
[server.services.service2] | ||
bind_addr = "0.0.0.1:8082" | ||
|
@@ -163,7 +172,7 @@ bind_addr = "0.0.0.1:8082" | |
|
||
比如将日志级别设置为 `error`: | ||
|
||
``` | ||
```shell | ||
RUST_LOG=error ./rathole config.toml | ||
``` | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -97,21 +97,21 @@ But the `[client]` and `[server]` block can also be put in one file. Then on the | |
|
||
Before heading to the full configuration specification, it's recommend to skim [the configuration examples](./examples) to get a feeling of the configuration format. | ||
|
||
See [Security](./docs/transport.md) for more details about encryption and the `transport` block. | ||
See [Transport](./docs/transport.md) for more details about encryption and the `transport` block. | ||
|
||
Here is the full configuration specification: | ||
|
||
```toml | ||
[client] | ||
remote_addr = "example.com:2333" # Necessary. The address of the server | ||
default_token = "default_token_if_not_specify" # Optional. The default token of services, if they don't define their own ones | ||
heartbeat_timeout = 40 # Optional. Set to 0 to disable the application-layer heartbeat test. The value must be greater than `server.heartbeat_interval`. Default: 40 secs | ||
heartbeat_timeout = 40 # Optional. Set to 0 to disable the application-layer heartbeat test. The value must be greater than `server.heartbeat_interval`. Default: 40 seconds | ||
|
||
[client.transport] # The whole block is optional. Specify which transport to use | ||
type = "tcp" # Optional. Possible values: ["tcp", "tls", "noise"]. Default: "tcp" | ||
|
||
[client.transport.tcp] # Optional | ||
proxy = "socks5://user:[email protected]:1080" # Optional. Use the proxy to connect to the server | ||
[client.transport.tcp] # Optional. Also affects `noise` and `tls` | ||
proxy = "socks5://user:[email protected]:1080" # Optional. The proxy used to connect to the server. `http` and `socks5` is supported. | ||
nodelay = false # Optional. Determine whether to enable TCP_NODELAY, if applicable, to improve the latency but decrease the bandwidth. Default: false | ||
keepalive_secs = 20 # Optional. Specify `tcp_keepalive_time` in `tcp(7)`, if applicable. Default: 20 seconds | ||
keepalive_interval = 8 # Optional. Specify `tcp_keepalive_intvl` in `tcp(7)`, if applicable. Default: 8 seconds | ||
|
@@ -137,10 +137,12 @@ local_addr = "127.0.0.1:1082" | |
[server] | ||
bind_addr = "0.0.0.0:2333" # Necessary. The address that the server listens for clients. Generally only the port needs to be change. | ||
default_token = "default_token_if_not_specify" # Optional | ||
heartbeat_interval = 30 # Optional. The interval between two application-layer heartbeat. Set to 0 to disable sending heartbeat. Default: 30 secs | ||
heartbeat_interval = 30 # Optional. The interval between two application-layer heartbeat. Set to 0 to disable sending heartbeat. Default: 30 seconds | ||
|
||
[server.transport] # Same as `[client.transport]` | ||
type = "tcp" | ||
|
||
[server.transport.tcp] # Same as the client | ||
nodelay = false | ||
keepalive_secs = 20 | ||
keepalive_interval = 8 | ||
|
@@ -168,7 +170,7 @@ bind_addr = "0.0.0.1:8082" | |
|
||
`rathole`, like many other Rust programs, use environment variables to control the logging level. `info`, `warn`, `error`, `debug`, `trace` are available. | ||
|
||
``` | ||
```shell | ||
RUST_LOG=error ./rathole config.toml | ||
``` | ||
|
||
|