我试图理解以下之间的关系:
- “联网”Linux 设备;和
- 位于该设备上的物理 NIC 卡(使其能够“联网”);和
- 各种以太网/Wi-Fi网络接口(
eth0
、eth1
、wlan0
等);和 - IP 地址和端口
从我收集到的来看,出现每个接口(同样,,,,等等eth0
)都被分配了自己唯一的IP。这意味着我的机器上的IP 与.eth1
wlan0
eth0
wlan1
但这与我的理解相矛盾,即网络设备作为一个整体接收整个设备的单个 IP。
那么是哪一个呢?设备是否获得所有接口使用的 1 个 IP,或者每个接口实际上都获得自己的 IP?如果每个端口都有自己的,那么什么决定了该接口上有多少个可用端口?
答案1
如果 IP 流量流经每个网络接口,则每个网络接口都将拥有自己的 IP 地址。
以大多数家庭和/或小型办公室拥有的路由器/调制解调器设备为例。
路由器的内部将有一个与您的计算机/笔记本电脑的连接 - 无论是 WiFi 还是以太网。这些地址通常位于191.168.0.0 - 192.168.255.254
或有时位于的私有地址范围内10.0.0.0 - 10.255.255.254
。您的台式机/笔记本电脑/平板电脑将连接到设备的这一侧,并拥有同一范围内的 IP 地址(但与设备不同)。
在路由器/调制解调器的外部,您将拥有一个完全独立的 IP 地址,通常由服务提供商自动分配给您的设备。这是一个可路由的地址,例如98.23.45.62
在连接时对于您的调制解调器/路由器来说是全局唯一的。
诸如此类的小型调制解调器/路由器可能会令人困惑,因为它们似乎只有一个地址 - 用户手册中引用的用于通过 Web 浏览器(例如http://192.168.0.1
)管理设备的地址 - 而它具有许多以太网端口。这是因为该设备本质上有一个标记在路由器上的网络交换机,以便将路由器的单个以太网端口拆分为多个端口并连接 WiFi 桥接器。
同时,路由器/调制解调器的外部将由服务提供商自动配置其 IP 地址,因此您可能永远不会看到它。 (类型我的 IP 地址是多少在 Google 中查找它是什么)。
图表可能会有所帮助:
+--------+
| laptop |
+--------+
+-----+ +-------------+ +--------+ | 10.0.0.2
| |98.23.45.61 | |10.0.0.1 | |-------+
| ISP |----------------+ modem/router|--------------| switch |
| | 98.23.45.62| | | |-------+
+-----+ +-------------+ +--------+ | 10.0.0.3
+---------+
| desktop |
+---------+
如您所见,调制解调器/路由器有两个 IP 地址 - 每个网络接口一个。台式机和笔记本电脑都有一个 - 在连接到路由器的网络设备上。大多数调制解调器/路由器和大多数笔记本电脑一样都具有 WiFi 和以太网连接。如果您要将以太网电缆连接到笔记本电脑,并启用和配置笔记本电脑的 WiFi,那么笔记本电脑也会有两个 IP 地址(每个设备一个),都在10.0.0.x
地址范围内。但这只会给你带来问题——不要这样做。
端口只是附加到目标 IP 地址的数字。它类似于办公室总机中的电话分机,并决定哪个服务将接收您的流量。它是一个 16 位数字,最大可能值为 65535。不过,仅使用了其中非常小的子集。有些是预先分配的知名港口例如端口 80 上的 HTTP 流量和端口 22 上的安全 shell (ssh)。仅当相关服务在设备制造商安装的设备上运行时,这些端口才会打开并侦听流量。
对于上述调制解调器路由器,端口 80 将在内部侦听,因为 Web 服务器正在运行,以便您可以使用 Web 浏览器管理设备。某些路由器还具有侦听端口 22 的 ssh 服务,以便您可以使用 ssh 客户端管理设备。他们可能会打开端口 53,因为路由器上也会运行 DNS 服务器。
您的笔记本电脑可能(希望)没有侦听端口,除非您在该设备上安装了服务。在上图中,您可以在桌面 PC 上安装 ssh 服务器,此时(并且防火墙允许)您的桌面将打开端口 22。然后,您的笔记本电脑可以通过 ssh 连接到台式机的端口 22 并登录。
因此,设备上的端口数量取决于该设备上运行的服务数量、该服务的配置以及防火墙的配置。
如果您想让 ssh 服务器在上例中的桌面上运行,并且可以从 Internet 上某处的远程用户访问,您会遇到一个小问题,因为尽管您有许多内部地址,但只有一个外部地址 ( 98.23.45.62
)。
要解决此问题,您必须配置一个名为转发端口在你的路由器上。这指示路由器获取到达特定端口的所有流量并将其转发到特定的内部主机和端口。
在这种情况下,到达端口 22 的所有流量都会转发到10.0.0.2
端口 22。您可能已经了解到,这意味着您只能将端口 22 转发到一台内部服务器。
如果您希望能够通过 ssh 连接到台式机和笔记本电脑,则必须将路由器配置为侦听备用外部端口(例如 2022),并将其转发到10.0.0.2
端口 22 处的笔记本电脑。远程用户将必须ssh 98.23.45.62
访问台式机并ssh -p 2022 98.23.45.62
访问笔记本电脑。
当然,事情并不总是这么简单,因为外部 IP 地址可能会发生变化,除非您专门请求/购买静态 IP 地址。
答案2
“设备”是一个重载的词。它有时用来指机器,有时指机器的外围设备或接口。
每个网络接口都有自己的地址。
每台机器都有零个、一个或多个地址,具体取决于它有多少个网络接口。
在简单的情况下,每个物理网络接口都有一个 IP 地址,并且您的系统也有一个环回接口哪些程序用于与同一台计算机上运行的程序进行通信。每个接口都有一个不同的 IP 地址。许多复杂的设置都是可能的(绑定、别名、本地地址等),但基本的直觉是每个 IP 地址对应一个接口。
当您通过网络访问计算机时,您使用的是 IP 地址,因此您实际上正在访问该计算机的特定网络接口。在大多数情况下,这种区别是没有意义的,因为只有一个接口可以从远程计算机访问,并且无论如何它都不会产生任何区别,因为程序接受所有接口上的连接。但是,服务器可以仅侦听单个接口。
答案3
答案4
设备是一个物理项目,由系统内的标签表示。这样系统就可以对物理设备进行设置/查询/使用等不同的操作。该标签由管理内核系统物理硬件的驱动程序创建。
因此,您可以拥有多个网络设备,每个设备都用一个 uniq 标签进行标识(我们不要让绑定的讨论变得太复杂)。
你的问题是关于ip地址的。
有几种不同的 IP 地址类别。您拥有可以从互联网上的任何地方访问的公共地址和通常仅限于私人区域(例如家庭/企业网络)的私人地址。
通常家庭网络或办公室网络有一些公共 IP 地址和大量私有地址(所有家庭成员的笔记本电脑/手机/平板电脑/冰箱/烤面包机/之间)。
你可以为物理硬件分配尽可能多的 IP 地址,但如果你不想面对无法解决的问题,你必须做得很好并尊重底层的 tcp/ip 逻辑:)
例如,在本地网络 (lan) 中,不能有两个具有相同 IP 地址的硬件。这主要是由于以太网协议基于MAC地址(硬件的唯一标识符),并且本地网络上的MAC地址和IP地址之间存在一对一的关系。
您还可以拥有一台机器,其中有两个硬件,一个具有提供商提供的公共地址,另一个位于您的本地网络内。该机器通常用作本地网络中所有机器通往外部世界的网关。