锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

如何搭建一台永久运行的个人服务器?

时间:2022-09-06 22:30:00 防呆型电连接器

No.1

什么是树莓派

Raspberry Pi(中文叫树莓派,简写为 RPi,(或者 RasPi / RPI) 它是为学习计算机编程教育而设计的),只有基于信用卡大小的微型计算机。 Linux。随着 Windows 10 IoT 我们也可以使用发布的操作 Windows 的树莓派。


自推出以来,受到许多电脑爱好者和制造商的追捧,一旦学校很难找到。虽然它的外表娇小,但心非常强大,视频、音频等功能都有,可以说麻雀虽小,五脏。

1. 用我的话来理解

用我的话来说,树莓派是主机,你可以外接显示器键盘鼠标,u盘等外设,由于其体积小,且有许多串口和外接口,可直接调用许多底层硬件。

2. 市场上的型号

市场上大部分都是 3 代 B 类型,淘宝搜索了很多树莓派,价格纯主板(没有外设) 230 左右,有点小贵,超过我的预算,所以我继续寻找廉价的,终于让我发现了一款 100 的树莓派。

3. 树莓派 zero w

树莓派 zero w 是一款 mini 树莓派,体质只有 3b 的 1/3。事实上,当你得到它时,你会发现它真的超级小,超级可爱。以下是我的实物图。你可以看到它有多大 mini。

0c5024a3f9c4b9e0645f251a18cdc615.jpeg

你可以看到,顶部是一支普通的黑色签名笔,接下来是一个即插即用的外部连接 wifi 然后是网卡 USB 读卡器,底部是我们今天的主角 zero w。它真的超级小,有木有。真的完美诠释了麻雀虽小,五脏俱全这句话。

zero w树莓派的主要参数如下:

? BCM2835 处理器,1GHz 主频,512MB RAM

?BCM43438 WiFi / BT 芯片

?micro-USB 电源接口

?micro-USB OTG 接口

?miniHDMI 端口

?复合视频和重置扩展接口

?脆弱的 CSI 摄像头接口

?micro-SD 卡座,存储操作系统

?40-pin GPIO 扩展接口

?尺寸:65mm*30mm

你别看它的 cpu 只有 1 核,只有内存 512MB,我觉得它可能什么都做不了,但其实它的性能还是很好的。跑网站真的很小 case。


4. 更多树莓派

你可以去树莓派实验室这个网站,有更多的树莓派型号或教程,资源丰富。

No.2

树莓派zero w安装系统

1. 准备

您可能需要提前准备以下内容:

?16GB or 32GB 的 SanDisk 内存卡(注意以前放在手机上,很小)

?最常见的一个 usb 安卓数据线(not type-c)

?u 盘格式化工具(推荐使用) SDFormatter)

?系统烧写工具(Win32DiskImager)

?树莓派系统(可在官网下载)

我使用的是 Raspbian Stretch Lite 该系统的镜像是官方制作的,lite 没有桌面版,只有黑漆控制台,体积小,节省性能和内存。

名字带有 desktop 的是有桌面 ui 是的,不熟悉 liunx 系统的朋友可能更友好,但体积大,占用性能更高。

2. 下载系统镜像的第一步

下载您需要的系统镜像后,如下图所示

一开始只有一个 zip 压缩包,大小 360MB 左右,需要解压,得到上图文件夹。

然后进入文件夹可以看到一个 img 镜像,大小为 1.7GB 左右。

ps:这个官方的 Raspbian 镜像,如果是其他第三方的镜像,下载后的压缩包能不会解压 img 镜像,请百度另行解决这种情况。

3. 使用 Win32DiskImager 将镜像写入内存卡

将内存卡插入读卡器后,插入电脑。

打开 Win32DiskImager 软件后,选择 img 镜像,设备选择你的 U 然后,然后点击写入,写入后会弹出成功的提示框。

ps: 我上图没有选择设备,因为的没插入读卡器,仅仅是示范而已

4. 修改 boot 分区的文件

不要急着拔出读卡器。这时,我们的电脑可以看到 u 盘中只有一个名字 boot 分区的大小可能只有 40MB 左右,别担心,因为 window 在内存卡中不识别 liunx 系统的其他分区。

4.1 新建 ssh 文件

因为我们的 zero w 有一个 mini hdmi 但是我不需要屏幕,所以我需要使用它 ssh 连接到 zero w 中间系统需要在第一次启动时打开 ssh 功能。

我们进入 boot 然后在分区内新建一个名字 ssh 文件,注意不要后缀名!!!不要在里面写任何东西!

4.2 新建 wpa_supplicant.conf 文件

因为 ssh 连接是需要 ip 地址,所以我们需要 zero w 第一次启动时自动连接 wifi,让它和我们的计算机处于局域网中,这样我们就可以通过 ssh 连接到 zero w 的系统。


同样的在 boot 分区内,新建一个名为 wpa_supplicant.conf 将以下内容写入文件后保存:

country=CN ctrl_interface=DIR=/var/run/wpa_supplicantGROUP=netdev update_config=1  network={ ssid="你的wifi名字" psk="你的wifi密码" }

