|
@@ -2,7 +2,10 @@
|
|
|
|
|
|
frp is easier to use compared with other similar projects.
|
|
|
|
|
|
-We will use a simple demo to demonstrate how to create a connection to server A's ssh port by server B with public IP address x.x.x.x(replace to the real IP address of your server).
|
|
|
+We will use two simple demo to demonstrate how to use frp.
|
|
|
+
|
|
|
+1. How to create a connection to **server A**'s **ssh port** by **server B** with **public IP address** x.x.x.x(replace to the real IP address of your server).
|
|
|
+2. How to visit web service in **server A**'s **8000 port** and **8001 port** by **web01.yourdomain.com** and **web02.yourdomain.com** through **server B** with public ID address.
|
|
|
|
|
|
### Download SourceCode
|
|
|
|
|
@@ -10,6 +13,8 @@ We will use a simple demo to demonstrate how to create a connection to server A'
|
|
|
|
|
|
Or you can use `git clone https://github.com/fatedier/frp.git $GOPATH/src/github.com/fatedier/frp`.
|
|
|
|
|
|
+If you want to try it quickly, download the compiled program and configuration files from [https://github.com/fatedier/frp/releases](https://github.com/fatedier/frp/releases).
|
|
|
+
|
|
|
### Compile
|
|
|
|
|
|
Enter the root directory and execute `make`, then wait until finished.
|
|
@@ -19,16 +24,18 @@ Enter the root directory and execute `make`, then wait until finished.
|
|
|
### Pre-requirement
|
|
|
|
|
|
* Go environment. Version of go >= 1.4.
|
|
|
-* Godep (if not exist, go get will be executed to download godep when compiling)
|
|
|
+* Godep (if not exist, `go get` will be executed to download godep when compiling)
|
|
|
|
|
|
### Deploy
|
|
|
|
|
|
-1. Move `./bin/frps` and `./conf/frps.ini` to any directory of server B.
|
|
|
-2. Move `./bin/frpc` and `./conf/frpc.ini` to any directory of server A.
|
|
|
+1. Move `./bin/frps` and `./conf/frps.ini` to any directory of **server B**.
|
|
|
+2. Move `./bin/frpc` and `./conf/frpc.ini` to any directory of **server A**.
|
|
|
3. Modify all configuration files, details in next paragraph.
|
|
|
-4. Execute `nohup ./frps &` or `nohup ./frps -c ./frps.ini &` in server B.
|
|
|
-5. Execute `nohup ./frpc &` or `nohup ./frpc -c ./frpc.ini &` in server A.
|
|
|
-6. Use `ssh -oPort=6000 {user}@x.x.x.x` to test if frp is work(replace {user} to real username in server A).
|
|
|
+4. Execute `nohup ./frps &` or `nohup ./frps -c ./frps.ini &` in **server B**.
|
|
|
+5. Execute `nohup ./frpc &` or `nohup ./frpc -c ./frpc.ini &` in **server A**.
|
|
|
+6. Use `ssh -oPort=6000 {user}@x.x.x.x` to test if frp is work(replace {user} to real username in **server A**), or visit custom domains by browser.
|
|
|
+
|
|
|
+## Tcp port forwarding
|
|
|
|
|
|
### Configuration files
|
|
|
|
|
@@ -42,8 +49,8 @@ bind_port = 7000
|
|
|
log_file = ./frps.log
|
|
|
log_level = info
|
|
|
|
|
|
-# test is the custom name of proxy and there can be many proxies with unique name in one configure file
|
|
|
-[test]
|
|
|
+# ssh is the custom name of proxy and there can be many proxies with unique name in one configure file
|
|
|
+[ssh]
|
|
|
auth_token = 123
|
|
|
bind_addr = 0.0.0.0
|
|
|
# finally we connect to server A by this port
|
|
@@ -62,10 +69,67 @@ log_level = info
|
|
|
# for authentication
|
|
|
auth_token = 123
|
|
|
|
|
|
-# test is proxy name same with configure in frps.ini
|
|
|
-[test]
|
|
|
+# ssh is proxy name same with configure in frps.ini
|
|
|
+[ssh]
|
|
|
# local port which need to be transferred
|
|
|
local_port = 22
|
|
|
# if use_encryption equals true, messages between frpc and frps will be encrypted, default is false
|
|
|
use_encryption = true
|
|
|
```
|
|
|
+
|
|
|
+## Http port forwarding and Custom domains binding
|
|
|
+
|
|
|
+If you only want to forward port one by one, you just need refer to [Tcp port forwarding](doc/quick_start_en.md#Tcp-port-forwarding).If you want to visit different web pages deployed in different web servers by **server B**'s **80 port**, you should specify the type as **http**.
|
|
|
+
|
|
|
+You also need to resolve your **A record** of your custom domain to [server_addr], or resolve your **CNAME record** to [server_addr] if [server_addr] is a domain.
|
|
|
+
|
|
|
+After that, you can visit your web pages in local server by custom domains.
|
|
|
+
|
|
|
+### Configuration files
|
|
|
+
|
|
|
+#### frps.ini
|
|
|
+
|
|
|
+```ini
|
|
|
+[common]
|
|
|
+bind_addr = 0.0.0.0
|
|
|
+bind_port = 7000
|
|
|
+# if you want to support vhost, specify one port for http services
|
|
|
+vhost_http_port = 80
|
|
|
+log_file = ./frps.log
|
|
|
+log_level = info
|
|
|
+
|
|
|
+[web01]
|
|
|
+type = http
|
|
|
+auth_token = 123
|
|
|
+# # if proxy type equals http, custom_domains must be set separated by commas
|
|
|
+custom_domains = web01.yourdomain.com
|
|
|
+
|
|
|
+[web02]
|
|
|
+type = http
|
|
|
+auth_token = 123
|
|
|
+custom_domains = web02.yourdomain.com
|
|
|
+```
|
|
|
+
|
|
|
+#### frpc.ini
|
|
|
+
|
|
|
+```ini
|
|
|
+[common]
|
|
|
+server_addr = x.x.x.x
|
|
|
+server_port = 7000
|
|
|
+log_file = ./frpc.log
|
|
|
+log_level = info
|
|
|
+auth_token = 123
|
|
|
+
|
|
|
+# custom domains are set in frps.ini
|
|
|
+[web01]
|
|
|
+type = http
|
|
|
+local_ip = 127.0.0.1
|
|
|
+local_port = 8000
|
|
|
+# encryption is optional, default is false
|
|
|
+use_encryption = true
|
|
|
+
|
|
|
+[web02]
|
|
|
+type = http
|
|
|
+local_ip = 127.0.0.1
|
|
|
+local_port = 8001
|
|
|
+```
|