如何使用 Raspberry Pi 设置个人 Web 服务器

734 位读者喜欢这篇文章。
How to use Python to hack your Eclipse IDE

Opensource.com

个人 Web 服务器就是“云”, 只不过“云”的所有权和控制权在你手中,而不是大型公司。

拥有一个小小的云有很多好处,包括自定义、免费存储、免费互联网服务、进入开源软件的途径、高质量的安全性、对内容的完全控制、快速更改的能力、代码实验场所等等。 大多数这些好处是无法衡量的,但在经济上,这些好处每月可以为您节省超过 100 美元。

Raspberry Pi as a web server

Raspberry Pi 作为 Web 服务器,作者 Raspberry Pi Guy,CC-BY-SA 4.0

我本可以使用 AWS,但我更喜欢完全的自由、对安全性的完全控制以及学习事物的构建方式。

 

  • 自主 Web 托管:无需 BlueHost 或 DreamHost
  • 云存储:无需 Dropbox、Box、Google Drive、Microsoft Azure、iCloud 或 AWS
  • 本地安全
  • HTTPS:Let’s Encrypt
  • 分析:Google
  • OpenVPN:不需要私人互联网访问(估计每月 7 美元)

我使用的东西

  • Raspberry Pi 3 Model B
  • MicroSD 卡(建议 32GB,Raspberry Pi 兼容 SD 卡
  • USB microSD 读卡器
  • 以太网线
  • 连接到 Wi-Fi 的路由器
  • Raspberry Pi 外壳
  • Amazon Basics MicroUSB 数据线
  • Apple 墙壁充电器
  • USB 鼠标
  • USB 键盘
  • HDMI 数据线
  • 显示器(带 HDMI 输入)
  • MacBook Pro

步骤 1:设置 Raspberry Pi

下载最新版本的 Raspbian(Raspberry Pi 操作系统)。Raspbian Jessie ZIP 版本是理想的选择 [1]。 解压或提取下载的文件。 将其复制到 SD 卡上。Pi Filler 使此过程变得容易。下载 Pi Filer 1.3 或最新版本。 解压或提取下载的文件并打开它。 您应该会看到此提示

Pi Filler prompt

确保尚未插入 USB 读卡器。 如果已插入,请弹出。 单击“继续”继续。 应该会出现文件资源管理器。 从您的 Mac 或 PC 上找到未压缩的 Raspberry Pi 操作系统文件并选择它。 您应该会看到另一个提示,如下图所示

USB card reader prompt

将 MicroSD 卡(建议 32GB,最低 16GB)插入 USB MicroSD 读卡器。 然后将 USB 读卡器插入 Mac 或 PC。 您可以将 SD 卡重命名为“Raspberry”以将其与其他卡区分开来。 单击“继续”。 确保 SD 卡为空。 Pi Filler 将在运行时擦除 所有以前的存储。 如果您需要备份卡,请立即执行此操作。 当您准备好继续时,Raspbian 操作系统将被写入 SD 卡。 这应该需要一到三分钟。 写入完成后,弹出 USB 读卡器,取出 SD 卡,然后将其插入 Raspberry Pi SD 卡插槽。 将电源线插入墙壁,为 Raspberry Pi 供电。 它应该开始启动。 Raspberry Pi 默认登录名是

用户名:pi

密码:raspberry

当 Raspberry Pi 首次完成启动后,应该会出现一个名为“Setup Options”(设置选项)的配置屏幕,如下图 [2] 所示

Raspberry Pi software configuration setup

选择“Expand Filesystem”(扩展文件系统)选项并按 Enter 键 [3]。 此外,我建议选择第二个选项“Change User Password”(更改用户密码)。 这对于安全很重要。 它还可以个性化您的 Raspberry Pi。

(注意:为了增加额外的安全层,请安装 fail2ban。 Fail2Ban 阻止来自互联网的可疑请求。 例如,如果尝试猜测密码的次数过多,它将阻止该 IP 地址。 可以通过在终端中键入以下内容来安装它:$ sudo apt-get install fail2ban

在设置选项列表中选择第三个选项“Enable Boot To Desktop/Scratch”(启用启动到桌面/Scratch)并按 Enter 键。 它将带您到另一个窗口,标题为“Choose boot option”(选择启动选项),如下图所示。

Choose boot option

在“Choose boot option”(选择启动选项)窗口中,选择第二个选项“Desktop log in as user 'pi' at the graphical desktop”(在图形桌面以用户“pi”身份登录桌面),然后按 Enter 按钮 [4]。 完成此操作后,您将被带回到“Setup Options”(设置选项)页面。 如果没有,请选择此窗口底部的“OK”(确定)按钮,您将被带回到上一个窗口。

完成这两个步骤后,选择页面底部的“Finish”(完成)按钮,它应该会自动重启。 如果没有,请在终端中使用以下命令重启。

$ sudo reboot

从上一步重启后,如果一切顺利,您最终将进入类似于下图的桌面。

Raspberry Pi desktop

进入桌面后,打开终端并输入以下命令以更新 Raspberry Pi 的固件。

$ sudo apt-get update

$ sudo apt-get upgrade -y

$ sudo apt-get dist-upgrade -y

$ sudo rpi-update

这可能需要几分钟时间。 现在 Raspberry Pi 已更新并正在运行。

步骤 2:配置 Raspberry Pi

SSH,即 Secure Shell(安全外壳),是一种加密网络协议,可让您安全地在计算机和 Raspberry Pi 之间传输数据。 您可以从 Mac 的命令行控制 Raspberry Pi,而无需显示器或键盘。

要使用 SSH,首先,您需要 Pi 的 IP 地址。 打开终端并键入

$ sudo ifconfig

如果您使用的是以太网,请查看“eth0”部分。 如果您使用的是 Wi-Fi,请查看“wlan0”部分。

找到“inet addr”,后跟 IP 地址——类似于 192.168.1.115,这是一个常见的默认 IP,我将在本文的其余部分中使用它。

有了这个地址,打开终端并键入

$ ssh pi@192.168.1.115

有关 PC 上的 SSH,请参见脚注 [5]。

当提示输入密码时,输入默认密码“raspberry”,除非您更改了密码。

您现在已通过 SSH 登录。

远程桌面

有时,使用 GUI(图形用户界面)比命令行更容易。 在 Raspberry Pi 的命令行(使用 SSH)中键入

$ sudo apt-get install xrdp

Xrdp 支持 Mac 和 PC 的 Microsoft 远程桌面客户端。

在 Mac 上,导航到 App Store 并搜索“Microsoft Remote Desktop”。 下载它。(对于 PC,请参见脚注 [6]。)

安装后,在您的 Mac 上搜索名为“Microsoft Remote Desktop”的程序。 打开它。 您应该看到这个

Microsoft Remote Desktop

图片来源 Raspberry Pi Guy,CC BY-SA 4.0

 

单击“新建”以设置远程连接。 按照下图所示填写空白。

 

Setting up a remote connection

图片来源 Raspberry Pi Guy,CC BY-SA 4.0

通过退出“新建”窗口来保存它。

您现在应该在“我的桌面”下看到列出的远程连接。 双击它。

短暂加载后,您应该在屏幕上的窗口中看到您的 Raspberry Pi 桌面,如下所示

Raspberry Pi desktop

完美。 现在,您不需要单独的鼠标、键盘或显示器来控制 Pi。 这是一个轻量级得多的 设置。

静态本地 IP 地址

有时本地 IP 地址 192.168.1.115 会更改。 我们需要使其静态。 键入

$ sudo ifconfig

从“eth0”部分或“wlan0”部分记下“inet addr”(Pi 的当前 IP)、“bcast”(广播 IP 范围)和“mask”(子网掩码地址)。 然后,键入

$ netstat -nr

记下“destination”(目标)和“gateway/network”(网关/网络)。

Setting up a local IP address

累积记录应如下所示

net address 192.168.1.115
bcast 192.168.1.255
mask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.1
destination 192.168.1.0

有了这些信息,您可以轻松设置静态内部 IP。 键入

$ sudo nano /etc/dhcpcd.conf

不要使用 /etc/network/interfaces

然后您需要做的就是将其附加到文件底部,替换为您想要的正确 IP 地址。

interface eth0
static ip_address=192.168.1.115
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

设置静态内部 IP 地址后,使用以下命令重启 Raspberry Pi

$ sudo reboot

重启后,从终端键入

$ sudo ifconfig

您的新静态设置应出现在您的 Raspberry Pi 上。

静态全局 IP 地址

如果您的 ISP(互联网服务提供商)已为您提供静态外部 IP 地址,您可以跳到端口转发部分。 如果没有,请继续阅读。

您已设置了 SSH、远程桌面和静态内部 IP 地址,因此现在本地网络内的计算机将知道在哪里找到 Pi。 但是您仍然无法从本地 Wi-Fi 网络外部访问您的 Raspberry Pi。 您需要让您的 Raspberry Pi 可以从互联网上的任何地方公开访问。 这需要静态外部 IP 地址 [7]。

最初这可能是一个敏感的过程。 致电您的 ISP 并请求静态外部(有时称为静态全局)IP 地址。 ISP 掌握着决策权,因此我会非常谨慎地与他们打交道。 他们可能会拒绝您的静态外部 IP 地址请求。 如果他们这样做,您不能责怪 ISP,因为这种类型的请求存在法律和运营风险。 他们尤其不希望客户运行中型或大型互联网服务。 他们可能会明确询问您为什么需要静态外部 IP 地址。 最好诚实地告诉他们您计划托管一个低流量的个人网站或类似的非营利性互联网服务。 如果一切顺利,他们应该会打开一个工单,并在未来一两周内给您回电,告知您地址。

端口转发

您的 ISP 分配的这个新获得的静态全局 IP 地址用于访问路由器。 Raspberry Pi 仍然无法访问。 您需要设置端口转发才能专门访问 Raspberry Pi。

端口是信息在互联网上Virtual pathways(虚拟通道)。 有时您需要转发端口才能使计算机(如 Raspberry Pi)可供互联网访问,因为它位于网络路由器之后。 VollmilchTV 制作的名为什么是 TCP/IP、端口、路由、内联网、防火墙、互联网的 YouTube 视频帮助我直观地理解了端口。

端口转发可用于 Raspberry Pi Web 服务器等项目,或 VoIP 或点对点下载等应用程序。 有 65,000 多个端口可供选择,因此您可以为您构建的每个互联网应用程序分配不同的端口。

设置端口转发的方式可能取决于您的路由器。 如果您有 Linksys 路由器,Gabriel Ramirez 制作的名为如何使用 Apache Ubuntu 服务器上线的 YouTube 视频解释了如何设置它。 如果您没有 Linksys 路由器,请阅读路由器随附的文档,以便自定义和定义要转发的端口。

您将需要为 SSH 以及远程桌面进行端口转发。

一旦您认为已配置端口转发,请通过键入以下内容来检查它是否正在通过 SSH 工作

$ ssh pi@your_global_ip_address

它应该提示您输入密码。

检查端口转发是否也适用于远程桌面。 打开 Microsoft 远程桌面。 您之前的远程连接设置应该已保存,但您需要使用静态外部 IP 地址(例如,195.198.227.116)而不是静态内部地址(例如,192.168.1.115)更新“PC 名称”字段。

现在,尝试通过远程桌面连接。 它应该短暂加载并到达 Pi 的桌面。

Raspberry Pi desktop

做得好。 Raspberry Pi 现在可以从互联网访问,并为高级项目做好准备。

作为奖励选项,您可以维护与 Pi 的两个远程连接。 一个通过互联网,另一个通过 LAN(局域网)。 设置很简单。 在 Microsoft 远程桌面中,保留一个名为“Pi Internet”的远程连接,另一个名为“Pi Local”。 将 Pi Internet 的“PC 名称”配置为静态外部 IP 地址,例如 195.198.227.116。 将 Pi Local 的“PC 名称”配置为静态内部 IP 地址,例如 192.168.1.115。 现在,您可以选择全局或本地连接。

如果您还没有看过,请观看 如何使用 Apache Ubuntu 服务器上线,作者 Gabriel Ramirez,作为过渡到项目 2 的教程。 它将向您展示您项目背后的技术架构。 在我们的 例子中,您使用的是 Raspberry Pi 而不是 Ubuntu 服务器。 动态 DNS 位于域名公司和您的路由器之间,Ramirez 省略了这一点。 除了这种细微差别之外,该视频在直观地解释系统如何工作方面是准确的。 您可能会注意到本教程涵盖了 Raspberry Pi 设置和端口转发,这是服务器端或后端。 有关更高级的项目,请参阅原始来源, 涵盖域名、动态 DNS、Jekyll(静态 HTML 生成器)和 Apache(Web 托管),这是客户端或前端。

脚注

[1] 我不建议从 NOOBS 操作系统开始。 我更喜欢从功能齐全的 Raspbian Jessie 操作系统开始。

[2] 如果“设置选项”没有弹出,您可以随时通过打开终端并执行此命令来找到它

$ sudo-raspi-config

[3] 我们这样做是为了充分利用 SD 卡上的所有空间作为完整分区。 所有这些操作都是扩展操作系统以适应 SD 卡上的整个 空间,然后可以用作 Raspberry Pi 的存储内存。

[4] 我们这样做是因为我们想要启动到熟悉的 桌面环境。 如果我们不执行此步骤,Raspberry Pi 每次都会启动到没有 GUI 的终端。

[5]

PuTTY configuration

下载并运行 PuTTY 或另一个适用于 Windows 的 SSH 客户端。 在字段中输入您的 IP 地址,如上面的屏幕截图所示。 将默认端口保持为 22。 按 Enter 键,PuTTY 将打开一个终端窗口,该窗口将提示您输入用户名和密码。 填写这些信息,然后开始在您的 Pi 上远程工作。

[6] 如果尚未安装,请下载 Microsoft 远程桌面。 在您的计算机上搜索 Microsoft 远程桌面。 运行它。 在提示时输入 IP 地址。 接下来,将弹出一个 xrdp 窗口,提示您输入用户名和密码。

[7] 路由器具有动态分配的外部 IP 地址,因此从理论上讲,可以暂时从互联网访问它,但您需要 ISP 的帮助才能使其永久可访问。 如果 不是这种情况,您将 需要在每次使用时重新配置远程连接。

有关原始来源,请访问 Mitchell McLaughlin 的全栈计算机项目

标签

22 条评论

小的代码错误:在脚注中,我认为“sudo-rasps-config”应该是“sudo raspi-config”。

除此之外,很高兴看到一个真正深入到每个必需步骤的教程,非常感谢。

感谢您指出! 我进去修改了错别字。

回复 ,作者 agistras (未验证)

在 Windows 上,在下载安装任何东西之前,在开始菜单搜索栏中键入 mstsc
如果已安装,它将显示出来,否则请按照上面列出的步骤操作

我可以使用旧的 rPi 2 吗?

您应该可以使用。 只要您运行的软件与文章中相同,我认为您不应该遇到任何问题。 如果一切顺利,请回复评论。

回复 ,作者 Lloyd (未验证)

使用 XRDP/Microsoft 而不是预安装的 VNC 有什么好处吗? 它们现在冲突了,所以为了能够使用 xrdp,我必须删除/重新配置...

如果我没记错的话,我使用 XRDP 仅仅是因为配置更用户友好。 但是,如您所知,VNC 也非常棒,因此请随时方便使用。 如果您最终配置了 VNC 并且不介意展示文档,我可以将其附加在脚注中。 只需给我发送电子邮件至 mitch(dot)mclaughlin1(at)gmail(dot)com。

回复 ,作者 Matt R (未验证)

嗨 Mitchell,虽然技术上准确,但这绝对是一个糟糕的主意! 在互联网上放置 Linux 服务器(实际上就是 Raspberry Pi),甚至没有基本的安全加固,简直是灾难的根源。 您会在 30 秒内看到端口扫描(这将很快识别您转发的端口),并在五分钟内看到使用默认用户名和密码的入侵尝试。 我猜想,在遵循本文 24 小时内,您的 Pi 将被某个地方的黑客拥有,并用于散布垃圾邮件和参与 DDOS 攻击。

黑客一旦进入您的 Pi,也将完全访问您的家庭网络,使您容易受到中间人攻击、密码嗅探以及对您和互联网其余部分的所有其他攻击。

如果这一切听起来都很夸张,请原谅 - 但这就是现实。

如果您想这样做,并且您已准备好接受您可能会在某个时候有一些坏人在您的 Pi 周围游荡的事实,那么您需要做一些基本的事情 - 首先您必须更改所有默认密码,实际上您应该删除“pi”用户并将其替换为另一个用户名。 您还应该删除该用户的“sudo”功能。 实际上,您根本不应该允许来自互联网的 SSH 或 RDP 接口。 您应该使用防火墙(Pi 上的软件防火墙或互联网路由器上的防火墙)在 Pi 周围创建保护,理想情况下是在互联网和 Pi 之间,以及 Pi 和您家庭网络的其余部分之间(所谓的 DMZ)。

认真地说,任何阅读本文的人 - 如果没有充分理解至少互联网安全的基本原则,请不要这样做。 这不会有好结果。

嗨 Paul,感谢您周到而详尽的回复。 安全性是任何系统的基础,没有安全性,您将一无所有,正如您所暗示的那样。 但是,我很高兴现在进行此讨论,我将尽力解决您提出的担忧问题。

像每个项目一样,它带来了某些自由,而自由带来了责任。 这个项目也不例外。 公平地说,本教程(如果不够清楚的话)旨在成为设置个人 Web 服务器的第一步,而不是完全可扩展的系统。 如果我有自主权将我的整个个人 Web 服务器设置包含在本文中,我会这样做。 我在我的博客上后面的教程中深入探讨了更复杂的个人服务器安全技术,该博客是本项目的主要所在地:https://mitchellmclaughlin.com/server.html,如原始文章中所链接。

我立即可以指出的是,在本文中的首次启动后,明确指出

“选择“Expand Filesystem”(扩展文件系统)选项并按 Enter 键 [3]。 此外,我建议选择第二个选项“Change User Password”(更改用户密码)。 这对于安全很重要。 它还可以个性化您的 Raspberry Pi。”

在设备连接到互联网之前,会进行此安全密码更改。 因此,在不太可能发生的情况下,一旦进入互联网,服务器上立即发起暴力破解攻击,强密码足以消除任何立即入侵。 现在,我们可以讨论强密码的外观和内容。 但是,这超出了本教程的直接步骤。 我会参考:http://www.usatoday.com/story/tech/columnist/komando/2015/05/15/strong-…

出于简洁考虑,我没有在文章中提及,但我很想提及的是安装“fail2ban”。 Fail2Ban 阻止来自互联网的可疑请求。 例如,如果尝试猜测密码的次数过多,它将阻止该 IP 地址。 对于阅读本文的任何人,我建议安装此软件包,我可以修改原始文章以包含它。 可以通过在终端中键入以下内容来安装它

$ sudo apt-get install fail2ban

我将重申,更改默认密码和安装 Fail2Ban 是某人为服务器的基本安全可以做的最起码的事情。 不这样做就是承担风险。

与往常一样,保持操作系统、应用程序和软件包的最新状态对于安全性来说是一种良好的做法。 我在我的博客上解释了这一点,但值得重复。 这将防止任何最近修复的错误被利用。 为了确保系统是最新的,请在终端中键入

$ sudo apt-get update
$ sudo apt-get upgrade

Raspbian 操作系统(Jessie 和 PIXEL)是 Linux Debian 的变体,而 Debian 预装了防火墙。 如果我没记错的话,ufw(简单防火墙)和 iptables(另一个防火墙软件包)都预装在 Debian 上。 在我博客上稍后更高级的教程中,您会找到配置 iptables 和 Apache(Web 服务器软件)的明确说明,其中写道

$ cd /etc/network
$ sudo iptables -A INPUT -p tcp - -sport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp - -sport 443 -j ACCEPT
$ sudo iptables -L
$ sudo iptables-save

然后,我还分享了一个链接,以进一步教育和允许自定义 iptables 防火墙。https://fedoraproject.org/wiki/How_to_edit_iptables_rules

我特意没有在本回复中提到的一件事是双因素身份验证。 这是保护个人 Web 服务器的下一个逻辑步骤,但是,我尚未在 Web 上找到正确实施它的文档。 如果我找到它,我将在此处更新它。

我想进一步具体地解决您提出的两个评论。

您提到,“首先,您必须更改所有默认密码,实际上您应该删除“pi”用户并将其替换为另一个用户名。” 正如我所说,我建议将其作为安全性的最低要求。 但是,我不能强迫任何读者做他们不想做的事情。 因此,这是可自由决定的。

您提到,“您还应该删除该用户的“sudo”功能。” 让我详细说明一下。 这样做更安全,但我将此决定留给用户。 有些人更喜欢使用 sudo 的便利性,而不是增加安全性,即使这可能不是最佳实践。

权限和 SSH 密钥可以提高安全性,但我不会在本回复中进一步讨论这些主题。

我认为重要的是退后一步,牢记大局。 安全性非常重要,是的。 但就个人而言,我告诫自己不要过度保护系统。 系统管理员变得过度偏执或无意中将自己拒之门外的程度可能同样成问题(不幸的是,我经历过,这并不有趣)。 在这种极端情况下,安全性可能会变得令人瘫痪,我不提倡这样做。 平衡安全原则和灵活性很困难,但我倾向于将其留给每个人。 换句话说,我们正在辩论哲学,但我认为很明显我们在事实上达成了一致。

我也希望您对关于安全的恐吓宣传保持敏感。 对于有针对性的攻击,安全性可能是一个复杂的问题,但用复杂的语言与普通用户交谈可能是不利的。 对于任何阅读本文的人,我想说,Web 上的基本安全性并不是非常复杂。 采取基本步骤,例如设置强密码,将防止大多数入侵,这应该是目标。

最后,我认为我们在很多方面都达成了一致 Paul。 如果每个人都能从讨论中吸取一些教训,那就是像您一样认真对待安全性是值得效仿的。

有关基本 Web 服务器安全性的更多阅读,请参阅:https://www.codelitt.com/blog/my-first-10-minutes-on-a-server-primer-fo…

回复 ,作者 Paul Harris (未验证)

感谢 Mitchell 的全面回复。 我认为我们从不同角度看待这个问题的一个原因是,您将这篇文章视为更广泛主题的一部分;即您的博客。 我,以及我怀疑的许多其他人,是通过 opensource.com 新闻通讯中的链接偶然发现这篇文章的,因此没有任何您提到的背景信息。

您提供的进一步保护 Raspberry Pi 的建议很好,而且是常识,但在我看来,将这篇文章作为独立文章阅读时,应该明确提及这些建议,即使只是一句话。

如果您考虑一下将点击阅读您的文章的人,他们可能不是专家; 更可能是初学者或中级水平,因此他们很可能正在逐步遵循本指南,以使他们的 Pi 连接到互联网。 因此,仅仅建议更改默认密码就淡化了这样做的关键性,尤其是因为读者不知道为什么这样做很重要,以及如果不这样做会发生什么(将会发生)。

至于您的最后几点,不幸的是我无法同意。 如果一个人处于安全的环境中,那么计算绝对应该是有趣的,否则我就不会写任何评论。 即使您处于面向互联网的“云”或物理/虚拟服务器环境中,未能正确保护服务器的影响也是您服务器上的数据和操作系统被没收,但影响是可控的。 但是,在互联网和您的家庭网络之间放置不安全的桥梁是不同的 - 您所有的设备现在都容易受到攻击和渗透。

此外,受损的服务器(无论是通过社会工程、漏洞、错误还是不称职的系统管理员)对于互联网的其余部分来说是一个主要问题。 有些团体通过查找不安全的互联网节点并使用它们发起攻击或将其出租给他人来赚取大量资金。 我坚信我们都对自己的行为负责,无论是在现实生活中还是在网上。 如果您有能力创建互联网节点,您就应该有能力保护它。 我仍然持有的担忧是,您将前者作为教程,但没有将其与后者联系起来(以单篇文章的形式)。

回复 ,作者 raspberrypiguy

这篇文章不仅仅让我感到紧张。 其中提供的建议在很多层面上都是如此错误,以至于我很震惊 Open Source 允许在未经安全专家同行评审的情况下发布它。

Paul 在强调其中一些错误方面做得非常出色。 除了 Paul 的评论之外,我还将添加另一个被忽略的关键因素。 最大程度地减少计算机安全威胁的一个关键原则是从任何面向互联网的服务器中消除_所有_不必要的软件。 因此,启动到图形界面并提倡使用远程桌面 UI 进行管理,坦率地说,这是一个糟糕的主意,正是因为它引入了如此多额外的、不必要的软件。 Windows 服务器管理员即使在可以帮助的情况下也不再这样做了。

真的,如果有人想探索在互联网上搭建服务器,他们最好通过付费给知道如何安全管理服务器的供应商来做到这一点。 然后他们可以研究供应商是如何做的,并且他们有一个专业的资源可以在出现问题时联系。

如果有人只是想了解如何管理服务器,那么他们应该只使用面向内部的硬件来做到这一点。 在任何情况下,任何新手都不应在没有首先学习本文未涵盖的所有计算机安全难题的基础知识的情况下搭建面向互联网的服务器。

回复 ,作者 Paul Harris (未验证)

感谢 Rock 的评论。 我在上面对 Paul 的回复中以类似的逻辑回应了。 但是,如果您愿意,本教程类似于从头开始建造房屋。 它构建了房屋的框架,是房屋的骨架。 没有人暗示安全门锁、安全车库门和关于安全的基本知识是次要的。 我建议,实际上,家庭安全无法在建造基础设施之前实施。 在建造基础设施和为房屋配备豪华家具之间的某个时间点,*应该*安装安全门锁。

我认为您的逻辑在某种程度上可以与以下情况相提并论:好吧,除非整个院子是完美制造、有凝聚力、修剪整齐且健康的绿色,否则不允许普通房主拥有院子。 我的回应是,但是,如果不先播种,一个人如何从头开始种植美丽的天然草坪? 当初始环境不利于或不接受生长和冒险阶段时,它又如何成长为成熟? 如果您的回答是“不要种植,雇佣专业人士”。 我会说,不够好。 我会解释原因。 一开始我从没想过要种植它,但专业人士骗了我,我再也无法信任他们了。 因此,我得出了自己做的下一个逻辑选择。

简而言之,我认为您的担忧是合理的,我只是想问您是否也对其他观点持开放态度。

回复 ,作者 sgtrock (未验证)

Jesse 是 Debian 的一个版本,PIXEL 是像 gnome 或 kde 这样的桌面环境。

回复 ,作者 raspberrypiguy

除非 RPi 工程师建议您这样做,否则不建议使用 rpi-update,主要用于新的硬件支持。 它将更新到最新且通常是不稳定的 Raspbian 版本,并且很可能某些东西会停止工作。 坚持使用 dist-upgrade 以获得最新的稳定版本。

这可能是升级的缺点,但公平地说,升级也可以清除可能被利用的安全漏洞。

回复 ,评论来自 Hans Otten (未验证)

建议普通用户按照以下步骤进行更新,包括安全更新、操作系统修复以及最新的受支持和测试过的更新

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

rpi-update 不建议使用,它会获取最新、前沿、不稳定、不受支持、仍在开发中的 Raspbian 版本,很可能导致系统崩溃。 因此,我认为你的方法是一个糟糕的建议。

回复 ,评论来自 raspberrypiguy

XRDP 可以工作,但需要先移除默认安装并运行的 VNC。

大家好,我有一个问题,因为我的 cgi 二进制文件是为 intel 平台编译的,而且我没有源代码。如何在 raperberry 上运行 intel 二进制文件。谢谢 Alisson

我想说,尝试使用 Raspbian 操作系统,否则事情可能会变得棘手。 如果你不能这样做,也许可以尝试移除 cgi 包。

关于静态外部 IP,我使用 No-IP 提供的免费服务,将域名指向我在家的动态 IP 地址。我的路由器上运行着一个守护进程,定期更新域名的 A 记录,这样我就可以通过一个已知的实体访问我的家庭网络。 DuckDNS 和其他服务也可用。 我这样做是因为我的 ISP 对静态地址收取额外费用。

非常聪明的变通方法。 感谢您的分享,我看看是否可以添加和更新这个技巧。

回复 ,评论来自 Andrew Heath

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

你是开源新手吗?

浏览我们的资源集合。

© . All rights reserved.