1.使用nmcli添加静态网络连接
nmcli con add con-name static-addr \
ifname eth0 type ethernet ipv4.method manual ipv4.dns 172.25.250.220 \
ipv4.addresses 172.25.250.10/24 ipv4.gateway 172.25.250.254
命令概述
这是一条使用 nmcli
(NetworkManager 命令行工具)在 Linux 系统中添加网络连接配置的命令,目的是创建一个名为 static-addr
的静态网络连接,绑定到网络接口 eth0
上,并设置相关的 IPv4 配置信息,包括手动指定 IP 地址、子网掩码、默认网关以及 DNS 服务器地址。
各参数含义
con-add
:
这是nmcli
命令用于添加新网络连接的操作关键字。它表示接下来要进行的是创建一个新的网络连接配置的操作。con-name static-addr
:con-name
参数用于指定新创建网络连接的名称,在这里将连接命名为static-addr
。这个名称方便后续对该网络连接进行管理、启用、停用等操作时进行识别和引用。ifname eth0
:ifname
参数用于指定此网络连接要绑定的网络接口设备名称。在这个命令中,明确指出该网络连接要关联到名为eth0
的网络接口上,意味着这个配置将会应用到eth0
这块网卡,使其按照设定的网络参数来工作。type ethernet
:type
参数定义了网络连接的类型,这里设置为ethernet
,表明是以太网类型的连接,适用于通过网线连接到局域网等常见的有线网络场景。ipv4.method manual
:ipv4.method
参数用于指定获取 IPv4 地址的方式,设置为manual
表示采用手动配置的方式。与自动获取 IP 地址(例如通过 DHCP 服务器自动分配)不同,手动配置需要明确给出 IP 地址、子网掩码、网关等具体信息,就像下面的参数所做的那样。ipv4.dns 172.25.250.220
:ipv4.dns
参数用于指定 IPv4 的 DNS(Domain Name System,域名系统)服务器地址。在这里指定了 DNS 服务器的 IP 地址为172.25.250.220
。DNS 服务器的作用是将用户输入的便于记忆的域名(比如www.example.com
)解析成对应的 IP 地址,以便网络设备能够准确地找到相应的服务器并进行通信。ipv4.addresses 172.25.250.10/24
:ipv4.addresses
参数用来设置分配给该网络接口的 IPv4 地址以及子网掩码相关信息。这里配置的 IP 地址是172.25.250.10
/24
表示子网掩码采用 CIDR(无类别域间路由)表示法,对应的子网掩码就是255.255.255.0
。它界定了该设备所在的局域网网段范围,确定哪些 IP 地址属于同一个子网,可以直接进行本地通信等。ipv4.gateway 172.25.250.254
:ipv4.gateway
参数用于指定 IPv4 的默认网关地址。默认网关是局域网内的设备访问其他网段(例如访问互联网或者其他局域网)时数据转发的出口节点。在这里,设置默认网关的 IP 地址为172.25.250.254
,局域网内的设备发送到外部网络的数据包将会先发送到这个网关设备,再由网关设备进行转发处理。
后续操作及验证
- 启用连接:
在执行完这条添加连接配置的命令后,一般还需要使用nmcli con up static-addr
命令来启用这个名为static-addr
的网络连接,使其配置生效,让eth0
接口按照设定的静态 IP 等参数开始工作。 - 验证配置:
可以通过一些命令来验证网络配置是否正确生效,比如使用ifconfig
(较旧的命令,部分系统可用)或者ip addr show eth0
命令查看eth0
接口的 IP 地址等信息是否和配置的一致,还可以使用ping
命令去测试能否与网关、DNS 服务器或者其他局域网内、外的设备进行正常通信,例如ping 172.25.250.254
(测试能否与网关通信)、ping 8.8.8.8
(测试能否访问外部的 DNS 服务器,常用于验证网络连通性)等。
这条 nmcli
命令完成了为指定网卡创建一个具有完整静态网络配置的网络连接的任务,后续通过启用等操作使其在 Linux 系统中发挥作用,保障网络正常通信。
2.禁用原始连接,使其不在系统启动时自动启动
nmcli con mod "Wired connection 1" \
> connection.autoconnect no
命令概述
这条命令使用 nmcli
工具对名为 “Wired connection 1” 的现有网络连接配置进行修改,具体是将其 connection.autoconnect
属性设置为 no
,也就是禁止该网络连接在系统启动或者网络可用时自动进行连接。
各部分含义
nmcli con mod
:
这是nmcli
命令用于修改已有网络连接配置的操作关键字组合。nmcli
提供了添加(add
)、修改(mod
)、删除(del
)等一系列操作网络连接的功能,这里的mod
表示接下来要对已存在的网络连接做属性修改方面的操作。"Wired connection 1"
:
这是要修改的网络连接的名称,它是在系统中已经存在的一个网络连接标识。通常,在 Linux 系统中,如果通过有线网络连接设备,NetworkManager 可能会自动创建类似这样名称的有线网络连接配置(当然,具体名称可能因系统配置、网卡等情况有所不同),这里明确指定了要对这个特定的网络连接进行修改操作。connection.autoconnect no
:connection.autoconnect
是网络连接配置中的一个属性,用于控制该连接是否自动进行连接。将其值设置为no
,意味着系统在下次启动时或者网络环境恢复可用(比如网线重新插拔后网络恢复正常等情况)时,不会自动启用这个名为 “Wired connection 1” 的网络连接了。与之相对应的,如果设置为yes
,则在满足相应条件时会自动连接该网络连接配置对应的网络。
实际应用场景及后续操作
- 应用场景举例:
- 假设你所在的环境中有多个有线网络可用,而你只是偶尔需要使用 “Wired connection 1” 对应的那个特定网络,平时希望系统优先连接其他网络或者不想它自动连接浪费网络资源等情况,就可以通过这样的设置来禁止它自动连接,等需要使用时再手动启用它(可以通过
nmcli con up "Wired connection 1"
命令手动启用该连接)。 - 又比如在进行网络调试、测试不同网络配置效果等场景下,为了确保系统按照你期望的网络连接顺序和方式来工作,可能会暂时禁止某些已有网络连接的自动连接功能。
- 假设你所在的环境中有多个有线网络可用,而你只是偶尔需要使用 “Wired connection 1” 对应的那个特定网络,平时希望系统优先连接其他网络或者不想它自动连接浪费网络资源等情况,就可以通过这样的设置来禁止它自动连接,等需要使用时再手动启用它(可以通过
- 验证修改结果:
可以通过nmcli con show "Wired connection 1"
命令来查看该网络连接修改后的详细配置信息,在输出的结果中找到connection.autoconnect
这一属性对应的取值,确认是否已经变为no
。
3.验证ip地址
ip -br addr show eth0
- 命令概述
ip -br addr show eth0
是一个用于查看网络接口eth0
的 IP 地址相关信息的命令。其中ip
是 Linux 系统中功能强大的网络配置工具,-br
是--brief
的缩写,用于以简洁的格式输出信息,addr show
表示显示地址相关的内容,eth0
是要查看的网络接口名称。
- 输出内容解释
- 正常情况下,输出会以简洁的表格形式呈现。例如,输出可能是类似
eth0 192.168.1.10/24
这样的内容。 - 其中
eth0
是网络接口名称,192.168.1.10
是分配给eth0
接口的 IP 地址,/24
表示子网掩码采用 CIDR(无类别域间路由)表示法,对应的子网掩码是255.255.255.0
。这表明eth0
接口所在的网络段范围,并且可以根据这些信息判断与同一子网内其他设备的连通性等网络相关信息。
- 正常情况下,输出会以简洁的表格形式呈现。例如,输出可能是类似
- 用途
- 网络故障排查:当网络连接出现问题时,通过查看
eth0
(或其他网络接口)的 IP 地址配置是否正确来初步判断问题。例如,如果 IP 地址显示为0.0.0.0
,可能表示网络接口没有正确获取或配置 IP 地址,可能是 DHCP 服务器故障、网络连接故障或者配置错误等原因导致。 - 确认网络配置:在配置静态 IP 地址或者使用动态分配 IP 地址(如 DHCP)后,使用这个命令快速验证 IP 地址是否按照预期分配到了
eth0
接口上,从而确保网络设置的正确性。
- 网络故障排查:当网络连接出现问题时,通过查看
4.验证网关
ip route
命令语法
ip route [options] [command|help]
:这是 ip route
命令的基本语法结构,其中 options
为可选参数,用于指定命令的执行方式和显示格式等;command
为具体的操作命令,如 show
、add
、del
等;help
则用于获取命令的帮助信息
常用操作及参数
- 查看路由表:
ip route show
或ip route
:这两个命令都可以用于查看当前系统的路由表信息,以简洁的格式列出路由表中的各项条目,包括目的网络、网关、子网掩码、接口等信息 。ip route show table [table_id]
:用于查看指定路由表的内容,table_id
可以是路由表的编号或名称,若不指定,则默认查看主路由表.
- 添加静态路由:
ip route add [destination_network] via [gateway_ip] dev [interface_name]
:添加一条到指定目的网络的静态路由,其中destination_network
为目的网络地址,可以是一个具体的网段或主机地址;gateway_ip
是下一跳网关的 IP 地址;interface_name
是数据包将从该接口发出的网络接口名称,例如ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
,表示添加一条到192.168.2.0/24
网络的静态路由,数据将通过网关192.168.1.1
从eth0
接口发出.ip route add default via [gateway_ip] dev [interface_name]
:添加默认网关路由,所有目的地址不在路由表中的数据包都将通过此默认网关进行转发,例如ip route add default via 192.168.1.1 dev eth0
,表示将192.168.1.1
设置为默认网关,通过eth0
接口进行数据转发.
- 删除路由:
ip route del [destination_network]
:删除到指定目的网络的路由规则,例如ip route del 192.168.2.0/24
将删除到192.168.2.0/24
网络的路由.ip route del default
:删除默认网关路由.
- 修改路由:
ip route change [destination_network] via [new_gateway_ip] dev [new_interface_name]
:修改到指定目的网络的路由信息,将其下一跳网关和出口接口更改为新的值,例如ip route change 192.168.2.0/24 via 192.168.1.2 dev eth1
,表示将到192.168.2.0/24
网络的路由的下一跳网关改为192.168.1.2
,出口接口改为eth1。
5.pingDNS地址
ping -c3 172.25.250.220
命令概述
ping
命令主要用于测试网络连通性,通过向目标主机发送 ICMP(Internet Control Message Protocol,互联网控制报文协议)回显请求数据包,并等待目标主机返回对应的回显应答数据包,以此来判断本地主机与目标主机之间是否能够正常通信以及网络延迟等情况。- 在这个命令中,
-c3
是一个选项参数,用于指定发送 ICMP 数据包的数量,这里表示要发送 3 个数据包到目标 IP 地址172.25.250.220
。
命令执行过程及输出示例
- 当在 Linux 系统(或支持
ping
命令的其他操作系统环境)中执行该命令后,会看到类似以下的输出信息(实际输出会根据网络状况有所不同)
PING 172.25.250.220 (172.25.250.220) 56(84) bytes of data.
64 bytes from 172.25.250.220: icmp_seq=1 ttl=64 time=0.345 ms
64 bytes from 172.25.250.220: icmp_seq=2 ttl=64 time=0.421 ms
64 bytes from 172.25.250.220: icmp_seq=3 ttl=64 time=0.387 ms
--- 172.25.250.220 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.345/0.384/0.421 ms
- 各部分含义解释:
PING 172.25.250.220 (172.25.250.220) 56(84) bytes of data.
:这一行表示ping
命令开始向目标 IP 地址172.25.250.220
发送 ICMP 数据包,每个数据包包含的数据部分长度为 56 字节(加上 ICMP 头部等信息,整个 IP 数据包大小通常为 84 字节)。64 bytes from 172.25.250.220: icmp_seq=1 ttl=64 time=0.345 ms
等类似行:每一行对应一个接收到的来自目标主机的回显应答数据包的相关信息。其中64 bytes
表示接收到的应答数据包的数据部分大小为 64 字节;from 172.25.250.220
指明了应答数据包是来自目标 IP 地址172.25.250.220
;icmp_seq
表示 ICMP 数据包的序列号,这里分别显示1
、2
、3
,对应着发送的 3 个数据包的顺序;ttl
(Time To Live,生存时间)表示该数据包在网络中可以经过的最大路由器跳数,这里是64
,不同操作系统或网络环境下默认的ttl
值可能不同;time=0.345 ms
表示从发送数据包到接收到对应应答数据包所经历的往返时间,也就是常说的延迟,单位是毫秒,这里显示了每个数据包对应的延迟情况。--- 172.25.250.220 ping statistics ---
:这一行表示接下来要展示本次ping
操作的统计信息。3 packets transmitted, 3 packets received, 0% packet loss
:这里总结了本次ping
操作的总体情况,表明一共发送了 3 个数据包(3 packets transmitted
),并且成功接收到了 3 个数据包(3 packets received
),没有数据包丢失(0% packet loss
),说明本地主机与目标主机172.25.250.220
之间网络连通性良好。round-trip min/avg/max = 0.345/0.384/0.421 ms
:给出了往返时间的最小值(min
)、平均值(avg
)和最大值(max
),可以直观地了解到网络延迟的波动范围,在这里,最小延迟是0.345
毫秒,平均延迟是0.384
毫秒,最大延迟是0.421
毫秒,这些数据有助于进一步评估网络的稳定性和性能。
常见情况及分析
- 成功情况(类似上述示例):
如果看到类似上述输出,即所有发送的数据包都能被目标主机正确接收并返回应答,且丢包率为 0%,说明本地与目标主机之间的网络链路正常,能够顺利通信,网络延迟情况也可以通过给出的时间数据进行判断。 - 部分丢包情况(例如
2 packets transmitted, 1 packet received, 50% packet loss
):
出现这种情况意味着发送的部分数据包没有得到目标主机的应答,可能是网络拥塞、网络设备故障、目标主机负载过高或者中间存在网络干扰等原因导致数据包在传输过程中丢失,需要进一步排查网络的各个环节来确定具体原因,比如检查网络带宽使用情况、路由器状态、目标主机的资源使用情况等。 - 全部丢包情况(例如
3 packets transmitted, 0 packets received, 100% packet loss
):
当所有发送的数据包都没有收到应答时,表明本地与目标主机之间很可能存在网络中断的问题,可能是网线未插好、网络接口故障、目标主机关机或者网络配置错误(如网关设置不正确等)等原因导致,需要从本地网络连接、中间网络设备以及目标主机的网络配置等多方面去排查故障原因。