引言
frp官网
最近买了一块树莓派 zero 2w,想要它可以进行远程访问,所以想到了frp这个方案进行穿透,后期会使用树莓派搭建音乐服务器,本人手机内存有点小,xxxx云音乐太占空间,有兴趣的话可以关注后续。
一、准备工作
frp文件准备
一台已经可以内网访问的树莓派
一台云服务器(本人使用的京东云)
下载不同架构的frp脚本
使用命令查看架构
arch
x86_64:https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz
arm/aarch:https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_arm64.tar.gz
注意:树莓派的架构和云服务的架构是不一样的,树莓派是arm架构,云服务器是x86_64架构的,下载frp的时候注意甄别
将frps、frps.toml通过SFTP上传至云服务
将frpc、frpc.toml通过SFTP上传至树莓派
!!!一定记住,这是两个不同压缩包的文件,再次提醒注意架构!!!注意架构!!!注意架构!!!
二、准备配置文件
服务端
注意:服务端的所有端口记得防火墙放行,不然是访问不到的,特别是云服务器,一定要提前放行
[common]
bind_port = 7000 #frps服务绑定7000端口
dashboard_port = 7500 #控制台端口
dashboard_user = xxxx #frps控制台的密码
dashboard_pwd = "xxxx" #frps控制台的密码
vhost_http_port = 7002
vhost_https_port = 7003
max_pool_count = 50
token = "your_token" #这儿可以随笔那填一个token,随便什么都行
tcp_mux = true
#日志相关配置
log_file = "/opt/frps/log/frps.log"
log_level = "info"
log_max_days = 3
privilege_mode = true
启动frp的服务端脚本
./frps -c ./frps.toml
客户端
serverAddr = "你的服务器地址"
serverPort = 7000
auth.method = "token"
auth.token = "服务端填写的token"
loginFailExit=false
[[proxies]]
name= "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000 #树莓派上的22端口绑定服务端的6000端口,也就是说通过访问服务端ip:6000端口就可以访问到树莓派的22端口
[[proxies]]
name = "http"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["192.168.31.214"] #自定义域名可以是树莓派的ip
[log]
to = "/opt/frpc/log"
level= "info"
启动frp客户端脚本
./frpc -c ./frpc.toml
控制台或日志有以下消息便是启动成功
或者是登入服务端的控制台(服务端ip:7500)查看树莓派是否上线
三、测试远程连接树莓派
配置成功后进行访问,成功访问到树莓派!!!
四、可能会遇到的问题
执行脚本不成功
服务端、客户端的脚本最好都先修改权限后再执行
客户端脚本启动时一直在连接0.0.0.0:7000
在配置文件中配置了服务端的ip,但启动客户端脚本时,一直访问0.0.0.0:7000,然后报错,连接被拒绝,这种情况,大概率是客户端的配置文件格式不对,注意,是格式不对,格式,格式,格式,看你用的什么类型的配置文件,建议使用toml
进入不了管理后台或请求被拒绝
先检查防火墙端口有没有放行
想要脚本一直保持再后台运行
使用systemctl进行配置
服务端(客户端同理,只需要修改文件名称和脚本路径):
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /path/to/frps -c /path/to/frps.toml
[Install]
WantedBy = multi-user.target
使用systemctl管理frp
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
设置开机自启
sudo systemctl enable frps