frp 主要由两个组件组成:服务端(frps) 和 客户端(frpc)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
服务端
Linux 方式一
1.下载
frp 版本根据自己情况选择,然后通过FTP上传到服务器
或者也可以使用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