Linux 中配置 IPv4 和 IPv6 地址的初学者指南
作为系统管理员,您偶尔会负责配置或设置服务器的 IP 地址,以满足不断变化的网络要求。因此,掌握分配IP 地址和配置主机名解析的基本技能对于确保服务器符合网络拓扑至关重要。
在本主题中,我们将首先了解 IP 地址是什么,并深入研究 IPv4 和 IPv6 之间的区别。最后,我们将演示如何在 Linux 系统上配置 IPV4 和 IPv6 地址以及主机名解析。
什么是 IP 地址?
IP 地址是Internet 协议的缩写,是用于标识TCP/IP网络中设备的唯一数字标识符或地址。该网络可以是局域网 ( LAN ) 或互联网。
IP 地址允许网络中的设备(例如服务器、路由器、交换机以及连接到网络的任何其他网络设备)之间进行通信。
IPv4 与 IPv6 之间的区别
IP 地址大致可分为两类:IPv4和IPv6。
IPv4 地址
IPv4 (IP 版本 4)地址是一个 32 位数字,分为四个八位字节,每个八位字节由句点或小数点分隔。这通常称为点分十进制格式。
每个八位字节由 8 位组成,它们共同代表一个字节。IPv4 地址可以进一步分为两部分。第一部分代表网络部分,而剩余部分定义主机部分。
网络部分
IP 地址的网络部分标识了 IP 地址所属的类别。计算机网络中使用的 IP 地址分为 3 个不同的类别:A 类、B 类和C 类。
什么是 IPv4 Class A
在A类网络中,前 8 位(八位字节)定义网络,其余 24 位保留给网络中的主机。
- 公共 IP 地址范围从 1.0.0.0 到 127.0.0.0。
- 私有 IP 地址范围从 10.0.0.0 到 10.255.255.255。
地址127.0.0.0至127.255.255.255保留用于环回和其他诊断目的,因此未分配给网络中的主机。
A 类的默认子网掩码为255.0.0.0,前 8 位用于标识网络。其余 24 位指定用于主机。此类用于控制大量主机的网络。它最多可产生16,777,214 个主机和126 个网络。
什么是 IPv4 B 类
在B 类中,前两个八位字节或 16 位用于定义网络 ID。
- 公共 IP 地址范围从 128.0.0.0 到 191.255.0.0。
- 私有IP范围是172.16.0.0至172.31.255.255。
默认子网掩码为255.255.0.0,其中前 16 位定义网络 ID。此类 IP 通常用于中大型网络,每个网络有65,534 个主机,总共有16,382 个网络。
什么是 IPv4 C 类
此类 IP 主要用于小型网络,例如家庭网络或小型办公室或企业。
在C 类网络中,前两个网络位设置为 1,而第三个网络位设置为 0,即 1 1 0。前三个八位字节的其余 21 位定义网络 ID,最后一个八位字节定义主机数。
因此,C 类 IP 地址产生的网络数量最多,达到2,097,150 个,而每个网络的主机数量最少,为254台主机。
- 公网IP地址范围从192.0.0.0至223.255.255.0。
- 私有IP范围是192.168.0.0至192.168.255.255。
子网掩码为 255.255.255.0。
主机部分
IP 地址的剩余部分是主机部分,该部分决定了网络中主机的数量。此部分唯一地标识了网络中的主机。同一网络中的所有主机共享相同的网络部分。
例如,以下主机IP地址属于同一网络。
192.168.50.15 192.168.50.100 192.168.50.90
IPv6 地址
IPv6地址是长度为128 位的字母数字地址,分为 8 组,每组 16 位。
与 IPv4 地址类似,它分为两部分:网络部分和主机部分。网络部分占前 64 位,用于路由目的。其余 64 位标识节点上的地址。
下面是完整 IPv6 地址的示例。
fe80:ce00:0000:5029:45ff:0000:211E:469C
可以进一步缩短如下。
fe80:ce00:0:5029:45ff:0:211E:469C
IPv6是为了解决 IPv4 即将耗尽的地址而开发的。正如您现在所知,IPv6 包含 128 位,是 IPv4(32 位)位数的四倍。这些额外的位提供了更多的寻址空间,将补充 IPV4 提供的地址。
尽管IPv6将在不久的将来取代 IPv4 寻址,但许多组织和 ISP 仍然使用并在很大程度上依赖 IPv4 地址。
事实上,您几乎不需要在设备上配置 IPv6 来提供连接。事实上,IPv6 取代或淘汰 IPv4 还需要一段时间。
动态 (DHCP) 和静态 IP 配置
客户端机器或任何连接到网络的端点设备上的 IP 分配都是使用DHCP协议或手动配置(其中 IP 地址是静态分配的)完成的。
DHCP IP 地址
DHCP(动态主机配置协议)是一种客户端-服务器协议,可动态地为网络上的客户端系统分配 IP 地址。DHCP服务器(在大多数情况下是路由器)包含一个地址池,可在一定时间内租借给网络上的客户端设备。因此,它简化了 IP 地址的配置并使其更加高效。一旦租约到期,客户端就会获取新的 IP 地址。
大多数系统默认配置为使用 DHCP 协议自动获取 IP。这消除了网络中两个设备共享同一 IP 地址时发生 IP 冲突的可能性。
DHCP 的缺点是租约到期后 IP 地址会发生变化。如果服务器设置为通过 DHCP 获取 IP,那么一旦 IP 地址发生变化,就会出现连接问题。这就是静态 IP 配置的用武之地。
静态 IP 地址
在静态 IP 配置中,IP 地址是在客户端系统(尤其是服务器)上手动配置的。与动态分配的地址不同,静态配置的 IP 地址保持不变且不会更改。
但是,静态配置需要网络管理员做大量工作。他们必须手动登录并配置静态 IP 以及子网掩码、DNS 服务器和网关 IP 等其他详细信息。此外,他们还需要跟踪所有具有静态 IP 地址的客户端系统。
在本教程中,我们将重点介绍如何在各种系统上静态配置 IP 地址。
如何在 Linux 中配置 IPv4 网络
在本节中,我们将重点介绍如何在 Linux 上配置 IPv4 地址。我们将介绍如何在Debian、Ubuntu以及RHEL和Red Hat 发行版上执行此操作。
在 Debian 上配置 IPv4 地址
首先,检查一下Linux 系统当前的 IP 配置总是一个好主意。
$ ip a
这将显示网络接口的 IP 地址和状态。从输出中可以看出,我们有两个接口。
第一个是 lo 接口,它是仅用于测试目的的环回地址,始终指定为地址127.0.0.1。环回地址不与任何物理网络接口关联。
第二个接口是enp0s3(您的情况可能有所不同)。这是映射到服务器上的物理网卡的活动网络接口。
其IPv4地址由inet参数表示,在本例中为192.168.2.113,通过 DHCP 协议分配。
在 Debian 中,网络配置包含在/etc/network/interfaces文件中。您可以使用nano或vim 编辑器查看它。
$ sudo nano /etc/network/interfaces
要配置静态 IPv4 地址,请删除或注释allow-hotplug和dhcp行,然后添加以下配置。
# The primary network interface auto enp0s3 iface enp0s3 inet static address 192.168.2.150 netmask 255.255.255.0 gateway 192.168.2.1 dns-nameservers 192.168.2.1 8.8.8.8
在此配置中,192.168.2.150将成为我们的新IPv4地址,其网络掩码或网络子网为 255.255.255.0。默认网关(恰好是路由器的 IP)为192.168.2.1,而 DNS 名称服务器为192.168.2.1和8.8.8.8。
保存更改并退出文件。
要应用更改,请重新启动网络服务。
$ sudo systemctl restart networking.service
然后确认没有遇到错误
$ sudo systemctl status networking.service
要确认服务器已获取新 IP,请运行以下命令:
$ ip -c addr show enp0s3
下面的输出确认我们已成功配置静态 IPv4 地址。
在 Ubuntu 上配置 IPv4 地址
在Ubuntu 18.04及更高版本中,Netplan是默认的网络配置工具,它可以通过YAML文件轻松配置网络设置。据 Canonical 介绍,netplan会处理YAML文件并为systemd-network或NetworkManager生成网络配置。
现代 Ubuntu 发行版的网络配置文件位于/etc/netplan目录中。对于桌面系统,此目录中的配置文件为01-network-manager-all.yaml。对于服务器,该文件为/etc/netplan/01-netcfg.yaml。
再次检查我们当前的 IP 地址,它是由 DHCP 自动分配的。
$ ip a
我们当前的 IP 是192.168.2.106。我们将其设置为192.168.2.180。
为了分配 IPv4 地址,我们将打开网络配置文件。
$ sudo nano /etc/netplan/01-network-manager-all.yaml
默认情况下,以下行自动设置系统使用 DHCP 进行 IP 分配。
添加以下行以分配静态 IP。
ethernets: enp0s3: addresses: - 192.168.2.180/24 nameservers: addresses: [8.8.8.8, 8.8.4.4] routes: - to: default via: 192.168.2.1
让我们分解一下所使用的参数:
- enp0s3 – 是网络接口的名称。
- 地址– 配置接口上的 IPv4 地址。后面是 CIDR,在本例中为 /24,表示网络子网为 255.255.255.0。
- nameservers – 指定要使用的 DNS 服务器。在本例中,我们使用 Google 的名称服务器 8.8.8.8 和 8.8.4.4。
- 路线——这将设置系统上的网关。
请记住替换接口名称和 IP 配置以匹配您的网络环境。
保存更改并退出。
要应用所做的更改,请运行以下命令:
$ sudo netplan apply
再次验证更改是否已反映,如图所示。
$ ip -c addr show enp0s3
在 RHEL 上配置 IPv4 地址
在Red Hat 发行版中,nmcli(NetworkManager 命令行界面)命令行工具是配置 IPv4 地址的最受欢迎的方式之一。它使用 NetworkManager 服务来实现这一点。
要查看连接到系统的网络接口名称,请执行以下命令:
$ nmcli device
要显示活动连接,请运行以下命令:
$ nmcli connection show
在RHEL 9和其他基于 RHEL 的 Red Hat 发行版中,网络配置文件位于/etc/sysconfig/network-scripts目录中。在我们的例子中,配置文件是ifcfg-enp0s3。
我们将在接口“ enp0s3 ”上分配一个静态 IPv4 地址,如下所示:
IP: 192.168.2.100 netmask: 255.255.255.0 gateway: 192.168.2.1 dns: 8.8.8.8
为此,我们将运行以下命令:
$ sudo nmcli con mod enp0s3 ipv4.addresses 192.168.2.100/24 $ sudo nmcli con mod enp0s3 ipv4.gateway 192.168.2.1 $ sudo nmcli con mod enp0s3 ipv4.method manual $ sudo nmcli con mod enp0s3 ipv4.dns "8.8.8.8" $ sudo nmcli con up enp0s3
这些命令将更改保存在关联的网络配置文件中。您可以使用您喜欢的文本编辑器查看该文件
$ sudo nano etc/sysconfig/network-scripts ifcfg-enp0s3
要确认新的 IP 地址,请运行以下命令
$ ip addr show enp0s3
您也可以运行不带任何命令行选项的nmcli命令,活动界面将显示在顶部。
$ nmcli
如何在 Linux 中配置主机名
配置良好的系统应该能够将其主机名或域名解析为配置的 IP 地址。通常,主机名和 IP 地址的映射是在/etc/hosts文件中完成的。
要配置主机名解析,请将主机的条目添加到/etc/hosts文件。此条目包括主机的 IP 地址和主机名,如下所示。
$ echo '192.168.2.150 debian-11' >> /etc/hosts
确保更新您打算连接到同一本地网络上的系统的每个 Linux 系统上的/etc/hosts文件。
完成后,您可以成功ping Linux 机器的主机名。
$ ping debian-11 -c 5
结论
在本教程中,我们介绍了 IPv4 和 IPv6 IP 地址,并探讨了如何在 Linux 上配置 IPv4 网络和主机名解析。