frp 是一款简单、高效的内网穿透工具,它支持多种代理类型以及 P2P 通信,为不同场景下的需求提供丰富的解决方案。frp 支持 TCP、UDP、HTTP、HTTPS 等多种协议,并且还支持 P2P 通信;可以将内网服务以安全、便捷的方式通过具有固定公网 IP 地址的服务器进行中转,最终将服务映射到公网访问。
更多功能介绍参考官方文档:
https://gofrp.org/zh-cn/docs/
安装配置
测试环境
操作系统:Debian 11.7
服务说明:为了真实实现内网穿透效果,使用一台云服务器部署。
下载frp
github地址:https://github.com/fatedier/frp/releases
1.下载安装frp(适用于服务端和客户端)
首先查询自己linux系统架构,比如x86_64
uname -a
如下图,我这里就应该下载的是linux_amd64架构的


当前下载版本:v0.61.0
PS:这里可以下载到本机然后上传到linux云服务器上,但是本机杀毒软件可能会报毒,可能被杀掉

将其中 frpc* 是客户端程序,需要拷贝到内网服务所在的机器上;
而 frps* 拷贝到具有公网 IP 的机器上,任意目录位置均可。
frp*:启动程序
frp*.toml:主配置文件
frp服务端部署配置
正常流程需要将修改配置文件后再启动,这里只说明如何启动,后续为根据需求修改配置文件。
临时启动命令:
/路径/frps -c /路径/frps.toml #启动服务端
服务端启动配置
编辑frps配置文件
vim frps.toml
进入frps.toml之后按i进入编辑模式,粘贴以下内容并保存(具体服务端配置信息查看文档:https://gofrp.org/zh-cn/docs/reference/server-configures/)
#客户端与服务连接端口
bindPort = 7000
#配置 Web 服务器以启用 frps 的仪表板。
#仅当设置了 webserver.port 时,仪表板才可用。
webServer.addr="0.0.0.0"
webServer.port= 7500
webServer.user="admin"
webServer.password="admin"
# 配置 token 认证,frpc 客户端需指定frps一样的token
auth.method="token"
auth.token="自定义token"
# 只允许frpc绑定指定ports.
allowPorts= [
{ start =10000, end =100200}
]
配置内容中可根据自己需求自行修改。
配置完成后可以访问一下web管理界面(ip的7500端口),查看是否成功启动,显示如下为成功启动服务

开机自启
为方便后续使用,这里使用systemd配置管理frps服务端并设置开机自启
安装systemd,如果您的系统上未安装systemd服务,可以选择以下指令进行安装(一般系统默认自带systemd)
# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd
创建frps.service 文件
在/etc/systemd/system目录下创建一个frp s.service文件,用于配置frps服务。
vim /etc/systemd/system/frps.service
如果不会使用vim 也可以使用nano进行文件创建(nano使用ctrl+x结束编辑,输入y保存)
nano /etc/systemd/system/frps.service
按i进入编辑模式,写入以下内容
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /路径/frps -c /路径/frps.toml
[Install]
WantedBy = multi-user.target
esc退出编辑模式:wq
保存
然后使用systemd命令管理frps服务
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
#设置frps开机自启
sudo systemctl enable frps
启动后使用sudo systemctl status frps指令可以查看是否启动成功,如下则为成功,否则失败。

frp客户端部署配置
下载目标客户端对应的架构文件,我这里使用另外一台云服务器实现(真实情况为内网服务器)。
这里使用的服务器架构同样为linux_amd64。
同上,进入frpc.toml之后按i进入编辑模式,粘贴以下内容并保存(具体客户端配置信息查看文档:https://gofrp.org/zh-cn/docs/reference/client-configures/)
serverAddr = "服务器的公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "自定义token"
transport.protocol = "tcp"
[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 10000
[proxies.plugin]
type = "socks5"
username = "自定义"
password = "自定义"
此处内容对照上面服务端自行配置。
将frpc与frpc.toml上传至目标服务器中,为frpc添加权限运行。
chmod +x frpc
./frps -c ./frps.toml
真实情况下可执行后台执行操作,命令如下
nohup ./frpc -c ./frpc.toml &
成功执行后如下图所示

操作成功后,使用proxifier进行流量代理

此时隧道就成功搭建,可以访问内网。
Comments 1 条评论