Linux 网络 ELI5 — 第 1 部分,网络和接口

admin 2024年5月4日19:20:28评论9 views字数 4880阅读16分16秒阅读模式

Linux 网络 ELI5 — 第 1 部分,网络和接口

从我的 Mac(左)ping我的 Raspberry Pi(右)——LAN 连接

众所周知,Linux是一个非常强大的操作系统。即使它不像 Windows 或 macOS 那样受欢迎,它的重要性和功能也不是开玩笑的。哎呀,它甚至可能是有史以来最重要的操作系统(取决于你问的人),这是有充分理由的。

Linux 网络 ELI5 — 第 1 部分,网络和接口

每天上网的时间 — 来源:oberlo.com

请看上面的可视化数据。您可以清楚地看到,我们在互联网上花费了很多时间。这意味着,我们正在与世界各地的大量服务器进行交互。猜猜这些服务器运行的是什么操作系统?Linux的!他们都在使用它的网络工具。

Linux 网络 ELI5 — 第 1 部分,网络和接口

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • windows

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • windows()

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • USB()

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • ()

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • ios

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • windbg

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • ()

  • Linux 网络 ELI5 — 第 1 部分,网络和接口Linux 网络 ELI5 — 第 1 部分,网络和接口Linux 网络 ELI5 — 第 1 部分,网络和接口

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

  • Linux 网络 ELI5 — 第 1 部分,网络和接口

好吧,基本上我要说的是,Linux 网络非常重要。特别是如果你是一个开发人员。

在这个由 4 部分组成的系列中,我将尝试 ELI5 一些基本的网络意识形态、Linux 网络、网络工具、配置。最后一部分将介绍常见用例。我们将使用从本文中获得的信息一起在云上部署 Minecraft 和 HTTP 服务器。

请注意,本文不是关于 Linux 网络及其内部结构的高级主题。对于那些对网络感到好奇的人来说,这只是一个 ELI5

顶级域名;

Networking: Communication that happens between two or more individuals.
Networking (computers): Computers talking to each other.

Network: A collection of computers that are connected to each other
Local Networks: A type of network (small size & distance) (ex. home)
Private Networks:
A type of network (medium/large size & distance) (ex. company)
Public Networks:
A type of network (large size & open to everyone) (ex. internet)

Network Interface: Hardware device that connects computers to network

lshw: Command for displaying hardware devices in Linux (ex. network)
ifconfig: Command for configuring network interfaces in Linux (legacy)
ip: Command for configuring network interfaces and more in Linux (modern)

设置

由于网络需要多个设备相互连接,因此我设置了一个示例网络。这样我就可以提供更好的视觉示例,并在这段旅程中提供帮助。

Linux 网络 ELI5 — 第 1 部分,网络和接口

My Basic Network Setup

我有两台本地计算机通过我的家庭路由器相互连接。一台机器是运行 macOS Ventura 13.1 的 Apple Macbook Pro,另一台是我忠实的 Raspberry Pi 4b,运行 Ubuntu Server 22.04。

我还有一台运行 Ubuntu Server 22.04 的云机器,与我的 Raspberry 相同。出于隐私和安全考虑,我隐藏了它的公共 IP 地址。

在整个旅程中,我将展示使用这些机器的示例。最后,我们将一起在我的云服务器上使用 Flask 部署一个 Minecraft 服务器和一个基本的 HTTP 服务器。

什么是网络?

就像在人际关系中一样,网络基本上意味着与他人交谈。它是发生在一个或多个人之间的交流/关系。然而,在我们的例子中,不是人类,而是计算机在进行交谈和交流。

当计算机相互通信时,我们称之为“网络”。当许多计算机聚集在一起进行通信时,它们就会形成一个“网络”。我们可以将“网络”比作群聊。您可以拥有家庭组、学校组或更大的 Discord 游戏组。

Linux 网络 ELI5 — 第 1 部分,网络和接口

群聊基本上是一个本地网络——来源:macrumors.com

现在,我们有不同类型的网络,它们具有不同的规模和目的。最受欢迎的是:本地网络、专用网络和公共网络。让我们简要回顾一下它们。

本地网络

这些类型的网络规模相对较小,由彼此距离很近的设备组成。例如,连接笔记本电脑、手机、电视、打印机、Amazon Alexa 等的家庭网络。这些设备可以通过路由器和交换机等设备相互连接,形成所谓的“本地网络”。