5. 组装我们的最小主机并连接

取出读卡器中的内存卡,插入 zero w 用一个 usb 安卓数据线连接电源(5)V1A)即可。


等几分钟,期间我们 zero w 指示灯会一直闪烁,很正常。当指示灯常亮时,我们去路由器检查覆盆子派 ip 地址。

能看见我们 zero w 的 ip 为 192.168.0.104,然后使用 ssh 建议使用连接工具 putty)连接树莓派的初始账户是 pi,密码是 raspberry。

连接成功,如上图所示。这样我们的系统就可以正确安装了。

ps: 如果手机打开热点作为路由器,我们的手机会下载一个名字 android terminal 的 app,然后输入 ip neigh 指令可以找到连接到手机的设备 ip 信息了。

6. 优化我们树莓派的系统

6.1 修改源

由于国外的来源,我们过去在中国的连接速度很慢,所以我们需要修改为国内的来源,我修改了中国科技大学的来源。

6.1.1 修改 sources.list 文件

sudonano/etc/apt/sources.list --注明其他内容,添加以下: debhttp://mirrors.ustc.edu.cn/raspbian/raspbian/raspbianstretchmaincontribnon-freerpi

6.1.2 修改 raspi.list 文件

sudonano/etc/apt/sources.list.d/raspi.list --注明其他内容,添加以下: debhttp://mirrors.ustc.edu.cn/archive.raspberrypi.org/debianstretchmainui
6.1.3 执行更新
sudo apt-get update
sudo apt-get upgrade


6.2 修改时区

sudo dpkg-reconfigure tzdata

找到亚洲 Asia,然后选择 shanghai 就可以了。

6.3 开机自启 ssh

第一种:

sudo raspi-config

进入选择找到 interfacing option 选择,然后找到 ssh,按回车使能 enable 就可以了。

第二种:


在终端命令行中启动 SSH 服务后,如果系统重启或关机后启动,SSH 服务默认是关闭的,依然需要手动启动,为了方便可以设置 SSH 服务开机自动启动,打开 /etc/rc.local 文件,在语句 exit 0 之前加入:/etc/init.d/ssh start

建议都试试,反之我的是可以了。

7. 安装 nginx

#安装
sudo apt-get install nginx
#启动
sudo /etc/init.d/nginx start
#重启
sudo /etc/init.d/nginx restart
#停止
sudo /etc/init.d/nginx stop

打开浏览器访问 192.168.0.104(你的树莓派 ip 地址),可以看到 nginx 的页面,说明安装好了。


我这边上传了我的博客,如下图

可以正常的看到页面了,但是这样只能在内网(局域网中)看到,我想让所有人都可以访问怎么办?

8. 内网穿透

内网穿透,意思就是将内网(本地)的 web 应用通过 nat 穿透到公网上,从而让别人可以访问到。

内网穿透目前主要由 ngrok 和 frp 两种,都非常好用,国内 ngrok 免费的有 ittun、sunny 和 natapp,这三个都是免费的,前面两个可以自定义域名,后面的需要 vip 版本才可以自定义域名。

我这三种都试过,我发现 sunny 的 arm 版本的 ngrok 客户端在我的树莓派运行不了,ittun 的和 natpp 的 ngrok 都可以,由于需要自定义域名,我使用的是 ittun 的 ngrok_arm 版本的。

使用方法这三者官网都有详细说明,大家自行查看。

这是正常运行时的截图,访问 http://zerow.ittun.com/ 时可以...

因为需要 ngrok 在后台运行,所以我用的是 screen 会话使其可以在后台运行。但是开启自启,还没有实现,万一断电或者断网了,我必须手动去运行一下 ngrok,这是目前没有解决的痛点。

9. 更多

树莓派不仅仅只是可以用于运行一个网站,还有很多很多的功能等待你的开发,可以多去看看树莓派实验室里面,很多大神都写了很多实用的教程。

这个zero w 状态信息如下:

在上面开启了一个 nginx 和 ngrok 服务,内存剩余还有 250MB,还是很舒服的,cpu 温度也不算高,运行两天了,基本在 37-39 之间。

感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。

来源| 彭小呆

链接 | segmentfault.com/a/1190000021143144

 
     

【热门内容】

如何将 @Transactional 事务注解运用到炉火纯青?

腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?

再见,Java泛型 T、E、K、V、?。通用泛型要来了,非常劲爆!

谁再在对外接口中使用枚举类型,以后就不用来了!

一个注解搞定 SpringBoot 接口防刷,还有谁不会?

SpringBoot+Nacos+Kafka简单实现微服务流编排

新来的CTO规定所有接口都用 post 请求...

简直无语,又一个知名项目收费了。。已退出!

这是我见过写得最烂的Controller层代码,没有之一!

看看人家SpringBoot的全局异常处理多么优雅...

HTTP 3.0彻底放弃TCP,TCP到底做错了什么?

Redis 官方可视化工具,高颜值,功能真心强大!

领导:谁再用Redis过期监听实现关闭订单,立马滚蛋!

300多本程序员经典技术书籍高清PDF
加我微信,备注:资料

扫码备注:资料,自动获取
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章