mirror of
https://gitee.com/IrisVega/frp.git
synced 2024-11-01 22:31:29 +08:00
f804330dbf
[new] Optimize for http services.Support virtual host and custom domain binding. [new] Support max days of keeping log files. [fix] Fix a bug when reconnecting.
136 lines
3.9 KiB
Markdown
136 lines
3.9 KiB
Markdown
# Quick Start
|
|
|
|
frp is easier to use compared with other similar projects.
|
|
|
|
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
|
|
|
|
`go get github.com/fatedier/frp` is recommended, then the code will be copied to the directory `$GOPATH/src/github.com/fatedier/frp`.
|
|
|
|
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.
|
|
|
|
**bin** include all executable programs when **conf** include corresponding configuration files.
|
|
|
|
### Pre-requirement
|
|
|
|
* Go environment. Version of go >= 1.4.
|
|
* 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**.
|
|
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**), or visit custom domains by browser.
|
|
|
|
## Tcp port forwarding
|
|
|
|
### Configuration files
|
|
|
|
#### frps.ini
|
|
|
|
```ini
|
|
[common]
|
|
bind_addr = 0.0.0.0
|
|
# for accept connections from frpc
|
|
bind_port = 7000
|
|
log_file = ./frps.log
|
|
log_level = info
|
|
|
|
# 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
|
|
listen_port = 6000
|
|
```
|
|
|
|
#### frpc.ini
|
|
|
|
```ini
|
|
[common]
|
|
# server address of frps
|
|
server_addr = x.x.x.x
|
|
server_port = 7000
|
|
log_file = ./frpc.log
|
|
log_level = info
|
|
# for authentication
|
|
auth_token = 123
|
|
|
|
# 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
|
|
```
|