手把手教你搭建一台永久运行的个人服务器

article/2025/9/27 1:21:21

ec1eeb412a74143ed256cf1c050efe48.jpeg

  • No.1 树莓派是什么?

    • 1. 用我的话理解

    • 2. 市面上的型号

    • 3. 树莓派 zero w

    • 4. 更多树莓派

  • No.2 树莓派zero w安装系统

    • 1. 准备

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

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

    • 4. 修改 boot 分区的文件

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

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

    • 7. 安装 nginx

    • 8. 内网穿透

    • 9. 更多

46e21ea7396546e9a9c576390d99d51a.png


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。

cdcb1a8af9469fc83558af97d09a0dd9.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. 更多树莓派

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

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

  • 视频教程:https://doc.iocoder.cn/video

No.2 树莓派zero w安装系统

1. 准备

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

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

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

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

• 系统烧写工具(Win32DiskImager)

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

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

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

21e058bfe5f90570af4943b8ce65ee75.jpeg
图片

2. 第一步下载系统镜像

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

99fce39e2814dfe8ce2d6f1f463bff1f.png
图片

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

2d8f1704301d8daf44f740ff1ce14c83.png
图片

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

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

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

1ebeb8b099963a7900f10b30e0262903.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 地址。

ce04259aaf195e28cf3edb259c507755.jpeg
图片

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

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

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

b08464af6d7af4f3e06d45017aa23588.png
图片

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

8. 内网穿透

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

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

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

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

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

cad0bc114f30554a1227f087f5f6bed2.png
图片
55871db95495d92541a2c4ef333b9c03.png
图片

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

9. 更多

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

这个zero w 状态信息如下:

21842b21e5004521c47e8cdf3c6b8ace.png
图片

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


http://chatgpt.dhexx.cn/article/EhhlVRPS.shtml

相关文章

个人服务器的选择

相信有很多小码农在学习技术和平时写Demo的时候,都需要一台个人服务器来看看效果。这里我就简单介绍一下如何去选择适合自己的服务器。 首先需求和用途: 主要考察空间大小 / 流量 / 连接数 / 数据库 / 流量 / 是否有其它特殊用途等。 如果你对服务器性能…

微信小程序获得二维码

网上找了一些方法,基本都是获得appid和access_token通过访问对应网站获得,这里介绍一种新方法,是微信小程序网站自带的,操作如下 登录微信小程序点击设置即可看到对应生成的小程序二维码 点击下载还可以根据需求下载对应大小甚至添…

微信小程序普通二维码解析

1、区别于微信小程序官方二维码是直接从onLoad的 options 解构出来就行,它是一个对象,这个大家都知道。 2、普通二维码 也是从onLoad的 options 里解构出来,此时options里应该只有一个参数就是scene, 但是scene里的参数是被编码过的&#x…

扫普通二维码进入小程序、链接进入小程序

目录 一、扫普通二维码进入小程序 1、扫码进入小程序管理页 2、点击开发管理-开发设置-扫普通链接二维码打开小程序-添加 3. 完善配置内容 二. 前端获取参数 三.开发本地调试 一、扫普通二维码进入小程序 1、扫码进入小程序管理页 2、点击开发管理-开发设置-扫普通链接二维…

微信小程序生成带参二维码——并通过扫码获取二维码的参数

注意:保证当前小程序要有线上版本 通过url拼接参数。http://***.com?id123 这种方式要利用一个插件(GitHub - adventurewithme/chajian: 用到的各种插件里面的qrcode.js)。 要转换的这个url必须要在微信公众平台配置了扫普通链接二维码打…

微信小程序扫描二维码

