FRP 是一个高性能的反向代理应用,可以帮助你将内网服务暴露到公网,支持 TCP、UDP、HTTP、HTTPS 等多种协议
1.功能用途
主要用途是将内网服务器穿透到公网(注:内网指的是通过公共网络无法访问,只有同一个局域网可以访问),简单来说就是可以通过 www.xxx.com 访问局域网ip地址是192.168.xxx.xxx的电脑或者服务器。
2.部署步骤
frp分为
服务端(frps)
服务端部署在一台有公网的服务器
客户端(frpc)
客户端可以部署到有网络的个人电脑或者内网服务器
一般一个frps 会有多个frpc
1.下载frp
从 GitHub 下载对应版本: https://github.com/fatedier/frp/releases
wget https://github.com/fatedier/frp/releases/download/v0.61.2/frp_0.61.2_linux_amd64.tar.gz
tar -zxvf frp_0.61.2_linux_amd64.tar.gz
cd frp_0.61.2_linux_amd64
找到文件中的frps.toml
2.配置服务端 (frps.toml)
bindPort = 7000 # frp服务的特定端口,防火墙也需放开该端口
# 服务面板可查看frp服务状态信息
webServer.addr = "0.0.0.0" # 后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0
webServer.port = 7500 # 后台管理端口
webServer.user = "admin" # (可选)后台登录用户名
webServer.password = "xxxxx" # (可选)后台登录密码
auth.method = 'token' # 客户端访问验证方式
auth.token = "xxxxx" # 客户端访问验证密码,frpc要与frps一致
# transport.tls.force 指定是否仅接受TLS加密的连接。默认情况下,该值为 false 。
transport.tls.force = false
# 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行
vhostHTTPPort = 8080
vhostHTTPSPort = 443
在frps文件目录下 执行
./frps -c ./frps.toml
设置开机自启 (Systemd)
创建 /etc/systemd/system/frps.service
:
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/path/to/frps -c /path/to/frps.toml
[Install]
WantedBy=multi-user.target
设置开机自启并启动服务:
systemctl enable frps
systemctl start frps
启动成功后打开
http://frps公网ip:7500
需要使用配置中账号密码登录,成果页面如下
找到文件中的frpc.toml
3.配置客户端 (frpc.toml)
# frpc.toml
transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "xxx.xx.xx.xxx" # frps部署服务器的公网ip
serverPort = 7000 # 服务端端口
auth.method = 'token' # 客户端访问验证方式
auth.token = 'xxxxx' # 客户端访问验证密码
[[proxies]]
name = "test"
type = "http" #http一般用于web网站
localIP = "127.0.0.1" # 需要暴露的服务的IP,只要是本地可以访问的ip都可以使用
localPort = 8001 # 将本地8001端口的服务暴露在公网的8080端口
customDomains = ["xxx.xxx.xxx.xxx"] #这里可以使用frps部署服务器的公网ip,也可以使用公网ip绑定的域名
[[proxies]]
name = "test1"
type = "tcp" #注意type的类型 tcp一般是数据库等使用
localIP = "127.0.0.1" # 需要暴露的服务的IP
localPort = 5002 # 本地需要暴露的5002端口
remotePort = 6000 #frps部署服务器的公网ip的端口,如公网ip为 12.34.56.78 可以通过12.34.56.78:6000 访问frpc部署电脑的 127.0.0.1:5002
linux服务器启动命令
在frpc文件目录下 执行
./frpc -c ./frpc.toml
window服务器启动命令
在frpc文件目录下打开cmd执行下面命令
frpc.exe -c frpc.toml
启动完成后frps监控页面会出现对应的frpc服务器状态