Grammer fixes

This commit is contained in:
Guy Lewin 2019-10-01 15:58:35 -04:00
parent 5dc8175fc8
commit bf0993d2a6

View File

@ -8,7 +8,7 @@
frp is a fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. As of now, it supports tcp & udp, as well as http and https protocols, where requests can be forwarded to internal services by domain name.
Now it also try to support p2p connect.
Now it also tries to support p2p connect.
## Table of Contents
@ -64,7 +64,7 @@ Now it also try to support p2p connect.
## Status
frp is under development and you can try it with latest release version. Master branch for releasing stable version when dev branch for developing.
frp is under development and you can try it with the latest release version. 'master' branch is for releasing stable version, 'dev' branch is for development.
**We may change any protocol and can't promise backward compatibility. Please check the release log when upgrading.**
@ -172,7 +172,7 @@ However, we can expose a http or https service using frp.
`./frps -c ./frps.ini`
3. Modify frpc.ini, set remote frps's server IP as x.x.x.x, forward dns query request to google dns server `8.8.8.8:53`:
3. Modify frpc.ini, set remote frps's server IP as x.x.x.x, forward dns query request to Google's dns server `8.8.8.8:53`:
```ini
# frpc.ini
@ -197,7 +197,7 @@ However, we can expose a http or https service using frp.
### Forward unix domain socket
Using tcp port to connect unix domain socket like docker daemon.
Use tcp port to connect to a unix domain socket (e.g. Docker daemon's socket).
Configure frps same as above.
@ -222,7 +222,7 @@ Configure frps same as above.
### Expose a simple http file server
A simple way to visit files in the LAN.
A simple way to browse files in the LAN.
Configure frps same as above.
@ -244,7 +244,7 @@ Configure frps same as above.
plugin_http_passwd = abc
```
2. Visit `http://x.x.x.x:6000/static/` by your browser, set correct user and password, so you can see files in `/tmp/file`.
2. Visit `http://x.x.x.x:6000/static/` by your browser, specify correct user and password, so you can see files in `/tmp/file`.
### Enable HTTPS for local HTTP service
@ -272,13 +272,13 @@ Configure frps same as above.
### Expose your service in security
For some services, if expose them to the public network directly will be a security risk.
Some services will be at risk if exposed directly to the public network.
**stcp(secret tcp)** helps you create a proxy avoiding any one can access it.
**stcp(secret tcp)** helps you create a proxy while keeping the service secure.
Configure frps same as above.
1. Start frpc, forward ssh port and `remote_port` is useless:
1. Start frpc, forward ssh port and `remote_port` are useless:
```ini
# frpc.ini
@ -310,7 +310,7 @@ Configure frps same as above.
bind_port = 6000
```
3. Connect to server in LAN by ssh assuming that username is test:
3. Connect to server in LAN using ssh assuming that username is test:
`ssh -oPort=6000 test@127.0.0.1`
@ -318,7 +318,7 @@ Configure frps same as above.
**xtcp** is designed for transmitting a large amount of data directly between two client.
Now it can't penetrate all types of NAT devices. You can try **stcp** if **xtcp** doesn't work.
It can't penetrate all types of NAT devices. You can try **stcp** if **xtcp** doesn't work.
1. Configure a udp port for xtcp:
@ -326,7 +326,7 @@ Now it can't penetrate all types of NAT devices. You can try **stcp** if **xtcp*
bind_udp_port = 7001
```
2. Start frpc, forward ssh port and `remote_port` is useless:
2. Start frpc, forward ssh port and `remote_port` are useless:
```ini
# frpc.ini
@ -358,7 +358,7 @@ Now it can't penetrate all types of NAT devices. You can try **stcp** if **xtcp*
bind_port = 6000
```
4. Connect to server in LAN by ssh assuming that username is test:
4. Connect to server in LAN using ssh assuming that username is test:
`ssh -oPort=6000 test@127.0.0.1`
@ -366,7 +366,7 @@ Now it can't penetrate all types of NAT devices. You can try **stcp** if **xtcp*
### Configuration File
You can find features which this document not metioned from full example configuration files.
You can find features not mentioned in this document from the full example configuration files.
[frps full configuration file](./conf/frps_full.ini)
@ -374,7 +374,7 @@ You can find features which this document not metioned from full example configu
### Configuration file template
Configuration file tempalte can be rendered using os environments. Template uses Go's standard format.
Configuration file template can be rendered using os environments. Template uses Go's standard format.
```ini
# frpc.ini
@ -402,7 +402,7 @@ All environments has prefix `.Envs`.
### Dashboard
Check frp's status and proxies's statistics information by Dashboard.
Check frp's status and proxies' statistics information by Dashboard.
Configure a port for dashboard to enable this feature:
@ -414,15 +414,15 @@ dashboard_user = admin
dashboard_pwd = admin
```
Then visit `http://[server_addr]:7500` to see dashboard, default username and password are both `admin`.
Then visit `http://[server_addr]:7500` to see the dashboard, default username and password are both `admin`.
![dashboard](/doc/pic/dashboard.png)
### Admin UI
Admin UI help you check and manage frpc's configure.
Admin UI help you check and manage frpc's configuration.
Configure a address for admin UI to enable this feature:
Configure an address for admin UI to enable this feature:
```ini
[common]
@ -436,11 +436,11 @@ Then visit `http://127.0.0.1:7400` to see admin UI, default username and passwor
### Authentication
`token` in frps.ini and frpc.ini should be same.
`token` in frps.ini and frpc.ini should be equal.
### Encryption and Compression
Defalut value is false, you could decide if the proxy will use encryption or compression:
Default value is false, you could decide if the proxy will use encryption or compression:
```ini
# frpc.ini
@ -454,11 +454,11 @@ use_compression = true
#### TLS
frp support TLS protocol between frpc and frps since v0.25.0.
frp supports TLS protocol between frpc and frps since v0.25.0.
Config `tls_enable = true` in `common` section to frpc.ini to enable this feature.
For port multiplexing, frp send a first byte 0x17 to dial a TLS connection.
For port multiplexing, frp sends a first byte 0x17 to dial a TLS connection.
### Hot-Reload frpc configuration
@ -473,15 +473,15 @@ admin_port = 7400
Then run command `frpc reload -c ./frpc.ini` and wait for about 10 seconds to let frpc create or update or delete proxies.
**Note that parameters in [common] section won't be modified except 'start' now.**
**Note that parameters in [common] section won't be modified except 'start'.**
### Get proxy status from client
Use `frpc status -c ./frpc.ini` to get status of all proxies. You need to set admin port in frpc's configure file.
Use `frpc status -c ./frpc.ini` to get status of all proxies. You need to set admin port in frpc's configuration file.
### Port White List
`allow_ports` in frps.ini is used for preventing abuse of ports:
`allow_ports` in frps.ini is used to prevent abuse of ports:
```ini
# frps.ini
@ -493,7 +493,7 @@ allow_ports = 2000-3000,3001,3003,4000-50000
### Port Reuse
Now `vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect connection's protocol and handle it correspondingly.
`vhost_http_port` and `vhost_https_port` in frps can use same port with `bind_port`. frps will detect the connection's protocol and handle it correspondingly.
We would like to try to allow multiple proxies bind a same remote port with different protocols in the future.
@ -525,7 +525,7 @@ Using kcp in frp:
kcp_bind_port = 7000
```
2. Configure the protocol used in frpc to connect frps:
2. Configure the protocol used in frpc to connect to frps:
```ini
# frpc.ini
@ -538,7 +538,7 @@ Using kcp in frp:
### Connection Pool
By default, frps send message to frpc for create a new connection to backward service when getting an user request.If a proxy's connection pool is enabled, there will be a specified number of connections pre-established.
By default, frps sends a message to frpc to create a new connection to the backward service when getting a user request. If a proxy's connection pool is enabled, there will be a specified number of connections pre-established.
This feature is fit for a large number of short connections.
@ -585,9 +585,9 @@ group_key = 123
Proxies in same group will accept connections from port 80 randomly.
For `tcp` type, `remote_port` in one group shoud be same.
For `tcp` type, `remote_port` in the same group should be same.
For `http` type, `custom_domains, subdomain, locations` shoud be same.
For `http` type, `custom_domains, subdomain, locations` should be same.
### Health Check
@ -597,7 +597,7 @@ Add `health_check_type = {type}` to enable health check.
**type** can be tcp or http.
Type tcp will dial the service port and type http will send a http rquest to service and require a 200 response.
Type tcp will dial the service port and type http will send a http request to the service and require a HTTP 200 response.
Type tcp configuration:
@ -611,9 +611,9 @@ remote_port = 6000
health_check_type = tcp
# dial timeout seconds
health_check_timeout_s = 3
# if continuous failed in 3 times, the proxy will be removed from frps
# if health check failed 3 times in a row, the proxy will be removed from frps
health_check_max_failed = 3
# every 10 seconds will do a health check
# health check every 10 seconds
health_check_interval_s = 10
```
@ -664,20 +664,20 @@ host_header_rewrite = dev.yourdomain.com
header_X-From-Where = frp
```
Note that params which have prefix `header_` will be added to http request headers.
Note that parameters that have `header_` prefix will be added to http request headers.
In this example, it will set header `X-From-Where: frp` to http request.
### Get Real IP
#### HTTP X-Forwarded-For
Features for http proxy only.
These features are for http proxy only.
You can get user's real IP from HTTP request header `X-Forwarded-For` and `X-Real-IP`.
You can get the user's real IP from HTTP request header `X-Forwarded-For` and `X-Real-IP`.
#### Proxy Protocol
frp support Proxy Protocol to send user's real IP to local service. It support all types without UDP.
frp support Proxy Protocol to send user's real IP to local service. It support all types except UDP.
Here is an example for https service:
@ -777,7 +777,7 @@ http_proxy = http://user:pwd@192.168.1.128:8080
### Range ports mapping
Proxy name has prefix `range:` will support mapping range ports.
Proxy name that has starts with `range:` will support mapping range ports.
```ini
# frpc.ini
@ -792,9 +792,9 @@ frpc will generate 8 proxies like `test_tcp_0, test_tcp_1 ... test_tcp_7`.
### Plugin
frpc only forward request to local tcp or udp port by default.
frpc only forwards request to local tcp or udp port by default.
Plugin is used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file` and you can see [example usage](#example-usage).
Plugins are used for providing rich features. There are built-in plugins such as `unix_domain_socket`, `http_proxy`, `socks5`, `static_file` and you can see [example usage](#example-usage).
Specify which plugin to use by `plugin` parameter. Configuration parameters of plugin should be started with `plugin_`. `local_ip` and `local_port` is useless for plugin.
@ -822,14 +822,14 @@ Interested in getting involved? We would like to help you!
* Take a look at our [issues list](https://github.com/fatedier/frp/issues) and consider sending a Pull Request to **dev branch**.
* If you want to add a new feature, please create an issue first to describe the new feature, as well as the implementation approach. Once a proposal is accepted, create an implementation of the new features and submit it as a pull request.
* Sorry for my poor english and improvement for this document is welcome even some typo fix.
* If you have some wonderful ideas, send email to fatedier@gmail.com.
* Sorry for my poor English. Improvements for this document are welcome, even some typo fixes.
* If you have great ideas, send an email to fatedier@gmail.com.
**Note: We prefer you to give your advise in [issues](https://github.com/fatedier/frp/issues), so others with a same question can search it quickly and we don't need to answer them repeatly.**
**Note: We prefer you to give your advise in [issues](https://github.com/fatedier/frp/issues), so others with a same question can search it quickly and we don't need to answer them repeatedly.**
## Donation
If frp help you a lot, you can support us by:
If frp helps you a lot, you can support us by:
frp QQ group: 606194980