[Linux]Network Config

Network Config

1 网络接口简介

网络接口是操作系统内核连接网络软件部分与硬件部分的桥梁。

通过以下命令可以查看网络接口的信息:

1
2
3
4
pete@icebox:~$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 1d:3a:32:24:4d:ce
inet addr:192.168.1.129 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fd60::21c:29ff:fe63:5cdc/64 Scope:Link

ifconfig 命令

ifconfig 工具用于配置网络接口。若无网络接口设置,设备驱动程序与网络将无法通信。此工具在系统启动时自动运行,并根据配置文件设置接口,但用户也可手动修改。输出结果左侧显示接口名称,右侧展示详细信息。常见的接口包括:eth0(首张以太网卡)、wlan0(无线接口)和 lo(回环接口)。回环接口用于表示本机,便于调试或访问本地服务器。

接口状态可分为启用(up)和禁用(down)。要关闭某个接口,可将其设为“down”。常用的字段包括:HWaddr(MAC地址)、inet address(IPv4地址)和 inet6(IPv6地址)。此外,子网掩码和广播地址也一目了然。可通过 /etc/network/interfaces 查看接口信息。

创建并启用接口示例:

1
$ ifconfig eth0 192.168.2.1 netmask 255.255.255.0 up

启用或禁用接口:

1
2
$ ifup eth0
$ ifdown eth0

ip 命令

ip 命令同样可用于管理系统网络栈。

使用示例:

  • 显示所有接口信息:
    1
    $ ip link show
  • 显示特定接口统计信息:
    1
    $ ip -s link show eth0
  • 显示分配给各接口的IP地址:
    1
    $ ip address show
  • 启用或禁用接口:
    1
    2
    $ ip link set eth0 up
    $ ip link set eth0 down
  • 为接口添加IP地址:
    1
    $ ip address add 192.168.1.1/24 dev eth0

2 路由管理

使用 route 命令

添加新路由:

1
$ sudo route add -net 192.168.2.1/23 gw 10.11.12.3

删除路由:

1
$ sudo route del -net 192.168.2.1/23

使用 ip 命令

同样,也可以使用 ip 命令进行上述修改:

添加路由:

1
$ ip route add 192.168.2.1/23 via 10.11.12.3

删除路由:

指定网关删除:

1
$ ip route delete 192.168.2.1/23 via 10.11.12.3

不指定网关删除:

1
$ ip route delete 192.168.2.1/23

3 DHCP 客户端管理

dhclient 服务在系统启动时自动运行,并从 dhclient.conf 文件中获取网络接口列表。针对每个列出的接口,dhclient 尝试使用 DHCP 协议进行配置。

dhclient.leases 文件记录了跨系统重启后的租约列表。在读取 dhclient.conf 文件后,dhclient 会进一步读取 dhclient.leases 文件以了解已分配的租约情况。

获取新的 IP 地址

要为指定网络接口获取一个新的 IP 地址,执行以下命令:

1
$ sudo dhclient

此命令将触发 DHCP 客户端请求新的网络配置,确保设备能够获得最新的网络参数,从而维持网络连接的高效性和可靠性。

4 网络管理

为了确保系统的网络能够自动启动并运行,大多数发行版采用 NetworkManager 守护进程来实现自动化网络配置。如果使用的是图形用户界面(GUI),通常可以在桌面任务栏中找到 NetworkManager 的小程序图标,它负责管理网络硬件和连接信息。例如,在系统启动时,NetworkManager 会收集网络硬件信息,并搜索无线、有线等连接,然后激活这些连接。

命令行工具

除了图形界面外,还有一些命令行工具可以与 NetworkManager 进行交互:

  • nm-tool

nm-tool 工具用于报告 NetworkManager 的状态及其设备的信息。以下是一个示例输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
pete@icebox:/$ nm-tool

NetworkManager Tool


State: connected (global)



- Device: eth0 [Wired connection 1] -------------------------------------------

Type: Wired

Driver: pcnet32

State: connected

Default: yes

HW Address: 12:3D:45:56:7D:CC



Capabilities:

Carrier Detect: yes



Wired Properties

Carrier: on



IPv4 Settings:

Address: 192.168.22.1

Prefix: 24 (255.255.255.0)

Gateway: 192.168.22.2



DNS: 192.168.22.2

  • nmcli

nmcli 命令允许用户控制和修改 NetworkManager 的配置。更多详细信息,请参阅相关手册页。

5 arp

当使用ARP查找MAC地址时,系统首先会检查本地存储的ARP缓存。可以查看此缓存:

1
2
3
4
5
pete@icebox:~$ arp

Address HWtype HWaddress Flags Mask Iface
192.168.22.1 ether 00:12:24:fc:12:cc C eth0
192.168.22.254 ether 00:12:45:f2:84:64 C eth0

在机器启动时,ARP缓存实际上是空的。随着数据包发送到其他主机,缓存逐渐被填充。如果向一个不在ARP缓存中的目标发送数据包,则会发生以下过程:

  1. 源主机创建带有ARP请求包的以太网帧。
  2. 源主机将此帧广播到整个网络。
  3. 如果网络上的某个主机知道正确的MAC地址,它将通过包含该MAC地址的回复包和帧进行回应。
  4. 源主机将IP到MAC地址的映射添加到ARP缓存中,然后继续发送数据包。

还可以通过ip命令查看ARP缓存:

1
$ ip neighbour show

[Linux]Network Config
https://erlsrnby04.github.io/2025/03/22/Linux-Network-Config/
作者
ErlsrnBy04
发布于
2025年3月22日
许可协议