linux网络管理
IPv4的工作原理
IPv4(Internet Protocol Version 4)是互联网协议的第四版,它定义了数据在网络中传输的方式以及如何寻址设备。IPv4采用32位地址结构,能够支持约43亿个唯一地址。作为一种无连接的协议,IPv4运行在分组交换的链路层之上,在数据传输过程中不会建立固定的连接路径。
#### 数据传输机制
IPv4通过尽力而为的服务模型来传递数据包。这意味着它并不保证所有的数据包都能成功送达目标节点,也不确保这些数据包按序到达或者没有重复。具体来说:
- **路由选择**:当源主机向目的主机发送数据时,路由器依据其内部维护的路由表决定下一跳转发方向。
- **封装与解封**:每条信息都被分割成若干个小的数据单元——称为“报文”,每个报文都包含了完整的头部信息用于指导网络设备处理它们。
- **错误检测**:虽然IPv4本身不具备纠错功能,但是它的首部校验字段可以用来发现某些类型的传输错误。
Linux 系统中 IPv4 的图形化配置方法
在 Linux 系统中,可以通过多种方式配置 IPv4 网络,其中一种便捷的方法是使用图形化工具 nmtui 进行配置。以下是具体的配置过程:
bash
nmtui
编辑以太网链接
在弹出的菜单中选择 **“Edit a connection”** 并按下回车键。随后会进入一个列表,显示系统中存在的所有网络接口(如 eth0、ens160 等)。选择需要配置的网卡并按回车键继续。
设置 IPv4 地址模式
在以太网设置界面上,找到 **IPv4 configuration** 选项,默认可能是 DHCP 模式。将其更改为 **Manual** 手动模式,并点击右侧的 **Show** 按钮展开详细配置区域。
输入 IPv4 参数
在手动模式下,填写以下必要的 IPv4 配置信息:
- **Address**: 填写分配给该网卡的具体 IP 地址。
- **Netmask**: 子网掩码,例如 `255.255.255.0` 对应于前缀长度 `/24`。
- **Gateway**: 默认网关地址,用于访问外部网络。
完成后点击底部的 **OK** 按钮保存设置。
验证 DNS 和其他设置
如果还需要配置 DNS 服务器或其他高级参数,可以在同一窗口中进行调整。例如,在 **Nameservers** 字段中填入首选和备用 DNS 服务器地址,如 `8.8.8.8` 和 `114.114.114.114`。
应用更改
退出到主菜单后,选择 **Activate a connection** 来激活刚才编辑好的连接。接着返回至终端重新加载网络服务以应用新的配置:
bash
service network restart
通过命令行临时和永久配置 IPv4 地址的方法
一、临时配置 IPv4 地址
使用 `ip` 命令
可以通过 `ip` 命令快速为某个网卡分配一个临时的 IPv4 地址。执行以下命令即可完成配置:
bash
ip addr add 192.168.1.100/24 dev ens33
这条命令的作用是在网卡 `ens33` 上添加一个 IP 地址 `192.168.1.100`,其子网掩码为 `/24`(相当于 `255.255.255.0`)。需要注意的是,这种配置会在系统重启后失效。
使用 `ifconfig` 命令
另一种方法是利用传统的 `ifconfig` 命令来实现同样的效果:
bash
ifconfig ens33 192.168.1.100 netmask 255.255.255.0 up
这里同样指定了网卡名称 (`ens33`)、IP 地址 (`192.168.1.100`) 及子网掩码 (`255.255.255.0`)。最后的 `up` 参数表示启用该网卡接口。
二、永久配置 IPv4 地址
为了使 IP 配置在系统重启之后仍然有效,通常需要修改对应的网络配置文件或使用专门的管理工具如 `nmcli` 或者直接编辑配置文件。
方法 1:使用 `nmcli` 工具
`nmcli` 是 NetworkManager 的命令行版本,适合用来管理和配置网络连接。下面是一个例子展示如何将网卡 `ens33` 设置成手动模式并赋予固定的 IPv4 地址及相关参数:
bash
nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8"
上述指令设置了网卡采用静态 IP 方式(`manual`),具体地址设为 `192.168.1.100`, 子网掩码为 `/24`(隐含),默认网关指向 `192.168.1.1` ,以及首选 DNS 服务器设定为 Google Public DNS 即 `8.8.8.8` 。 若要让改动即时生效还需运行如下命令刷新状态:
bash
nmcli connection up ens33
方法 2:直接编辑配置文件
每一块网卡都有自己的专属配置文件位于路径 `/etc/sysconfig/network-scripts/ifcfg-<interface>` 下面。以网卡名为 `ens33`为例, 其对应文件应该是 `/etc/sysconfig/network-scripts/ifcfg-ens33`. 打开这个文件进行编辑:
bash
vi /etc/sysconfig/network-scripts/ifcfg-ens33
然后按照需求调整下列字段的内容:
- `BOOTPROTO`: 设定为 `static` 表明我们要手工地指定 IP 数据.
- `ONBOOT`: 确保此项被设置成了 `yes` ,这样当机器启动时就会自动激活此网络适配器.
- 添加新条目定义实际使用的 IP 地址及其关联属性:`IPADDR`, `NETMASK`, 和可选项目像 `GATEWAY`.
最终的结果看起来应该类似于这样:
plaintext
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=ens33
UUID=<generated_uuid>
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
保存更改后的配置文件,并重新加载网络服务以便应用最新的设置:
bash
systemctl restart network.service