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

news2024/11/23 22:06:03

一、前言

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

二、树莓派是什么?

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=1

network={
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.coloradmin.cn/o/1798327.html

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

相关文章

HarmonyOS开发-鸿蒙UiAbility 组件间跳转

前言 随着春节假期结束各行各业复产复工,一年一度的春招也持续火热起来。最近,有招聘平台发布了《2024年春招市场行情周报(第一期)》。总体来说今年的就业市场还是人才饱和的状态,竞争会比较激烈。 但是,…

【网络基础1】

文章目录 学习目标一、网络基础11.网络的重要性2.osi7层模式3.协议和osi7层模型的关系4.数据的封装和解封装5.tcp的三次握手6.Ddos攻击讲解7.Tcp的四次挥手 二、网络基础21.文字编码2.IP地址的划分3.子网掩码4.同网段ip才能直接通信5.DNS解析6.DNS解析命令7.短域名为什么值钱8.…

HTTP --tcp和keep-alive

TCP TCP连接 tcp/ip是全球计算机以及网络设备都在使用的一种常见的分组交换网络分层协议集,客户端可以打开一条tcp/ip连接,连接到可能运行在世界各地的服务器应用程序,一旦连接建立起来了,在客户端和服务器的计算机之间交换的报…

Unity 资源 之 风格化地形纹理(Stylized Terrain Textures)免费领取

风格化地形纹理:Stylized Terrain Textures 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们,我们自豪地为大家推荐最新的每周免费资源:风格化地形纹理!这些令人惊叹的纹理将为你的游戏世界带来独特而引人入胜的视觉体…

Ambari集成Apache Kyuubi实践

目前还有很多公司基于HDP来构建自己的大数据平台,随着Apache Kyuubi的持续热度,如何基于原有的HDP产品来集成Apache Kyuubi,很多人都迫切的需求。集成Apache Kyuubi到HDP中,主要涉及Ambari的二次开发。本文详细叙述了集成Apache K…

老师怎么发期末成绩?

期末成绩发放,可是每个学期的重头戏,老师们,你们怎样安全、高效的传达成绩?别急,今天就来聊聊这个问题。 先来个小调查:各位老师们都是怎么发成绩的?是传统的纸质成绩单,还是电子邮件…

IngsollRang伺服拧紧轴控制器维修故障排查

【IngsollRang控制器故障排查】 在开始维修之前,请确保拧紧机已关闭并断开电源。然后,按照以下步骤进行故障排查: 1. 检查电源连接:确保拧紧机的电源线牢固连接,且电源插座正常工作。 2. 检查保险丝:如果电…

SmartEDA赋能学校教育:电子设计学习新篇章,让梦想触手可及!

在数字化时代,电子设计已成为科技创新的重要驱动力。然而,对于许多初学者和在校学生来说,电子设计的学习过程往往充满了挑战和困惑。幸运的是,随着SmartEDA的出现,这一局面正在发生深刻改变。SmartEDA不仅简化了电子设…

期末成绩怎么单独发给家长

想知道如何让成绩查询变得简单又安全吗?跟着我,带你发现一个让家长和老师都省心的神器! 传统的成绩发布方式,一张张成绩单,一封封邮件,或是一条条短信,这些方法虽然有效,但效率不高&…

如何利用51建模网,在跨境独立站内实现商品3D模型嵌入展示?

跨境电商卖家如何在自己的独立站上嵌入商品3D模型?利用51建模网的Web3D展示技术和内嵌功能,即可实现商品3D模型嵌入,全方位的720立体交互展示,为消费者带来沉浸式的购物体验,显著提升消费者的参与度和网页访问时长。 具…

随到随学|2024泰迪智能科技暑期在线项目/集训营

在数字化转型的浪潮中,大数据和人工智能等前沿技术已成为推动经济发展和科技进步的关键动力。当前,全球各行各业都在积极推进数字化转型,不仅为经济增长注入新活力,也对人才市场结构产生了深刻影响,尤其是对数字化人才…

【优化过往代码】关于vue自定义事件的运用

【优化过往代码】关于vue自定义事件的运用 需求说明过往代码优化思路优化后代码(Vue2)遇到问题记录 Vue2官方自定义指令说明文档 Vue3官方自定义指令说明文档 需求说明 进入某些页面需要加载一些外部资源,并在资源加载完后进行一些处理&…

建构信任基石:揭秘Web3的去中心化信任体系

在传统的互联网时代,信任往往建立在中心化的机构和第三方平台之上,而这种中心化的信任体系往往面临着数据泄露、信息滥用等问题。然而,随着区块链技术的发展,Web3时代正在向我们展示一种全新的信任体系,即去中心化的信…

C++基础一:代码编译和运行时的调用堆栈

目录 运行时进程的虚拟地址划分 函数调用堆栈 程序编译链接原理 运行时进程的虚拟地址划分 每一个进程的用户空间是私有的,内核空间是共享的 函数调用堆栈 程序编译链接原理

短剧小程序剧场短剧APP定制开发付费短剧之如何搭建?

在构建小剧场短剧影视小程序的过程中,遵循明确的步骤并注意到关键的细节至关重要。 步骤一:寻找适合的源码 1、考虑源码的授权方式:选择开源或商业授权的源码时,要仔细阅读其授权协议,确保它允许你进行修改和商业化利…

《数据结构》

简答题 一、设散列函数H(key)=key MOD 11,用线性探测再散列法解决冲突。对关键字序列{ 13,28,72,5,16,18,7,11,24 }在地址空间为0-10的散列区中建散列表,画出此表,并求等概率情况下查找成功时的平均查找长度。 散列函数为 H(key)=key MOD 11,将关键字序列 {13,28,…

python ---使用python操作mysql ---> pymysql

本章内容: 1:能够完成从MySQL中读取出数据; [重点] 查询: execute()、fetchall() 2:能够将数据写入MySQL数据库。 [重点] 插入数据: execute() sql insert into xxx [掌握]pymysql模块的安装 目标:了解如何安装pymysql模块? 当要使用Python和M…

白嫖游戏指南,Epic喜加一:《漫威暗夜之子》

前言 Epic喜加一:《漫威暗夜之子》《漫威暗夜之子》简介: 前言 接下来有时间会分享一些游戏相关可以白嫖的资源,包括游戏本体、游戏素材资源等等。 有需要的小伙伴可以关注这个专栏,不定期更新哦! 专栏:…

C++基础三:类和对象的细节原理

类和对象以及this指针: 概念 面向对象四大特性:抽象:抽象是一种将对象的共同特征提取出来并定义成一个通用模板的过程。类的抽象是指将一个类的共同属性和行为抽象出来,定义一个通用的类模板,而不关注具体的实现细节…

HBuilder中能否使用机器学习

HBuilder中能否使用机器学习? HBuilder是一款由腾讯公司开发的前端开发工具,主要用于快速构建和管理HTML5应用。HBuilder本身是一个专注于Web开发的集成开发环境(IDE),它提供了代码编辑、预览、调试等功能,并且集成了Espresso等移动应用测试框架。HBuilder的核心功能是针…