介绍

FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,通常用于将内网服务暴露到公网。它允许你通过公网IP访问在内网或防火墙后面的服务。FRP的工作原理是,客户端(内网的机器)与服务器(公网的机器)建立一个长期的连接,客户端将本地的服务端口映射到公网服务器上,用户通过公网访问这个端口,从而访问内网的服务。

安装

下载安装包

wget  https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz

解压安装包

tar  -zxvf  frp_0.61.0_linux_amd64.tar.gz
cd  frp_0.61.0_linux_amd64

配置服务端

frps.ini是服务器端的配置文件,通常会放在服务器上

[common]
bind_port  =  7000  # 绑定端口
dashboard_port  =  7500  # 仪表盘端口
dashboard_user  =  admin
dashboard_pwd  =  admin  # 仪表盘的用户名和密码
vhost_http_port  =  80  # HTTP 请求端口
vhost_https_port  =  443  # HTTPS 请求端口

配置客户端

frpc.ini是客户端的配置文件,通常用于配置本地需要暴露到外网的服务

[common]
server_addr  =  x.x.x.x  # 服务器的公网IP地址
server_port  =  7000  # 服务器的绑定端口(与 `frps.ini` 中的 bind_port 相同)

[http]
type  =  http  # 使用 http 协议
local_port  =  8080  # 本地服务端口
custom_domains  =  www.example.com  # 绑定域名

启动服务端

nohup  ./frps  -c  frps.ini &

启动客户端

nohup  ./frpc  -c  frpc.ini &

开机启动

创建服务文件

创建服务文件 /etc/systemd/system/frpc.service

[Unit]
Description=FRP Client (frpc)
After=network.target

[Service]
Type=simple
ExecStart=/path/to/frpc -c /path/to/frpc.toml
Restart=always
User=<your-username>
WorkingDirectory=/path/to/frpc/directory
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=frpc

[Install]
WantedBy=multi-user.target

重新加载systemd配置

sudo  systemctl daemon-reload

启动服务

sudo systemctl enable frpc.service

检查服务状态

sudo systemctl status frpc.service