有时,“本地网络”也称为局域网 (LAN)。

Linux 网络 ELI5 — 第 1 部分,网络和接口

典型的局域网派对(美好时光)——来源:dazeddigital.com

当您和您的朋友聚在一起参加局域网派对玩《使命召唤》时,您实际上是在使用交换机和路由器等设备形成本地网络。

专用网络

假设你有一家公司。你有大量的计算机和使用它们的人。作为一个好的CEO,你要把你的员工分成不同的部门,这样工程师就不做任何人力资源工作,人力资源人员也不做工程工作。您还希望将他们的计算机分开,以便只有工程师的计算机才能相互通信。这是有道理的,对吧?

现在,我们可以在工程师内部形成一个本地网络,并为人力资源人员形成另一个本地网络。然而,这一次,作为首席执行官,你想从你自己的电脑访问这些网络中的每一个。而且您还希望其中一些网络可以访问互联网,而另一些则不能。好吧,这里的事情变得有点复杂了。

解决方案是什么?专用网络。

Linux 网络 ELI5 — 第 1 部分,网络和接口

大多数公司使用专用网络来确保安全 — 来源:Shridgar Grupta 的 medium.com

专用网络基本上是相互连接的多个本地网络。这些类型的网络主要用于组织、公司和学校。他们尽可能地保持网络隔离(尤其是与互联网隔离),这样普通的乔就无法访问它。因此,使这种类型的网络成为“私有”网络。

考虑专用网络的另一种方式是,它们基本上是一个巨大的本地网络。

公网

想一个地方,世界各地的每个人都可以聚在一起互相交谈。当然,我们不能在物理上这样做,但我们可以使用互联网!当我们在 Reddit 上分享帖子时,世界各地的每个人都可以看到它,对吧?因此,我们基本上与每个人联系在一起。我们可以通过互联网相互交流。

Linux 网络 ELI5 — 第 1 部分,网络和接口

我们可以将公共道路与公共网络进行比较——来源:美国宇航局 medium.com

公共网络是任何人都可以随时加入的大型网络。公共网络最大的例子是互联网。我们使用的几乎所有东西(iMessage、守望先锋、Reddit、Instagram)都使用互联网的公共网络。这个网络与其他网络的区别在于它的公开性:任何人都可以加入这个网络,它是公开的。

与本地和专用网络相比,公共网络非常特殊。既然它们是公开的,就必须有组织和政府来帮助维护它。否则,互联网可能会变得混乱!

Linux 网络 ELI5 — 第 1 部分,网络和接口

最大的 ISP 之一:康卡斯特 — 来源:reuters.com

维护和“构建”公共互联网的组织被称为互联网服务提供商 (ISP)。每个 ISP 都负责构建新的网络、光纤电缆和巨型接入点 (5G LTE)。在这样做的过程中,他们正在扩大互联网(有史以来最大的公共网络)。

当然,他们不是在为慈善事业建立一个公共网络。政府允许他们到处建造电缆、网络建筑和 LTE 天线。哦,你还给他们钱来使用他们的网络......毕竟,互联网不是免费的。

网络接口

Linux 网络 ELI5 — 第 1 部分,网络和接口

无线网络设备 — 来源:ifixit.com

好吧,很好,我们有所有这些很酷的网络。但是我们怎样才能加入他们呢?因此,我们可以与帮派一起在局域网上玩 Minecraft。

首先,我们需要一个称为“网络接口”的物理网络设备。这些设备允许我们连接到物理网络。你的iPhone有一个,你的Xbox有一个,你的笔记本电脑可能不止一个。

Linux 网络 ELI5 — 第 1 部分,网络和接口

大多数现代计算机都内置了 Wi-Fi 和以太网 — 来源:msi.com

如果您在亚马逊上搜索“网络接口”,您可以看到所有不同的设备。每个网络接口都有其优点和缺点。例如;一个可能是无线的,但速度很慢,另一个是有线的,但速度很快。

大多数现代计算机/设备都有内置网络设备,例如:Wi-Fi、以太网 CAT6 和 Thunderbolt 4。

好吧,很酷。我有一个网络设备可以帮助我连接到网络。但是我可以检查它们吗?查看它们的型号、网络配置以及它们是否正常运行?

