写在前面
FRP(Fast Reverse Proxy)是一个由Go语言编写的开源项目,用于内网穿透,即通过公网服务器将内网服务暴露给外部访问。这对于需要在内网环境中部署但又希望外部用户能够访问这些服务的场景非常有用
Github:https://github.com/fatedier/frp/releases?page=1
工具
-公网Linux服务器(宝塔面板)
-内网Linux RK3566开发板
-frp0.61.2工具下载
最终实现
RK3566内网服务,可以通过公网服务器的ip加端口号访问
踩坑建议
1、frp一定要根据每个博主写的教程对应版本下载,否则会出现很多奇怪的问题
2、公网服务器端口需要开放
教程开始
第一步下载frp
访问github,下载frp0.61.2版本,因为我的开发板是arm的所以需要对应分别下载,如图所示:
部署服务器端
宝塔服务器软件有一个frp管理工具但是我是用没有效果,所以只能自己用代码自己搭建
上传到服务器中一个文件夹,并解压
因为这是服务端,只用到frps代码,其余代码可以删除或者不动
frpc----客户端
frps----服务端
编辑frps.toml代码
[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 18081
dashboard_port = 18080
dashboard_user = frp
dashboard_pwd = 12345678
max_pool_count = 50
点击终端或者自己指向到该目录即可
输入启动代码
cd /www/wwwroot/frp/frp_0.61.2_linux_amd64
nohup ./frps -c ./frps.toml
部署客户端
将下载好的frp arm64版本的代码上传到rk3566开发板里面并且完成解压
编辑frpc.toml代码
[common]
server_addr = 改成你的服务器ip
# 端口
server_port = 7000
[rk3566tcp]
# 类型
type = tcp
# 本地地址
local_ip = 127.0.0.1
# 本地端口
local_port = 8057
# 线上对外暴露端口
remote_port = 8057
[rk3566Web]
# 本机测试web工程的类型
type = http
# 本机测试web工程的端口
local_port = 8057
# 云服务器的公网ip
custom_domains = 改成你的服务器ip
运行客户端
./frpc -c ./frpc.toml
观察下服务端的连接情况
或者看面板数据
测试
测试通过公网IP+端口号是否能够访问内网的服务
浏览器输入地址
客户端设置自启(附加)
给rk3566上的/etc/systemd/system/目录新增frpc.service文件
sudo vi /etc/systemd/system/frpc.service
编辑frpc.service内容
[Unit]
Description=FRP Client Service
After=network.target
[Service]
Type=simple
User=ido
WorkingDirectory=/home/ido/frp/
ExecStart=/home/ido/frp/frpc -c /home/ido/frp/frpc.toml
Restart=on-failure
[Install]
WantedBy=multi-user.target
完成文件创建后,按照之前的步骤设置权限、启用和启动服务
sudo chmod 644 /etc/systemd/system/frpc.service
sudo systemctl enable frpc.service
sudo systemctl start frpc.service
sudo systemctl status frpc.service
这样下次开发板通电直接穿透内网了
最后
测试了接口也是没问题的,本次教程仅作为个人纪录,对应某个版本的frp进行一次完整的记录,便于后面需要能够直接使用,部署在不同服务器上下载不同版本即可,相同版本配置是通用的,启动的命令也是一样的,只要选择对了路径即可,本人亲自测试以上代码真实有效