frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
文档地址:https://gofrp.org/zh-cn/docs/concepts/
github仓库地址:https://github.com/fatedier/frp/releases
一、需要准备的东西
一个域名(将域名解析到公网服务器上),
一台可以公网访问的Linux服务器(需要用到的端口需要开放安全组或者防火墙)
一台可联网的Windows电脑
二、安装frp服务端
1、下载安装包
bash
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
2、解压
bash
tar -zxvf frp_0.60.0_linux_amd64.tar.gz
3、修改frpc.tom文件
bash
vim frpc.toml
bash
bindAddr = "0.0.0.0" # 服务器绑定的地址,"0.0.0.0"表示监听所有网络接口
bindPort = 7100 # 服务器绑定的端口号
kcpBindPort = 7100 # KCP协议使用的绑定端口号
webServer.addr = "0.0.0.0" # Web服务器绑定的地址
webServer.port = 7500 # Web服务器的端口号
webServer.user = "frps" # Web服务器登录用户名
webServer.password = "123456" # Web服务器登录密码
log.to = "/frpslog/frps.log" # 日志文件的存储路径
log.level = "info" # 日志记录的级别,"info"表示记录信息级别的日志
log.maxDays = 3 # 日志保留的天数
auth.method = "token" # 认证方法,使用令牌认证
auth.token = "testtoken" # 认证使用的令牌
allowPorts = [ # 允许的端口范围
{ start = 6000, end = 7000 }, # 允许的端口从6000到7000
]
4、创建 frps.service
bash
sudo vim /etc/systemd/system/frps.service
bash
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /root/app/frp_0.60.0_linux_amd64/frps -c /root/app/frp_0.60.0_linux_amd64/frps.toml
[Install]
WantedBy = multi-user.target
5、设置 frps 开机自启动
bash
sudo systemctl enable frps
6、 启动frps服务
bash
sudo systemctl start frps
然后通过配置的7500web端口访问管理界面
三、搭建frp客户端
客户端我们使用的是Windows版本的,下载安装包:
https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_windows_amd64.zip
1、修改frpc.toml配置文件
bash
serverAddr = "你的公网IPD地址" # FRP 服务器的 IP 地址
serverPort = 7100 # FRP 服务器监听的端口
log.to = "/frpslog/frpc.log" # 日志文件的存储路径
log.level = "info" # 日志记录的级别
log.maxDays = 3 # 日志保留的天数
auth.method = "token" # 认证方法,使用令牌认证
auth.token = "testtoken" # 认证使用的令牌
[[proxies]]
name = "test-tcp" # 代理的名称
type = "tcp" # 代理的类型
localIP = "127.0.0.1" # 本地服务的 IP 地址
localPort = 8080 # 本地服务的端口
remotePort = 8080 # 远程服务器上开放的端口
2、启动frpc服务
frpc只能通过命令行方式启动,不能直接双击启动。打开cmd 执行以下语句
如果提示拒绝访问,这个是因为Windows默认将frp当做病毒给拦截了,需要配置白名单目录。
bash
frpc.exe -c frpc.toml
四、测试访问
回到web端口,可以看到客户端已经上线。
然后我们通过公网IP访问8080端口即可访问到本地的tomcat服务。
如果你需要保持客户端一直在线,可以将客户端注册为本地服务器进行启动。