愿景:实现外网访问内网服务器
在前端圈子混了好几年,在大佬的种草下,买了一台树莓派4b 8g的设备,不知深浅的踏入了后端圈子
上周使用docker搭建了一个nuxt项目,想着如何使用外网能访问到自己的服务呢,一开始使用的花生壳,完成了内网穿透,能通过随机分配的域名,访问自己的服务;
后来了解到有开源的frp,何不试试,于是开始了各种踩坑,最终还是实现了,在此记录下自己的成长
(目前板子上插了一个SIM7600的4G全网通扩展,实现的项目后续会再发博文)
frp简介
frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。
安装环境
-
一台拥有公网IP的服务器(阿里云)作为服务端
-
一台树莓派作为客户端
-
系统与frp版本
Server:amd64、frp_0.34.2_linux_amd64 Client:arm、frp_0.34.3_linux_arm
操作步骤
客户端
1.解压包,把如下文件放置/etc/frp 目录下
2.修改frpc.ini文件
[common]
server_addr = xx.xx.xx.xx(公网ip)
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[web1]
type = http
local_port = 5000
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 = 7000
vhost_http_port = 5000
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
到此,完成内网穿透及服务注册