点击按钮扫描二维码 <button classdeaBtn bindtapscancode>扫描二维码</button> scancode: function(){// 允许从相机和相册扫码wx.scanCode({success(res) {console.log(res);wx.showToast({title: 成功,icon: success,duration: 2000})},fail: (res) >{cons…

微信扫描普通二维码进入小程序

微信扫描普通二维码进入小程序的方法&#xff0c;和代码没有什么关系&#xff0c;主要是在小程序平台进行设置 1. 开发配置 开发 —— 开发管理 —— 开发设置 —— 扫普通链接二维码打开小程序 2. 配置规则 根据说明配置内容就行&#xff0c;后面有说带参数的配置和怎么在小…

微信小程序使用weapp-qrcode生成二维码

<canvas style"width:108rpx;height:108rpx; canvas-idqrcode></canvas>// weapp-qrcode.js在最后面 const QR require(../../utils/weapp-qrcode.js); // 生成二维码createQrcode(qrCodeLink) {var imgData QR.drawImg(qrCodeLink, {typeNumber: 4, …

微信小程序----获取二维码

WXRUI体验二维码 如果文章对你有帮助的话&#xff0c;请打开微信扫一下二维码&#xff0c;点击一下广告&#xff0c;支持一下作者&#xff01;谢谢&#xff01; 前言&#xff1a;随着小程序的火爆&#xff0c;功能的越发完善&#xff0c;客户的需求越来越多&#xff0c;终于在此…

微信小程序如何生成当前页面二维码

码字不易&#xff0c;有帮助的同学希望能关注一下我的微信公众号&#xff1a;Code程序人生&#xff0c;感谢&#xff01;代码自用自取。 在微信小程序的开发中&#xff0c;很多的业务场景下都会有生成二维码&#xff0c;然后通过扫码二维码&#xff0c;进入指定页面的需求。 我…

微信小程序–二维码生成器

在微信小程序联盟上有一个小练习&#xff0c;是要实现小程序上的二维码生成器&#xff0c;想想基于jquery的二维码生成插件有很多&#xff0c;但是小程序是不允许操作dom的&#xff0c;所以自己找了一个纯javascript版的二维码生成源码&#xff0c;然后换汤不换药把其中的hmtl5…

微信小程序怎样生成体验版二维码?微信小程序怎么转化为二维码?

1.首先要把代码上传到微信公众平台 方法&#xff1a;在微信开发者工具界面&#xff0c;右上角&#xff0c;点击上传&#xff0c;如果提示成功&#xff0c;说明已经上传成功。 2.登录微信公众号平台&#xff08;微信公众号和微信小程序都是使用这个网站登陆的&#xff09; 网址…

微信小程序识别二维码

微信小程序二维码识别 准备工作 在微信公众平台(https://mp.weixin.qq.com/)注册账号获APPID 下载微信开发者工具 (https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html) 在小程序文档中找到API下的设备下的扫码API(https://developers.weixin.qq.com…

Java生成微信小程序二维码,5种实现方式,一个比一个简单

文章目录 前言先看官网一、JDK自带的URLConnection方式二、Apache的HttpClient方式三、okhttp3方式四、Unirest方式五、RestTemplate方式其它细节getAccessToken构建参数mapbyte[]数组 源码下载 前言 先介绍一下项目场景&#xff0c;主要是通过微信小程序二维码裂变分享&#…

微信小程序转二维码方法分享

微信小程序转二维码方法分享 需要转码的可以看看 这个东西是看个人需求的&#xff0c;618就要来了&#xff0c;各种活动也将来袭 有些小伙伴不知道怎么生成 为了方便小程序邀请活动没法外发&#xff0c;这里分享下将小程序转二维码的方法 首先&#xff0c;你需要在电脑上打…

微信小程序绘制二维码

一、前言 在日常的小程序项目中&#xff0c;会经常遇到需要动态绘制二维码的需求。使用场景很多&#xff0c;例如绘制在海报上&#xff0c;例如制作票务码、核销码等等。 这篇文章是应一位好友的需求而写的&#xff0c;也希望能够给有需要的同学一些帮助。 二、实现原理 使用…

微信小程序二维码识别

目前市场上二维码识别的软件或者网站越来越多&#xff0c;可是真正方便&#xff0c;无广告的却少之很少。 于是&#xff0c;自己突发奇想做了一个微信二维码识别的小程序。 包含功能&#xff1a; 1、识别二维码 ①普通二维码 ②条形码 ③只是复制解析出来的数据 2、生成二维码 …

微信小程序扫描普通二维码跳转到小程序指定页面

这个功能的逻辑是什么呢&#xff1f; 二维码就相当于是一个链接 相当于我们点击一个链接跳转到另一个页面 只不过这里是扫码的形式 如何操作 1、首先我们需要在微信公众平台的开发管理——>开发设置&#xff0c;找到&#xff08;扫普通链接二维码打开小程序&#xff09;&…

微信小程序中生成二维码

一般在微信小程序中&#xff0c;生成二维码是一个很常见的场景&#xff0c;但是查阅官方文档&#xff0c;却没有一个现成的可以使用的组件。 经过搜索&#xff0c;生成二维码组件一般是需要借助第三方库来实现。实现的步骤分为&#xff1a; 下载第三方库安装第三方库wxml中生…

微信小程序 — 生成二维码功能

微信小程序实现生成二维码功能。需要用到canvas组件&#xff0c;设置 type为2d. 需要使用js包weapp-qrcode-canvas-2dhttps://github.com/DoctorWei/weapp-qrcode-canvas-2dweapp-qrcode-canvas-2d 是使用新版canvas-2d接口在微信小程序中生成二维码&#xff08;外部二维码&am…