LSHW公司

此 Linux 命令用于获取有关硬件设备的信息。您几乎可以将其用于所有硬件,但我们只会将其用于网络设备。

在Linux命令下方显示所有网络设备。建议将其作为“sudo”运行。

$ sudo lsfw -class network

Linux 网络 ELI5 — 第 1 部分,网络和接口

你可以看到我的Raspbbery Pi 4b上有两个设备(接口)。查看以“*”开头的行。这些线路中的每一条都对应一个网络设备。

ifconfig

此命令显示连接到 Linux 的所有网络接口。与“lshw”相比,“ifconfig”命令提供了有关网络设备的更多网络相关信息。它带有“net-tools”软件包,可以通过“apt”、“yum”或“net-tools”安装。

以下是 ifconfig 命令的示例用法。

$ ifconfig

Linux 网络 ELI5 — 第 1 部分,网络和接口

'ifconfig' 命令输出

在这里你可以看到我的树莓派4b只有两个网络接口。名为“wlan0”的那个是我的 Wi-Fi 适配器,“lo”是我机器的本地主机。它不是真实/物理设备,而是虚拟设备。它用于操作系统内部的应用程序(我们将在第 3 部分中讨论它)。

“lshw”命令未显示“lo”,因为它不是真正的硬件设备。“ifconfig”命令未显示“以太网设备”,因为它尚未设置。

Linux 网络 ELI5 — 第 1 部分,网络和接口

“localhost”不是一个真正的网络(设备),但它就像一个!— 来源:thecodinglove.com

您可以使用“ifconfig”获得大量有用的信息。例如;设备状态、IP 地址、MAC/物理地址、发送的数据量 (TX) 和接收的数据量 (RX)。

“ifconfig”可以做很多很酷的事情。但是,我不会向它们展示,因为我们有一个“更好”的命令可供我们使用。

知识产权

这个命令就像《指环王》中的一枚戒指。它可用于许多不同的与网络相关的操作。它可以看作是“ifconfig”的上级命令。

在本文的所有部分,我将大量使用“ip”命令。所以,这非常重要;

几乎所有 Linux 计算机都默认安装了“ip”命令。因此,这是配置 Linux 网络的推荐且更好的方法。

让我们使用此命令来检查我们的网络接口。

$ ip addr show

Linux 网络 ELI5 — 第 1 部分,网络和接口

'ip addr show' 命令输出

在这里,您可以看到一个附加设备:“eth0”。“ifconfig”命令未显示此内容,因为它尚未设置。但是,“ip”会显示您的所有设备是否处于活动状态。

您的计算机可以有许多不同的网络接口。例如;一台典型的服务器支持 8-16 种不同的有线接口。运行了大量虚拟机的计算机也可以具有许多“虚拟”接口。

我的 Macbook 机器有 20 个接口!主要来自 VPN、虚拟机和 macOS 网络设置。

就像任何硬件设备一样,您可以打开和关闭任何网络接口。您应该知道,在 Linux 网络中,打开/关闭网络接口也称为启动/关闭。这基本上是一种更花哨的说法。

以下命令用于关闭/启动网络接口。

$ sudo ip link set dev <INTERFACE_NAME> up # Bring it up
$ sudo ip link set dev <INTERFACE_NAME> down # Bring it down

Linux 网络 ELI5 — 第 1 部分,网络和接口

你可以看到我可以关闭一个界面

在上图中,您可以看到“ip”命令可以使网络接口关闭(请参阅状态 UP|向下)。

我使用了一个额外的“grep”命令来突出显示设备的状态。

结束语

到目前为止,我们已经了解了网络背后的思想,如何在计算机中使用网络以及它们的类型。我们还了解了是什么让我们能够加入它们(网络接口),它们是什么,我们如何在 Linux 中检查它们并打开/关闭它们。

目前,这些信息没有太多的实际用途。在接下来的部分中,我们将学习使用这些网络接口来做一些实际的工作!

我希望你喜欢我的文章并学到一些新东西。如果您发现任何错误或错误,请告诉我。

原文始发于微信公众号(安全狗的自我修养):Linux 网络 ELI5 — 第 1 部分,网络和接口

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月4日19:20:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux 网络 ELI5 — 第 1 部分,网络和接口https://cn-sec.com/archives/2708542.html

发表评论

匿名网友 填写信息