[TOC]

下载

文档
https://gofrp.org/docs/setup/

Github 的 Release 页面
https://github.com/fatedier/frp/releases

下载对应架构的软件包, frp_0.35.1_linux_amd64.tar.gz

运行 解压

tar -zxvf frp_0.29.1_linux_amd64.tar.gz

文件配置

  • 服务端是配置Frps.ini文件,运行Frps启动
  • 客户端是配置Frpc.ini文件,运行Frpc启动

新版使用toml格式文件,ini文件不再适用。

修改服务端配置文件并启动

打开Frps.ini文件,这里配置web服务服务

[common]
# 内网穿透服务器端监听的IP地址,可以省略,默认为127.0.0.1
bind_addr = 0.0.0.0
# 服务器端监听的端口,默认是7000
bind_port = 7000
# 该端口就是以后访问web服务需要用到的端口
vhost_http_port = 8787

# frp的web面板配置
dashboard_addr = 0.0.0.0
dashboard_port = 7500

# 登陆用户
dashboard_user = admin
# 登陆密码
dashboard_pwd = adminadmin

frps.toml

bindPort = 7000
vhostHTTPPort = 8787
# auth.token = "wwssaaddbaba123"
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "adminadmin"

启动frps

./frps -c ./frps.ini
# 或
./frps -c ./frps.toml

或后台启动

nohup ./frps -c ./frps.ini &
# 或
nohup ./frps -c ./frps.toml &

查看进程

ps -aux | grep "frps"

可以通过kill杀死进程,终止服务

客户端配置并启动

打开Frpc.ini文件

[common]
## 服务端的服务器ip
server_addr = 服务器ip地址
## 服务端监听的端口(必须与Frps.ini中的配置一致)
server_port = 7000
# token = wwssaaddbaba123

[myweb111] # 给当前穿透服务起一个唯一名字
type = http
# 要穿透的本地服务地址
local_ip = 192.168.0.121
local_port = 8080
# 绑定的域名
custom_domains = [随便取一个前缀].nat.domain.com;

启动

frpc.exe -c frpc.ini

新版toml文件的配置

serverAddr = "服务器ip地址"
serverPort = 7000
# auth.token = "wwssaaddbaba123"

[[proxies]]
name = "myHomePage" # 给当前穿透服务起一个唯一名字
type = "http"
localIP = "192.168.0.121"
localPort = 8080
customDomains = ["[随便取一个前缀].nat.domain.com"]
# useEncryption = true
# useCompression = true

# 配置账号密码验证才能打开
# httpUser = "root"
# httpPassword = "root1333."

启动

frpc.exe -c frpc.toml

服务器配置nginx反向代理

server {
    listen 80;
    server_name *.nat.domain.com; # 这里填你的域名,然后去域名商解析

    location / {
        proxy_pass http://127.0.0.1:8787;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 禁止缓存
        proxy_buffering off;
        proxy_cache off;
        proxy_no_cache on;

    }
}

如果你在用宝塔,记得在宝塔反向代理里修改配置文件内容。关闭缓存。

Linux设置frp进程守护

/lib/systemd/system/目录中创建frps.service文件。内容如下:

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target

之后就可以通过systemctl启动frp

# 启动frps
sudo systemctl start frps
# 打开自启动
sudo systemctl enable frps

# 重启
sudo systemctl restart frps
# 停止应用
sudo systemctl stop frps
# 查看应用日志
sudo systemctl status frps