注意frp使用的配置文件的格式在老版本和新版本有差别,之前是ini文件,现在是toml文件,字段和字段格式有些变化
本文是以0.61.1版本为例说明,使用的是toml配置文件格式
1. 服务端搭建
1.1 下载frp库
mkdir frp
cd frp
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
根据自己客户端的平台来选择,这里下载的是linux_amd64的
1.2 解压frp压缩包
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
1.3 进入该解压目录打开配置文件:
cd frp_0.61.1_linux_amd64/
vi frps.toml
1.4 修改配置文件内容
使用vim编辑frps.toml,打开后输入i插入,然后修改内容,然后按esc,输入:wq退出,内容如下:
#服务绑定的端口,设置 HTTP 类型代理监听的端口
bindPort = 7000
vhostHTTPPort = 8080
#web dashboard配置 外网访问 服务器后台
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
#启用prometheus监控指标
enablePrometheus = true
#token权限验证,需与客户端配置一致
auth.method = "token"
auth.token = "123456"
1.5 编写Service文件
这个地方可以根据自己需要来,如果想要开机自启动,就编写,否则直接./frps -c frps.toml就可以运行服务了
首先编写文件frps.service,注意位置
vi /etc/systemd/system/frps.service
打开后输入i插入,然后修改内容,然后按esc,输入:wq退出,内容如下:
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /app/frp/frps -c /app/frp/frps.toml
[Install]
WantedBy = multi-user.target
1.6 设置和启动frp服务
##启动服务
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
1.7 防火墙开放端口
sudo firewall-cmd --permanent --add-port=8080/tcp
# 添加监听端口
sudo firewall-cmd --permanent --add-port=7000/tcp
# 添加管理后台端口
sudo firewall-cmd --permanent --add-port=7500/tcp
sudo firewall-cmd --reload
根据自己本机要开放的端口来设置
不同linux发行版,请使用配套工具放行端口。
1.8 网络安全组设置
根据自己的云服务器来设定。
跟上一步功能一致,这里如果是在云服务器上运行,则需要设置安全组
1.9 登录后台管理界面来验证是否启动成功
访问 http://yourip:7500
用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd
2. 客户端配置
2.1 下载frp库
mkdir frp
cd frp
wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz
根据自己客户端的平台来选择,这里下载的是linux_amd64的
2.2 解压frp压缩包
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
2.3 进入该解压目录打开配置文件:
cd frp_0.61.1_linux_amd64/
vi frpc.toml
注意客户端是 frpc.toml
2.4 修改配置文件内容
#配置公网服务器上frp服务的IP与端口
serverAddr = "x.x.x.x"
serverPort = 7000
#web dashboard配置, 这个是设置客户端管理界面,http://127.0.0.1:7400
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "admin"
#token权限验证,需与服务端配置一致
auth.method = "token"
auth.token = "123456"
[[proxies]]
name = "web" #名称
type = "http" #代理类型
localIP = "127.0.0.1" #本地IP
localPort = 8080 #内网服务监听的端口
customDomains = ["xxxx"] # 填写域名,没有域名就直接填写ip
2.5 编写Service文件
这个地方可以根据自己需要来,如果想要开机自启动,就编写,否则直接./frpc -c frpc.toml就可以运行服务了
首先编写文件frpc.service,注意位置
vi /etc/systemd/system/frpc.service
打开后输入i插入,然后修改内容,然后按esc,输入:wq退出,内容如下:
[Unit]
# 服务名称,可自定义
Description = frp client
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frpc的命令,需修改为您的frpc的安装路径
ExecStart = /app/frp/frpc -c /app/frp/frpc.toml
[Install]
WantedBy = multi-user.target
2.6 设置和启动frp服务
##启动服务
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
2.7 防火墙开放端口
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
根据自己本机要开放的端口来设置
2.8 访问本地管理后台
访问 http://127.0.0.1:7400
账号和密码是frpc.toml里的webServer.user和webServer.password
3. 测试穿透是否配置成功
如果已经有网站,则通过域名或者ip去访问,看是否能访问成功
这里用streamlit来测试
streamlit_test.py
import streamlit as st
st.header('st.button')
if st.button('Say hello'):
st.write('Why hello there')
else:
st.write('Goodbye')
本地 streamlit run streamlit_test.py
然后看 http://ip:8501 是否可以访问到
4. 排错步骤
4.1 看公网ip是否能ping通
4.2 启动服务端后台查看服务端状态
4.3 检查服务端的端口是否都放通
4.4 启动客户端后台查看链接状况
4.5 检查客户端的端口是否都放通
5. 一些字段说明
5.1 customDomains 和 subdomain的区别
customDomains:用于配置完整的自定义域名,适合已有域名的情况。
subdomain:用于配置子域名,适合需要动态分配子域名的场景。
subdomain的使用参考 https://gofrp.org/zh-cn/docs/features/http-https/subdomain/
对于http和https服务,两个必填1个,否则会报错
否则报错: proxy web: subdomain and custom domains should not be both empty











网友评论