当前位置: 首页 > 科技观察

在RaspberryPi上创建一个最小服务器

时间:2023-03-15 13:45:59 科技观察

不要急于扔掉那个旧的RaspberryPi,这个分步指南展示了我如何通过最小的设置充分利用我宝贵的RaspberryPi系统资源。最近,我的RaspberryPi上的microSD存储卡停止工作了。它作为服务器运行了将近两年,这给了我一个开始探索和解决问题的好机会。初始安装后,它开始出现一些磁盘问题,官方RaspberryPiOS发布了一个重要更新(并从Raspbian重命名为RaspberrPiOS)。所以我买了一张新的存储卡并开始重新加载。虽然RaspberryPi3B不是最新的硬件,但对于运行各种服务的最小服务器来说已经足够了。我不认为我以前的安装使用了完整的安装映像,包括GUI和许多其他包,这是不必要的。这个分步指南展示了我如何通过最少的设置充分利用我宝贵的RaspberryPi系统资源。入门首先,为RaspberryPi创建一个新的系统驱动器。这需要两件事:系统映像文件和microSD存储卡。下载树莓派系统镜像文件虽然有多种操作系统可供选择,但我还是坚持使用树莓派官方支持的系统。第一步是从树莓派操作系统官网下载最新的系统镜像文件到电脑,然后写入内存卡。他们提供三种不同的图像,我选择了精简版。它是一个最小的操作系统,只包含必要的系统文件,因此它占用的磁盘空间和系统内存最少。(我下载系统的时候,发布日期是2020年8月20日,但现在肯定已经更新了,我觉得不会有太大的区别,但我建议阅读发行说明。)镜像树莓派系统写入内存卡第二步是将下载的系统镜像写入内存卡。我的卡以前用过,当我把它插入我的Linux台式电脑时,它会自动挂载两个现有的分区。在卸载这两个分区之前,我无法写入映像。为此,我必须使用以下lsblk命令来确定它们的路径。确定后,设备路径为/dev/mmcblk0:#lsblk-p我使用umount命令卸载了两个分区:#umount/dev/mmcblk0p2#umount/dev/mmcblk0p1分区卸载后,镜像文件就可以了写入存储卡。虽然图形化的书写工具很多,但我还是用古老的dd命令:#ddbs=4Mif=/home/alan/Downloads/raspios/2020-08-20-raspios-buster-armhf-lite。imgof=/dev/mmcblk0status=progressconv=f??sync启动树莓派你只需要一个显示器,键盘,电源适配器就可以使用树莓派了。我还有一根用于网络连接的以太网电缆,我更喜欢通过无线连接到专用服务器。插入存储卡并打开树莓派电源。启动成功后,使用默认默认密码登录:用户名pi,密码raspberry。系统设置请按照以下步骤尽可能减少安装磁盘空间、内存使用等。我建议花尽可能多的时间研究每个配置,使其尽可能正确。通常有几种应用配置的方法,一些配置文件和选项可能会被丢弃,因此请检查产品文档以确保您没有应用过时的配置。运行raspi-config主要的RaspberryPi系统设置程序称为raspi-config。登录后立即运行:#raspi-configRaspberryPi配置主窗口它会弹出一个选项来扩展根文件系统以使用存储卡上的所有可用空间。选择此选项后,重新启动并重新登录。使用df命令验证存储卡的总容量是否已用完:#df-h如果需要设置其他选项,请再次运行raspi-config。其中一些可以根据您的喜好和配置进行更改。仔细检查所有这些选项以确保没有遗漏任何内容。为了获得最佳性能,我建议进行以下调整。(我跳过了一些我们没有做任何改变的选项。)系统选项:在这里你可以设置主机名,最好是完全限定的域名(FQDN)。您也可以在此处更改密码,我们始终强烈建议您这样做。接口选项接口选项:启用SSH服务。性能选项性能选项:将GPU内存减少到最低值(16MB)。本地化选项本地化选项:选择您的时区、位置、键盘类型。Advancedoptions高级选项:这个选项包括扩展根文件系统的选项。如果您没有在上面展开,请务必在此处进行。这样您就可以访问存储卡上的所有可用空间。UpdateUpdate:进入update选项会立即检查raspi-config工具是否更新。如果有更新可用,它将被下载并应用,并且raspi-config将在几秒钟后重新启动。在raspi-config中完成这些配置后,选择“完成”退出该工具。手动配置我还建议其他几项更改,所有这些都需要编辑某种配置文件以手动更改设置。设置静态IP地址通常,最好使用静态IP地址设置您的服务器。使用ip命令验证网络接口并设置IP地址和默认网关(路由器)和域名服务(DNS)地址:#iplink1:lo:mtu65536qdiscnoqueuestateUNKNOWNmodeDEFAULT组默认qlen1000链接/环回00:00:00:00:00:00brd00:00:00:00:00:002:eth0:mtu1500qdiscpfifo_faststateUPmodeDEFAULTgroupdefaultqlen1000link/etherb8:27:eb:48:3f:46brdff:ff:ff:ff:ff:ff您还需要知道您的默认网关和一个或多个DNS服务器地址。将此信息添加到/etc/dhcpcd.conf配置文件(我强烈建议在进行更改之前备份此文件):#cd/etc#cp-adhcpcd.confdhcpcd.conf.original编辑文件如下:#vidhcpcd.conf#staticIPconfiguration:interfaceeth0staticip_address=192.168.1.5/24staticrouters=192.168.1.1staticdomain_name_servers=192.168.1.3192.168.1.4禁用IPv6协议除非你有特定需要使用IPv6,否则你可以更喜欢禁用它。为此,您可以创建两个新文件,其中包含指示Linux内核不使用IPv6的一行。首先,创建/etc/sysctl.d/disable-ipv6.conf文件,其中包含一行指令:#cd/etc/sysctl.d#echo"net.ipv6.conf.all.disable_ipv6=1">disable-ipv6。conf然后创建/etc/modprobe.d/blacklist-ipv6.conf文件包含一行指令:#cd/etc/modprobe.d#echo"blacklistipv6">blacklist-ipv6.conf关闭Wi-Fi、蓝牙和audiomine服务器具体使用不需要蓝牙和音频,同时通过以太网连接,不使用无线(Wi-Fi)。除非您打算使用它们,否则请按照以下步骤将其关闭。对/boot/config.txt文件进行以下更改(同样,我建议备份此文件):#cd/boot#cp-aconfig.txtconfig.txt.original在底部添加以下两个指令禁用蓝牙和Wi-Fi:dtoverlay=disable-btdtoverlay=disable-wifi这些echo命令可以完成:#cd/boot#echo"dtoverlay=disable-bt">>config.txt#echo"dtoverlay=disable-wifi">>config.txt要关闭音频,将dtparam=audio的参数更改为off。你可以用一个简短的sed命令来完成:#sed-i'/dtparam=audio/cdtparam=audio=off'config.txt最后一步是禁用Wi-Fi服务,使用systemctlmask命令来操作:systemctlmaskwpa_supplicant.service如果你不需要它们也禁用其他服务:禁用调制解调器服务:systemctldisablehciuartdisableAvahidaemon:systemctldisableavahi-daemon.service最后一步检查你的内存使用情况:#free-h我很震惊:我的系统只使用了30MB的内存。创建个人帐户:建议为将登录此服务器的个人创建用户帐户。您可以将他们分配给sudo组以允许他们运行管理命令。例如,创建一个用户名为George的帐户。#addusergeorge#usermod-a-Gadm,sudo,usersgeorge进行更新:这是重要的一步。应用更新以获得RaspberryPiOS的最新修复。#aptupdate#aptfull-upgradeReboot:重启你的新服务器是个好主意:#systemctlreboot`并远程监控您的服务器。我最近写了一篇关于开始使用Cockpit的文章。使用此命令安装它#aptinstallcockpit现在我的RaspberryPi服务器已准备好托管服务器,我可以将它用作Web服务器、VPN服务器、像Minetest这样的游戏服务器,或者像我一样使用基于Pi的Hole的广告拦截器。让旧硬件保持活力无论您拥有什么硬件,仔细缩小和控制您的操作系统和软件包都可以使您的系统资源使用率保持在较低水平,这样您就可以充分利用它。这还通过减少试图利用漏洞的潜在恶意行为者可用的服务和软件包的数量来提高安全性。因此,在您丢弃旧硬件之前,请考虑您可以继续使用它的可能性。