---
url: https://chenlj.top/md/develop/linux/frp.md
---
# frp 的使用

## 1.frp 下载下载

github 下载地址：https://github.com/fatedier/frp/releases

## 2.frp 服务器端配置

### 2.1 修改配置文件

配置服务器`frps.ini`

```properties
[common]
#服务器地址IPv4或ipv6+监听端口（我就直接用下面的四个0建议不要改，改个求）
bind_addr = 0.0.0.0
# frp server 绑定的端口[1-65535]用于服务器端和客户端通信，默认即可
bind_port = 7000
# 设置穿透 http 的端口默认为80这时必须改为 8080
vhost_http_port = 8080
##可视化面板
# 设置域名（保证此域名可用，和frpc中server_addr一致，仅用来通信对应frpc的server_addr）
subdomain_host = chenlj.top
# 配置 frp的控制台服务端口，用于查看frp工作状态，默认即可（可选）
dashboard_addr = 0.0.0.0
dashboard_port = 7500
# dashboard 用户名密码，默认都为 admin，可以自己改包括上面的7500高兴可以改成7600,7800等等
dashboard_user = admin
dashboard_pwd = admin
##
#为了防止端口被滥用仅允许以下端口可被使用
allow_ports = 2000-3000,3001,3003,4000-50000
#通信密码和frpc中的token保持一致
token = 12345678

```

### 2.2 需改 nginx 配置

修改 nginx 配置，转发 oauth.chenlj.top 的请求到本地的

```properties
server {
    listen       80;
    server_name  oauth.chenlj.top;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_buffering off;
        sendfile off;
        proxy_max_temp_file_size 0;
        client_max_body_size       10m;
        client_body_buffer_size    128k;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_temp_file_write_size 64k;
        proxy_http_version 1.1;
        proxy_request_buffering off;
    }
}

```

### 2.3 修改防火墙

```shell
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7500/tcp --permanent
# 根据需要，如果本地nginx 80转发到8080，则不需要开启8080
#firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

```

### 2.4 启动

启动命令，在 frp 文件夹下执行方命令

```shell
./frps -c frps.ini
```

## 3.frp 客户端配置

### 3.1 修改配置文件

配置服务器`frps.ini`

```properties
[common]
#服务器地址IPv4或ipv6+监听端口（服务端分配的IP，不是内网IP，建议填写域名）
server_addr = tencent
server_port = 7000
token = 12345678
#日志文件路径、类型和时间
log_file = ./frpc.log
# trace，debug，info，warn，error
log_level = info
log_max_days = 3
[web]
type = http
#被穿透的局域网IP（可在路由器的DHCP保留当前MAC的IP静态以后重启还是这个IP就不变了）
#可以设置成当前电脑的局域网IP比如192.168.1.11也可以像下面这样的
local_ip = 127.0.0.1
#本地网站的端口号
local_port = 8080
#(true\false)是否使用加密，默认关闭用于防止某些公司的代理服务器可能会识别流量特征从而阻断某些协议。
use_encryption = false
#传输内容压缩，可以有效减小 frpc 与 frps 之间的网络流量，加快流量转发速度，但是会额外消耗一些 cpu 资源。
use_compression = true
##访问密码用于内部测试时不方便外人看到时使用
#http_user = admin
#http_pwd = admin
#是否G-zip启用压缩
use_gzip = true
#域名
custom_domains = oauth.chenlj.top
```

### 3.2 启动

在 frp 文件夹下创建 frp.cmd

```shell
frpc.exe -c frpc.ini
pause
```

然后双击 frp.cmd 启动客户端

> 这样通过 http://oauth.chenlj.top 访问的流量就会被转发到客户端所在机器的 8080 端口
