frp 主要由两个组件组成:服务端(frps) 和 客户端(frpc)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。

服务端

Linux 方式一

1.下载 frp 版本根据自己情况选择,然后通过FTP上传到服务器
EasyImage
或者也可以使用wget下载

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

2.解压

tar -zxvf frp_0.55.1_linux_amd64.tar.gz

3.重命名并进入该目录

mv frp_0.55.1_linux_amd64 frp

cd frp

ls
有以下文件
LICENSE  frpc  frpc.toml  frps  frps.toml

4.编辑 frps.toml

bindPort = 7000	                 # frp服务器用于接收客户端连接的端口
auth.method = "token"             
auth.token = "xxxxxxx"           # 身份认证

更多配置示例请参考官方文档

5.运行

./frps -c ./frps.toml

如果需要在后台长期运行,建议结合其他工具,如 systemd

创建 frps.service 文件

sudo vim /etc/systemd/system/frps.service

添加以下内容

# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml

[Install]
WantedBy = multi-user.target

使用 systemd 命令管理 frps 服务

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 开机自启
sudo systemctl enable frps
# 查看frp状态
sudo systemctl status frps

Docker 方式二

1.拉取

docker pull snowdreamtech/frps

2.创建frps.toml

bindPort = 7000	                 # frp服务器用于接收客户端连接的端口
auth.method = "token"             
auth.token = "xxxxxxx"           # 身份认证

3.启动

# xxx为frps.toml实际路径
docker run --restart=always --network host -d -v /xxx/xxx/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

客户端

Windows使用
1.到GitHub上下载frp并解压

2.编辑frpc.toml

serverAddr = "xxxx"          # 对应服务端ip或域名
serverPort = 7000            # 端口
auth.method = "token"
auth.token = "xxxxxxx"       # 对应服务端token 

[[proxies]]
name = "nginx"               # 唯一名称
type = "tcp"                 # 代理类型
localIP = "127.0.0.1"        # 本地ip
localPort = 80               # 本地端口
remotePort = 6000            # 映射到服务端的端口

3.启动 CMD进入解压后的目录

frpc.exe -c ./frpc.toml

Linux使用

1.到GitHub上下载frp并解压

2.编辑frpc.toml文件

3.运行和前面Linux服务端一样

Docker使用

1.拉取

docker pull snowdreamtech/frpc

2.创建frpc.toml

3.启动

# xxx为frpc.toml实际路径
docker run --restart=always --network host -d -v /xxx/xxx/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

远程访问 现在用浏览器就可以远程访问本地的80端口上的服务了

http://xxxx:6000              # xxxx对应服务端ip