愿景:实现外网访问内网服务器
前端圈子混了好几年,在大佬的种草下,买了一台树莓派4b 8g的设备,不知天高地厚的踏入了后端圈子
上周使用docker搭建了一个nuxt项目,想着如何使用外网能访问到自己的服务呢,一开始使用的花生壳,完成了内网穿透,能通过随机分配的域名,访问自己的服务;
后来了解到有开源的frp,何不试试,于是开始了各种踩坑,最终还是实现了,在此记录下自己的成长

(目前板子上插了一个SIM7600的4G全网通扩展,实现的项目后续会再发博文)
frp简介
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
相关概念可看官网FRP
安装环境
- 一台拥有公网IP的服务器(阿里云)作为服务端
- 一台树莓派作为客户端
- 系统与frp版本
Server:amd64、frp_0.34.2_linux_amd64
Client:arm、frp_0.34.3_linux_arm
操作步骤
下载包-https://github.com/fatedier/frp/releases/tag/v0.34.2
客户端

1.解压包,把如下文件放置/etc/frp 目录下

注意:如果这里不新建frp目录,那么就需要修改frpc.service 文件下的 ExecStart和ExecReload 指向,查看下标题3

2.修改frpc.ini文件
[common]
server_addr = xx.xx.xx.xx(公网ip)
server_port = 20084
token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web1]
type = http
local_port = 8001
remote_port = 5000
custom_domains = xx.xx.xx.xx(公网ip或者域名)
[web2]
type = http
local_port = 8000
remote_port = 5000
custom_domains = xx.xx.xx.xx(公网ip或者域名)
3.把systemd文件夹下的frpc.service,放到/etc/systemd/system下
设置权限 sudo chmod 754 frp*.service
设置开机启动即可 sudo systemctl enable frp*.service

4.在/etc/frp目录下执行如下命令
cp frpc /usr/bin
chmod +x /usr/bin/frpc
systemctl start frpc
ps -ef|grep frpc
客户端结束
服务端

1.解压包,把如下文件放置/etc/frp 目录下

2.修改frps.ini文件
[common]
bind_port = 20084
vhost_http_port = 5000
token = 123456
3.把systemd文件夹下的frps.service,放到/etc/systemd/system下
设置权限 chmod 754 frp*.service
设置开机启动即可 systemctl enable frp*.service

4.在/etc/frp目录下执行如下命令
cp frps /usr/bin
chmod +x /usr/bin/frps
systemctl start frps
ps -ef|grep frps
到此,完成内网穿透及frp服务注册。
如果使用的是阿里云服务器,得配置好安全组

由于我的树莓派上起了七八个服务,服务端需要使用nginx做反向代理
这里可参考我的另一篇博客nginx安装及反向代理-可和FRP搭配使用
如有问题请留言,看到会第一时间回复
到此,搭建frp及服务注册(服务端与客户端)-文章结束,原创不易,感谢浏览! |