树莓派内网穿透
博主的站群长年无人问津,广告收入几乎没有,于是再也负担不起高额的服务器费用了😭。可能是老天爷还想逛博主的网站吧,让博主无意之间看到了树莓派,好奇之心顿起,火速下单,到手以后一番折腾,终于把网站从云端迁移到了本地。本文就记录了折腾过程(主要是内网穿透方面)。
准备工具
- Raspberry Pi / 树莓派一个(博主用的是 8G 内存的 4B)
- 有(最好固定)公网 IP 的服务器一台(博主用的是:搬瓦工 Ubuntu 20.04)
友情提示:搬瓦工 可能需要先翻墙才可访问!
服务器端
安装 frps
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_amd64.tar.gz # 下载系统内核版本对应的 frp 压缩包
tar -xzvf frp_0.37.1_linux_amd64.tar.gz # 解压到当前文件夹
nano frp_0.37.1_linux_amd64/frps.ini # 编辑 frps 配置文件
公网服务器端 frps 配置
服务器端(frps)详细配置请查看官方 Wiki:服务端配置
贴上博主的 frps.ini
[common]
bind_port = 7000 # frp 运行端口
log_file = /root/frp_0.37.1_linux_amd64/frps.log # frps 日志文件路径
token = **请输入你的 token** # 为服务器安全建议使用 token
tls_only = true # 为了安全请启用
allow_ports = **remote_port1,remote_port2** # 填入公网要访问的端口
dashboard_port = 7500 # frps 管理地址
dashboard_user = admin # frps 管理员账号
dashboard_pwd = 123456 # frps 管理员密码
将 frps 写入系统服务
nano /lib/systemd/system/frps.service
# 新建一个 service 并写入以下配置保存
[Unit]
Description = frps
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /root/frp_0.37.1_linux_amd64/frps -c /root/frp_0.37.1_linux_amd64/frps.ini
[Install]
WantedBy = multi-user.target
启动 frps 并设置开机自启
systemctl start frps
systemctl enable frps
至此内网穿透服务器端的配置就完成了,下面进行内网客户端(树莓派)的配置
树莓派
使用官方 64 位 Raspbian
建议使用树莓派官方 64 位系统:2021-05-07-raspios-buster-arm64-lite.zip (如何写入内存卡此处不再赘述)
重大提示:树莓派系统写入内存卡以后,需要在 boot 目录下新建一个文件 ssh,否则无法通过 SSH 连接树莓派!!!(博主在这里踩了个大坑好不容易才找到解决办法)
电脑直连树莓派
电脑无线网共享给以太网,然后用网线直连树莓派,通过 arp -a
查看树莓派 IP(一般是:192.168.137.x)
SSH 登录
找到树莓派 IP 后用 SSH 登录,账号:pi
,密码:raspberry
修改时区
tzselect # 选时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 改为中国时间
中国内地请换源
nano /etc/apt/sources.list
三行前面的网址都换成清华源(仅前面的网址,不包括后面的路劲):https://mirrors.tuna.tsinghua.edu.cn/
nano /etc/apt/sources.list.d/raspi.list
整体换成清华源:https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/
升级系统
sudo apt update
sudo apt full-upgrade
安装 frpc
wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_arm64.tar.gz # 下载系统内核版本对应的 frp 压缩包
tar -xzvf frp_0.37.1_linux_arm64.tar.gz # 解压到当前文件夹
nano frp_0.37.1_linux_arm64/frpc.ini # 编辑 frpc 配置文件
内网客户端(树莓派) frpc 配置
内网客户端(树莓派)frpc 详细配置请查看官方 Wiki:客户端配置
贴上博主的 frpc.ini
[common]
server_addr = **请输入服务器端公网 IP**
server_port = 7000 # 端口号与服务器端 bind_port 一致
log_file = /root/frp_0.37.1_linux_arm64/frpc.log # frpc 日志文件路径
tls_enable = true # 服务器端若配置了 tls_only = true,此处也需启用
token = **请输入与服务器端一致的 token**
##[ssh] # 为了安全起见,博主没有开启树莓派 SSH 的内网穿透
##type = tcp
##local_ip = 127.0.0.1
##local_port = 22
##remote_port = 6000
[bt] # 宝塔
type = tcp # 使用 TCP 连接
use_encryption = true # 启用传输加密
use_compression = true # 启用传输压缩
local_ip = 127.0.0.1
local_port = 8888 # 树莓派的宝塔端口
remote_port = 8888 # 从公网要访问宝塔的端口
[web] # 网站
type = tcp # 使用 TCP 连接
use_encryption = true # 启用传输加密
use_compression = true # 启用传输压缩
local_ip = 127.0.0.1
local_port = 443 # 宝塔上网站的端口
remote_port = 443 # 从公网访问网站的端口
将 frpc 写入系统服务
nano /lib/systemd/system/frpc.service
# 新建一个 service 并写入以下配置保存
[Unit]
Description = frpc
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
ExecStart = /root/frp_0.37.1_linux_arm64/frpc -c /root/frp_0.37.1_linux_arm64/frpc.ini
[Install]
WantedBy = multi-user.target
启动 frpc 并设置开机自启
systemctl start frpc
systemctl enable frpc
至此树莓派内网穿透工作就完成咯。可以访问“公网IP:7500”查看内网穿透的状态啦!