作者:Roby
一、 当然要准备一个几百元的树莓派 4 开发版
别小看这个几百块的开发板,其性能和每个月几百块的阿里云服务器相当。我们就来还好利用它吧。
1.1 安装 Ubuntu
当然要去看官方详细教程,不过全是英文, 不要紧我们只需要几个步骤就好了。
先下载一个官方的启动盘镜像制作软件,在官网教程的第二步。根据自己的电脑操作系统下载相应版本。**
我的是MacOS就先择了第三个。
下载安装好后打开,有两个选择栏,一个是选择Operating System, 一个是Storage.
这个时候把一个TF卡插到电脑上,我用的是一个64G的TF卡。
先点击第一个CHOOSE OS,我要安装Ubuntu Server 20,就选择Other general purpose OS 这一项,然后选择Ubuntu,再选择具体的版本,我选择Ubuntu Server 20.04 LTS (RPI 3/4/400) 64-bit server OS with long-term support for arm64 architectures.
然后选择Storage, 选择刚刚插入的TF卡。
点击下一步,抹除盘然后创建镜像。创建完系统会自动将system-boot
的镜像盘推出。
1.2. 设置网络,如果想通过网线链接就把网线插上,也可以直接通过 Wi-Fi 链接
先切换到root
账户,执行sudo su root
.
将镜像盘插入树莓派 4,经过激动人心的几分钟,系统boot完就需要你输入用户名和密码了,用户名默认是ubuntu, 密码也默认是ubuntu,一开始系统会要求你改密码,就改一个密码。
结束后,进入系统 shell,就可以设置网络了。
这里我用的是wifi,ubuntu17以后的版本网络都是由netplan来设置,所以要更改netplan的配置文件。
netplan的配置文件在/etc/netplan/
里的一个yaml文件。
反正大概类似这样的文件:01-netcfg.yaml, 50-cloud-init.yaml, NN_interfaceName.yaml,我的是50-cloud-init.yaml.
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
renderer: networkd
wifis:
wlan0:
access-points:
"你的Wi-Fi名":
password: "你的Wi-Fi密码"
dhcp4: true
optional: true
把你要连的wifi名和密码填到配置文件里,记得保留双引号。
然后执行sudo netplan apply
.
然后ping www.baidu.com
, wow,树莓派可以上网了,如果不同可以重启一下系统sudo reboot
.
小插曲 Ubuntu arm64 在树莓派上有个固件 bug,导致一段时间系统固件崩溃,需要手动更新一个网络固件,后期如果修复了这个问题可以不需要这一步了。
先下载固件 brcmfmac4355-sdio.bin,如果是外网直接在树莓派上是没办法wget的,最好通过翻墙的PC先下载下来。
-
然后用
scp -p 22 brcmfmac4355-sdio.bin ubuntu@192.168.1.109:brcmfmac4355-sdio.bin
这个命令直接把下载好的文件传到树莓派上。 -
也可以通过 U 盘拷贝到树莓派上。U 盘插入树莓派后,输入
sudo blkid
,查看挂载的盘符号,我的 U 盘挂载路径是/dev/sda2
. 然后执行sudo mkdir mnt-usb
, 在当前路径新建一个 mount 位置,继续执行sudo mount /dev/sda2 mnt-usb
,这时候打开 mnt-usb 文件夹就可以看到 U 盘内容了。
更新固件就是把这个新的固件文件替换系统原来的固件文件。系统原来的固件文件是这个/lib/firmware/brcm/brcmfmac43455-sdio.bin
,先给他重命名备份,执行sudo mv /lib/firmware/brcm/brcmfmac43455-sdio.bin{,.orig}
。这个命令是把原来的文件后面添加一个.orig后缀。
然后把新下载的文件拷贝到目录/lib/firmware/brcm/
重启系统sudo reboot
二、配置 FRP 内网穿透
我们的这种小区IP都是动态IP,不是静态IP,外网是没办法直接SSH访问我们的内网服务器,在内网部署的web服务也无法有外网直接访问,这个时候就要通过frp来进行内网穿透。
frp 原理网上有很多这里就不介绍了。 通俗的讲,就是我们没办法直接从外网ssh到内网服务器,那么我们可以通过外网服务器中转一下,所以要有一台外网服务器,然后在外网服务器上启动一个服务端frps,在内网服务器也启动一个客户端服务frpc。
链接过程就是:
用户ssh ----> 外网frps -----> 内网frpc ---> ssh内网服务器
这就清楚了,需要两个程序一个给外网服务器,一个给内网服务器。 外网服务器我用我的阿里云为例子。
具体流程参考这篇文章吧 frp 内网穿透教程 里面写的很清楚了。
不过有一点要注意,阿里云的安全组要把相应的端口打开,例如例子中的 7000 和 7500.
最后成功后就可以通过 ssh 链接内网服务器了
ssh ubuntu@<外网的IP> -p 6000
6000 就是在frpc.ini设置的远程映射端口号。
然后输入密码,大功告成!
下一篇将继续讲解 K8s 环境的搭建。