家里的树莓派明明装了很多实用工具,想出门时远程调个数据却没辙?明明树莓派连了摄像头想实时看家里动静,离开局域网就彻底失联?别着急,今天小编就教你在树莓派上搭个 frp 内网穿透服务器,让你随时随地都能掌控树莓派。
为啥要在树莓派上搭 frp 内网穿透
可能有朋友会问,树莓派本身性能不算强,为啥非要在它上面搭 frp 呢?其实啊,树莓派体积小又省电,常年开机也不心疼电费,用来当内网穿透的客户端再合适不过。你想啊,把它连在家里的路由器上,就能让外面的设备轻松找到家里的 NAS、摄像头这些,多方便。
而且 frp 这工具轻量级,对树莓派的资源占用特别少,就算同时跑个监控脚本也不耽误。我们在使用树莓派做各种小项目时,经常需要远程调试,有了 frp 就不用每次都跑到树莓派跟前操作了。
搭之前得准备些啥
首先,你得有一台树莓派,不管是 3B+ 还是 4B 都行,系统推荐用 Raspberry Pi OS,毕竟兼容性最好。然后得有个能上网的路由器,树莓派要通过网线或者 WiFi 连到这路由器上。
接下来需要一台有公网 IP 的服务器,云服务器就行,配置不用太高,1 核 1G 内存的入门款足够用。还有,你得下载 frp 的安装包,记得选 arm 架构的版本,因为树莓派的芯片是 arm 架构的,下错了版本可装不上。
对了,准备个 FTP 工具或者用 SSH 连接树莓派,方便传文件和输入命令。新手朋友可能对命令行不太熟,别担心,跟着步骤来就行。
树莓派上咋装 frp
先通过 SSH 登录树莓派,输入用户名和密码后,咱们先更新一下系统,输入命令 sudo apt-get update && sudo apt-get upgrade,等它跑完。然后建个文件夹放 frp,输入 mkdir frp,再进入这个文件夹 cd frp。
接下来用 wget 命令下载 frp 安装包,比如 wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_arm.tar.gz,版本号根据最新的改一下。下载完输入 tar -zxvf 文件名 解压,解压后进入解压出来的文件夹。
这时候你会看到 frpc 和 frpc.ini 这两个文件,frpc 是客户端程序,frpc.ini 是配置文件。咱们先别急着改配置,先试试能不能运行,输入 ./frpc -v,要是能显示版本号,说明安装没问题。
配置文件该咋改
用 nano 编辑器打开配置文件,输入 nano frpc.ini。文件里默认的内容可以删掉,咱们自己写。先写服务器信息:[common],server_addr = 你的公网服务器 IP,server_port = 7000(和服务器端保持一致),token = 你的密码(服务器端设的那个)。
然后添加要穿透的服务,比如想远程登录树莓派,就加一段:[ssh],type = tcp,local_ip = 127.0.0.1,local_port = 22,remote_port = 6000。意思是通过服务器的 6000 端口转发到树莓派的 22 端口。
要是想远程访问树莓派上的网页服务,再加一段:[web],type = tcp,local_ip = 127.0.0.1,local_port = 80,remote_port = 8080。改完按 Ctrl+O 保存,Ctrl+X 退出编辑器。
咋让 frp 开机自启
配置好后,先手动启动试试,输入 ./frpc -c frpc.ini,要是显示 started successfully 就没问题。但总不能每次开机都手动启动吧,所以得设成自启。
输入 sudo nano /etc/systemd/system/frpc.service,然后粘贴这些内容:
[Unit]
Description=frpc service
After=network.target
[Service]Type=simple
ExecStart=/home/pi/frp/frp_0.48.0_linux_arm/frpc -c /home/pi/frp/frp_0.48.0_linux_arm/frpc.iniRestart=always
[Install]
WantedBy=multi-user.target
路径要换成你实际的文件夹位置。保存后输入 sudo systemctl daemon-reload,再输入 sudo systemctl enable frpc,最后 sudo systemctl start frpc,这样开机就会自动启动了。
公网服务器那边要咋配
服务器上的配置其实和树莓派类似,先下载对应系统的 frp 安装包,解压后改 frps.ini 文件。输入 [common],bind_port = 7000,token = 刚才设的密码,保存后启动服务器端程序,比如 ./frps -c frps.ini。
要是用的云服务器,记得在安全组里开放 7000、6000、8080 这些端口,不然树莓派连不上。不同云厂商的设置方法差不多,在控制台里找安全组配置就行。
测试一下,在别的电脑上用 SSH 连接 服务器 IP:6000,要是能登录树莓派,说明成功了。浏览器输入 服务器 IP:8080,也能看到树莓派上的网页。
常见问题咋解决
有时候启动 frp 会提示端口被占用,这时候输入 lsof -i: 端口号,看看哪个程序在用,把它关掉就行。要是连不上服务器,先 ping 一下服务器 IP,看能不能通,再检查配置文件里的 IP 和端口对不对。
树莓派断电重启后 frp 没启动,可能是自启配置错了,重新检查一下 service 文件的路径对不对,再执行 sudo systemctl enable frpc 试试。还有,服务器要是重启了,也得重新启动 frps 程序。
小编遇到过一次,明明配置都对,就是连不上,后来发现是服务器的防火墙没关,关掉防火墙或者开放端口就好了。