点击关注公众号,实用技术文章及时了解

来源:segmentfault.com/a/1190000021143144

一、前言

由于本人在这段时候,看到了一个叫做树莓派的东东,初步了解之后觉得很有意思,于是想把整个过程记录下来。

二、树莓派是什么?

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。

1.jpg

你可以看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接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.更多树莓派

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

三、树莓派zero w安装系统

1.准备

你可能提前需要准备的东西如下:

  • 16GB or 32GB 的SanDisk内存卡(注意是以前那种放在手机上,很小的哦)

  • 一根最普通不过的usb安卓数据线(not type-c)

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

  • 系统烧写工具(Win32DiskImager)

  • 树莓派系统(可以去官网下载)

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

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

2.png

2.第一步下载系统镜像

下载好你需要的系统镜像后,如下图

3.png

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

4.png

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

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

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

5.png

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

打开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_supplicant GROUP=netdev
update_config=1network={
ssid="你的wifi名字"
psk="你的wifi密码"
}

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

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

等待几分钟,期间我们的zero w的指示灯会一直闪烁,很正常,等待指示灯常亮的时候,我们去路由器上,查看一下树莓派的ip地址。

6.png

可以看到我们zero w的ip为192.168.0.104,然后使用ssh连接工具(推荐使用putty)连接树莓派,初始账户为pi,密码是raspberry。

7.png

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

ps: 如果是手机开启热点当做一个路由器的话,咱们手机下载一个名叫android terminal的app,然后输入ip neigh指令,就可以查到连接到手机的设备的ip信息了。

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

6.1修改源

因为国外的源,咱们在国内的连接过去网速很慢,所以我们需要修改为国内的源,我修改的是中科大的源。

6.1.1修改sources.list文件

sudo nano /etc/apt/sources.list
--注释其他内容,添加以下:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian stretch main contrib non-free rpi

6.1.2修改raspi.list文件

sudo nano /etc/apt/sources.list.d/raspi.list
--注释其他内容,添加以下:
deb http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian stretch main ui

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的页面,说明安装好了。

学习资料:Java进阶视频资源

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

8.png

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

8.内网穿透

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

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

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

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

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

9.png

10.png

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

9.更多

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

我的zero w状态信息如下:

11.png

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

image

推荐:

主流Java进阶技术(学习资料分享)

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

如何组装、搭建一台永久运行的个人服务器?相关推荐

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

    以下内容来自公众号逆锋起笔,关注每日干货及时送达 作者 | 彭小呆 来源 | https://segmentfault.com/a/1190000021143144 No.1 树莓派是什么? Rasp ...

  2. 来!一起搭建个永久运行的个人服务器吧!

    欢迎关注方志朋的博客,回复"666"获面试宝典 作者 | 彭小呆 来源 | https://segmentfault.com/a/1190000021143144 No.1 树莓派 ...

  3. 秀!如何搭建一个永久运行的个人服务器?

    作者 | 彭小呆 来源 | https://segmentfault.com/a/1190000021143144 No.1 树莓派是什么? Raspberry Pi(中文名为树莓派,简写为 RPi, ...

  4. linux査 到漠河 装apache,如何在Ubuntu上搭建一台安全的Apache Web服务器

    满意答案 1.安装Apache2 使用下面这个命令,安装Apache2及其他库.1$ sudo apt-get -y install apt-get install apache2 apache2.2 ...

  5. 从创建服务器到搭建一台内网穿透服务器

    文章目录 创建服务器到搭建一台内网穿透服务器 解决VMware虚拟机ip地址经常变化的问题 安装lrzsz Linux中rz和sz命令用法详解 安装插件 安装jdk 安装maven 安装git 安装n ...

  6. Docker——使用docker工具管理软件/组件的运行,镜像、容器、数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境

    Docker--使用docker工具管理软件/组件的运行,镜像.容器.数据卷的基本概念,常用指令,使用docker搭建Java微服务运行环境 一.docker的安装和卸载 1.卸载 2.安装 3. 导 ...

  7. 如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群

    如何构建虚拟机Hadoop集群,搭建3台ubuntu虚拟机集群 克隆集群机器 通过虚拟机搭建Hadoop集群,发现使用的VMware workstation 15 player版本没有克隆功能,于是找 ...

  8. 如何搭建一台深度学习的电脑工作站

    如何给自己搭建一台深度学习工作站? 这个是很多刚准备入门的同学疑问,那么我们今天就来讲解下如何搭建. 有多种典型配置,一个 GPU 的机器.两个或四个 GPU的机器.如果您需要更多GPU,请考虑配置两 ...

  9. RouterOS搭建一台SSTP Server用于远程办公

    2020新冠疫情期间,很多单位提倡在家soho办公,这时候有一台ssl vpn服务器就显得尤为重要.下面步骤可以搭建一台低成本的RouterOS的ssl服务器. 一.基础知识 SSL 安全协议最初是由 ...

最新文章

  1. 2.10. 代码片段:demo方法(Core Data 应用程序实践指南)
  2. deepin linux下python安装mysqldb
  3. 理解 pkg-config 工具
  4. 前端学习(2989):vue+element今日头条管理--项目结束
  5. Java工作笔记-使用fastjson把对象直接生成为Json
  6. python--学习1
  7. 公司顾问岗位职责_集团公司法律顾问岗位职责
  8. 基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计
  9. linux 的学习笔记-linux 指令大全
  10. 两个线性空间的可逆线性映射
  11. android的scrollview视图内部的子视图中android:layout_height=fill_parent无效的解决办法...
  12. 反编译工具ILSpy下载
  13. 2021系统分析师论文题目记忆
  14. scratch少儿编程与游戏:丛林狩猎
  15. 提升技能,升级思维,你学知识我送T恤,订阅专栏免费领51CTO定制T恤
  16. Mocking with (and without) Spring Boot
  17. 队爷的讲学计划 (强连通缩点+最短路)
  18. spring mongodb内嵌文档查询
  19. 走进一心堂,读懂数字化转型新风向
  20. python中rouge是什么程序_rouge与pyrouge使用事项

热门文章

  1. 一个数据分析实习生的内心独白
  2. Shader——消融效果
  3. Android 时间转换 今天 昨天 前天 的样式
  4. C#窗体Combobox简单用法(1)
  5. 无线网络中AP及AC的概念及作用:
  6. 小希的迷宫 HDU - 1272---并查集+思维
  7. 快表、页表和cache之间的关系
  8. Android获取网易云音乐歌曲详细信息
  9. 用C语言50行代码绘制一朵玫瑰花
  10. 【实战】物联网安防监控项目【2】———boa服务器的移植