FRP(Fast Reverse Proxy)是一个高性能的反向代理应用程序,主要用于内网穿透。它允许用户将内部网络服务暴露到外部网络,适用于 NAT 或防火墙环境下的服务访问。
他是一个开源的 服务
如果大家不想用 花生壳 软件,可以尝试使用一下免费开源的这款 软件
源码地址:https://github.com/fatedier/frp
需求场景
1、有一台云服务器,Linux系统
2、云服务器有公网ip,公网可以访问
3、本地电脑是家用笔记本,Windows操作系统
4、本地电脑没有公网ip,公网无法访问
需求:将云服务器搭建为一台内网穿透服务器,实现通过外网访问家用电脑(网页)的功能。且即使没有域名也可通过公网ip访问。
文档地址高级参数配置可以用查阅
https://gofrp.org/zh-cn/docs/reference/client-configures/
工作原理
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
1 服务端下载安装 一般linux
使用的是 0.52.3 这个版本的
下载到哪个目录 我就不写了
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
1.2 解压
tar -zxvf frp_0.52.3_linux_amd64.tar.gz -C
1.3 配置frps.toml
vim frp_0.52.3_linux_amd64/frps.toml
bindPort = 7001
token = "*********"#日志
log.to = "/frp_0.52.3_linux_amd64/frps.log"
服务端监听端口,默认值为 7000。我们可以改一个自己喜欢的端口,token相当于密码。
1.4 使用systemd
使用 systemd 来管理 frps 服务,包括启动、停止、配置后台运行和设置开机自启动。
安装systemd
yum -y install systemd
创建 frps.service 文件
vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /自己的路径/frp_0.52.3_linux_amd64/frps -c /自己的路径/frp_0.52.3_linux_amd64/frps.toml[Install]
WantedBy = multi-user.target
设置 frps 开机自启动
sudo systemctl enable frps
使用 systemd 命令管理 frps 服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
客户端
https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_windows_amd64.zip
2.2 编写 frpc.toml
serverAddr = "服务端的ip"
serverPort = 7001
token = "*********"[[proxies]]
name = "Minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 25565
remotePort = 25575
localIP 和 localPort 可以访问的内网的ip和端口
remotePort 表示在 frp 服务端监听的端口 通过这个端口 可以访问内网的 端口
举例:
localIP :192.168.30.31
localPort :8080
remotePort :18000
那就是 外网ip:18000 就会访问到 内网的 192.168.30.31:8080
2.3 启动frpc.exe
cmd 里
.\frpc.exe -c frpc.toml
如果端口不通,请检查防火墙
windows下 出现 start proxy success 说明成功 就可以访问一下试试了
使用nginx 再做一个反向代理 我就不多说了 就可以用https了