自学内容网 自学内容网

使用frp将树莓派穿透到外网

引言

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上传至云服务

image-20241006142134930

将frpc、frpc.toml通过SFTP上传至树莓派

image-20241006142222806

!!!一定记住,这是两个不同压缩包的文件,再次提醒注意架构!!!注意架构!!!注意架构!!!

二、准备配置文件

服务端

注意:服务端的所有端口记得防火墙放行,不然是访问不到的,特别是云服务器,一定要提前放行

[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

控制台或日志有以下消息便是启动成功

image-20241006143148325

或者是登入服务端的控制台(服务端ip:7500)查看树莓派是否上线

image-20241006143315602

三、测试远程连接树莓派

image-20241006143715272

配置成功后进行访问,成功访问到树莓派!!!

image-20241006143802382

四、可能会遇到的问题

执行脚本不成功

服务端、客户端的脚本最好都先修改权限后再执行

客户端脚本启动时一直在连接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

原文地址:https://blog.csdn.net/m0_50281408/article/details/142732017

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!