树莓派内网穿透

2021-03-02
2021-03-02
3 min read
Hits

  博主的站群长年无人问津,广告收入几乎没有,于是再也负担不起高额的服务器费用了😭。可能是老天爷还想逛博主的网站吧,让博主无意之间看到了树莓派,好奇之心顿起,火速下单,到手以后一番折腾,终于把网站从云端迁移到了本地。本文就记录了折腾过程(主要是内网穿透方面)。

准备工具

  • 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”查看内网穿透的状态啦!

Avatar

Hui.Ke

❤ Cyber Security | Safety is a priority.