如何搭建一台永久运行的我的服务器?试试这个黑科技!

2021年09月15日 阅读数:1
这篇文章主要向大家介绍如何搭建一台永久运行的我的服务器?试试这个黑科技!,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

做者:彭小呆

来源:segmentfault.com/a/1190000021143144java

1、树莓派是什么?

Raspberry Pi(中文名为树莓派,简写为 RPi,(或者 RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于 Linux。随着 Windows 10 IoT 的发布,咱们也将能够用上运行 Windows 的树莓派。android

自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能统统皆有,可谓是麻雀虽小,五脏俱全。nginx

1. 用个人话理解

用个人话理解就是树莓派就是一台主机,你能够外接显示器,键盘鼠标,u盘等等外设,由于它体积很小,并且又有不少串口和外接的口,能够直接调用不少底层硬件。web

2. 市面上的型号

市面上大可能是 3 代 B+ 型,淘宝一搜树莓派一大堆都是,价钱纯主板(不要任何外设)在 230+ 左右,有点小贵,超过个人预算,因此我继续寻找廉价的,终于让我发现了一款 100+ 的树莓派。面试

3. 树莓派 zero w

树莓派 zero w 是一款 mini 的树莓派,体质只有 3b+ 的 1/3。实际到手后,你会发现它真的超级小,超级可爱。如下是个人实物图,你能够看看大小到底有多 mini。spring

你能够看到,最上面是一根普通的黑色签字笔,接下来是一个即插即用型的外接 wifi 网卡,而后是一个 USB 读卡器,最底下的就是咱们今天的主角 zero w。它真的超级小,有木有。真的是完美的诠释了那句“麻雀虽小,五脏俱全”的话。编程

zero w 这款树莓派的主要参数以下:segmentfault

• BCM2835 处理器,1GHz 主频,512MB RAM浏览器

• BCM43438 WiFi / BT 芯片intellij-idea

• micro-USB 电源接口

• micro-USB OTG 接口

• miniHDMI 端口

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

• 脆弱的 CSI 摄像头接口

• micro-SD 卡座,存放操做系统

• 40-pin GPIO 扩展接口

• 尺寸:65mm*30mm

你别看它的 cpu 只有 1 核,内存只有 512MB,就以为它可能什么都作不了,可是实际上它的性能仍是很好的,用于跑一个网站真的是小 case。

4. 更多树莓派

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

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_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 就能够了。

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 之间。

近期热文推荐:

1.1,000+ 道 Java面试题及答案整理(2021最新版)

2.别在再满屏的 if/ else 了,试试策略模式,真香!!

3.卧槽!Java 中的 xx ≠ null 是什么新语法?

4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

以为不错,别忘了随手点赞+转发哦!