下载地址:https://github.com/fatedier/frp/releases

这里应用的是:

公网:frp_0.52.3_linux_amd64.tar.gz

内网:frp_0.52.3_windows_amd64

第一步:配置公网Service端

由于,网上的大部分教程都是针对老版本frp的,就会导致新版本根本就没有ini后缀的文件,所以就出现歧义,很不友好。

1.创建目录并解压文件

# 创建目录
mkdir /root/frps
# 通过Winscp上传我们的压缩包到/root/frps下
# tar命令解压压缩包,得到frp_0.52.3_linux_amd64文件
tar -xzf frp_0.52.3_linux_amd64.tar.gz
# 将文件内容移动出来并删除压缩包和原文件
mv frp_0.52.3_linux_amd64/* .
rm -rf frp_0.52.3_linux_amd64 frp_0.52.3_linux_amd64.tar.gz
# 现在,你的frps下应该只剩下 五个文件

2.修改服务端的 frps.toml 文件

vim frps.toml

将文件内的内容改成如下所示

# frp服务端对外暴露的端口,用于和客户端接轨 (必须要要)
bindPort = 7000

# 这个method的值就为 token不要改! (可要可不要)
auth.method = "token"
# 这个token就设置你的密码,用于客户端的验证 (可要可不要)
auth.token = "password"

# 这里的四个就是 frps的图像化界面(可要可不要)
webServer.addr = "0.0.0.0"
webServer.port = 7001
webServer.user = "admin"
webServer.password = "密码"

3.将这个frps变成一个service,让你可以通过 systemctl 去启动和关闭

vim /etc/systemd/system/frps.service

填写如下内容

[Unit]
# 服务的描述
Description = frp server
# 服务的启动顺序,在network.target (网络服务)和 syslog.target(系统日志服务)启动之后才启动
After = network.target syslog.target
# Wants 表示该服务希望 network.target 已经启动,但即使 network.target 启动失败,该服务仍然会尝试启动。
Wants = network.target
 
[Service]
# 是一个简单的服务
Type = simple
# 指定启动服务的命令
ExecStart = /root/frps/frps -c /root/frps/frps.toml
 
[Install]
# 当使用 systemctl enable frp.service 命令时实现开机自启动。
WantedBy = multi-user.target

编写完成后

# 给权限
chmod -R 777 /root/frps

开启开机自启

systemctl enable frps.service
# 重启服务
systemctl restart frps.service
# 查看服务状态,是running即可。
systemctl status frps.service

第二步:配置内网Client端

搭建本地应用 我们在本地用Tomcat在8080端口启动一个项目,你也可以不用Tomcat,只要是只能内网访问的都行Nginx也行。

我们解压第二个压缩包:frp_0.52.3_windows_amd64 也是得到很多文件,但是我们只看两个文件 frpc.exe 和frpc.toml

用记事本打开 frpc.toml 文件。

将内容修改为一下格式

serverAddr = "公网服务器IP地址"
# 就是之前那个必须要的端口
serverPort = 7000 

# 不要动这个method
auth.method = "token"
# 这里的token必须要与前文一致
auth.token = "password"

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

[[proxies]]
name = "见名之意,就是需要进行穿透的内网服务名"
type = "tcp"
localIP = "127.0.0.1"
# 这个就是本地应用所部署的端口
localPort = 8080
# 将其映射到服务器的 80 端口,确保80端口没有占用
remotePort = 80

于是,我们的客户端就配置好了!

第三步:公网+端口访问本地应用

启动服务端的frps.service服务

# 得益于我们配置了systemd,所以我们可以直接使用systemctl去启动服务
systemctl start frps.service

启动客户端服务

这个,需要通过cmd 或者 powershell进行启动,不然权限不够,在启动之前,我们需要将客户端的 frpc.toml的文件名改为 frpc.ini 不然识别不到。

在文件夹的地址栏上输入cmd,进入DOS窗口,然后输入 .\frpc.exe 去启动这个客户端应用。

我们只要在看到 xxxxx success 即可。

访问项目

由于我们将 本地的8080端口映射到了 服务器的80端口,所以我们直接访问 服务器的IP即可看到我们部署的应用

忽有故人心上过,回首山河已是秋