admin管理员组文章数量:1594642
一、 前言
- 网络的作用就是用于多台主机互相通信的,早期的实现方式是给每个主机一个唯一标识(MAC地址),然后把它们都链接上同轴线缆进行的,但是这种解决方案的缺点也很明显,就是通信冲突的问题,后出现CSMA/CD(载波侦听、多路访问、冲突检测)机制,用来解决这个问题,实现逻辑就是每个主机在发送信号前,先在线缆上侦听有没有其它主机正进行通信,如果没有的话就发送信号,冲同检测就是通过边发信号边检测实现的,一旦发现冲突就会向后延迟一段时间而后再重复之前的过程。
- 交换机:对于大型的网络,多台主机争用同一个底层信道,CSMA/CD的机制仍然不够用。于是,人们就把一个大网络切割成多个小型网络,每个小型网络通过网桥进行通信,这也就是交换机的雏形,交换机可以解决冲突域的问题,它有一个表格,记录接口和主机MAC地址的对应信息,这样就可以将网络报文正确送达。
- 路由器:随着网络发展,交换机的制造成本越来越低,一台交换机所能接入的设备也就越来越多,这也就造成了一个小型网络的广播报文越来越多,为了切割广播域就诞生了路由器。既然切割了广播域,各广播域之间通信也就需要使用一个标识来完成,这个标识不能太扁平化,并且,需要一致的命名机制,于是就诞生了IP地址。
二、配置文件
1. 网络接口命名机制
centos 6
以太网接口使用eth[0、1、2],这样的方式进行命名
ppp网络使用pp[0、1、2]命名方式Centos7
网卡
(1)如果固件或BIOS为主板上集成的设备提供的索引信息可用,且可预测,则根据此索引命名
(2)如果Firmware或BIOS为PCI-E扩展槽提供的索引信息可用,且可预测,则根据此索引命名
(3)如果硬件接口的物理位置信息可用,则根据此信息进行命名
(4)如果用户指定,也可根据MAC命名
(5)上述均不可用,才会使用eth0
2. 名称组成格式
接口的类型标识符+名称类型
- 接口的类型标识符
en:ethernet,以太网接口 wl:wlan,无线局域网接口 ww:wwan,无线关于网设备
- 名称类型
o<index>:onboard,主板上集成的设备与其索引号命名 s<index>:slot,插拔式的网卡,使用扩展槽的索引号命名 x<index>:基于mac地址命名 p<index>:基于总线命名
3. 网卡设备的命名过程
(1)首先udev机制能够将内核识别的每一个硬件设备及其相关信息通过/sys
伪文件系统向用户空间进行输出,接着用户空间的工具根据这些信息判断出设备型号,并根据这些型号关联到特性驱动或者加载额外的辅助功能,那么在网卡命名过程中,就是udev就是利用一个辅助工具程序/lib/udev/rename_device
,这个工具辅助工具程序会根据/usr/lib/udev/rules.d/60-net.rules
文件中的规则,去查询/etc/sysconfig/network-scripts/
目录下的网卡配置文件,然后参照网卡配置文件去命名,如果命名失败则进行第二步
(2) 如果没有在内核启动过程中向内核传递biosdevname=0
参数,则biosdevname程序会根据/usr/lib/udev/rules.d/71-biosdevname.rules
进行命名
(3)通过udev机制检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description
文件中的规则进行命名
4. 回归传统命名方式
(1)编辑/etc/default/grub
,在文件中GRUB_CMDLINE_LINUX=
关键字中加入"net.ifnames=0”
参数
(2)为grub2生成配置文件,使用命令grub2-mkconfig -o /etc/grub2.cfg
(3)重启系统
5. 配置文件位置
/etc/sysconfig/network-scripts/ifcfg-IF_name
,文件中可修改IP地址,子网掩码、网关地址和DNS相关/etc/sysconfig/network-scripts/route-IF_name
,路由相关的配置文件,默认不存在/etc/sysconfig/network
:主机名称配置文件/etc/udev/rules.d/70-persistent-net.rules
:此文件可以对centos6的网卡命名机制进行更改
6. 配置文件中关键字的意义
/etc/sysconfig/network-scripts/ifcfg-IF_name
注意网卡别名不能使用dhcp分配地址NAME="" :网络接的名称 DEVICE="" :此配置文件关联的设备 HWADDR="" :对应设备的MAC地址 BOOTPROTO="" :激活此设备时使用的地址配置协议,可选[ dhcp | static | none | bootp ] NM_CONTROLLED="" :此网卡是否接受NM控制,建议Centos6建议为no ONBOOT="" :在操作系统引导时,是否激活此设备 TYPE="" :网络接口工作时的接口类型 [ Ethernet | Bridge ] UUID="" :设备的唯一标识 IPADDR="" :手动指明地址 NETMASK="" :子网掩码 GATEWAY="" :默认网关 DNS1="" :指定DNS服务器指向,此处优先级比/etc/resolv.conf高 USERCTL="" :普通用户是否可激活此设备 PEERDNS="" :如果BOOTPROTO的值为dhcp,那么是否允许dhcp分配的dns指向覆盖/etc/resolv.conf的原有内容 PEERROUTES="" :是否通过dhcp获取路由信息 DEFROUTE="" :默认路由 IPV4_FAILURE_FATAL="" :ipv4如果出现问题的话,是否认为这是致命错误 IPV6INIT="" :是否启用ipv6
/etc/sysconfig/network-scripts/route-IF_name
此文件中可以使用两种定义格式格式1 ADDRESS0=ip地址 NETMASK0=netmask GATEWAY0=gateway_ip ADDRESS1=ip地址 NETMASK1=netmask GATEWAY1=gateway_ip
格式2 target via GW
/etc/sysconfig/network
NETWORKING=: 是否允许此主机使用网络 HOSTNAME=: 设置主机名称
/etc/udev/rules.d/70-persistent-net.rules
设置centos6的网卡命名机制,设置完毕后需要对网卡驱动进行拆除
拆除命令modprobe -r e1000
安装命令modprobe e1000
三、网络配置命令
1. ifconfig命令
用来实现网络信息显示和配置的命令,配置完毕后立即生效,命令格式为:
ifconfig [interface]
ifconfig [interface] address
混杂模式:目标mac即便不是自己,收到的报文也会接受一份,在网络抓包时很有用[-]promisc
2. route命令
命令格式:route [option] [add|del] [-net|-host] target/prefix [netmask] [gw GW] [dev ifc]
option
-n:不反解
示例1:添加目标为192.168.2.100的主机路由
~]# route add -host 192.168.2.100/32 gw 192.168.2.254 dev ens33
示例2:添加目标为192.168.3.0的网络路由
~]# route add -net 192.168.3.0 netmask 255.255.255.0 gw 192.168.2.254 dev ens33
示例3:添加默认路由
~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.2.254 dev ens33
~]# route add default gw 192.168.2.254
示例4:删除路由
~]# route del -net 0.0.0.0 gw 192.168.2.254
~]# route del -host 192.168.2.100
3. dns设定
编辑配置文件/etc/resolv.conf
,在文件中使用nameserver
关键字指定,可以同时指定多个
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
设置完毕后验证dns解析功能
- 正解:
FQDN --> IP
,使用命令dig -t A FQDN
- 反解:
IP --> FQDN
,使用命令dig -x IP
4. ip命令
命令格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
object:
link {COMMAND}
set dev DEV_NAME up|down:指定激活或禁用指定接口
show [dev DEV_NAME|up]:显示设备简要属性
broadcast:广播
multicast:组播
mtu:最大传输单元
qlen:传输队列
link/ether:mac地址
brd:广播地址
help:帮助
addr {COMMAND}
show [DEV_NAME|scope|to PREFIX|label PATTER]:显示指定设备的信息
add IP/PREFIX dev DEV [label ‘name’]:添加地址,可指定别名
del IP/PREFIX dev DEV:删除地址
flush [DEV_NAME]:清除指定设备地址
scope VALUE:
global:全局有效
link:仅在当前接口有效
host:仅主机内部有限
route:
add {ip/prefix} {via ip} [dev DEV_NAME]:
show:
del {ip/prefix} {via ip} [dev DEV_NAME]:
flush:
5. nmcli命令
命令格式:nmcli [OPTIONS...] {OBJECT} [COMMAND] [ARGUMENTS...]
5.1 option
-t {device|connection}
: 简明扼要的将状态输出,此模式更适用于脚本运行过程对网络状态的取值-f <field1,field2...>
:指定仅显示某些字段[root@C ~]# nmcli -f DEVICE,TYPE device DEVICE TYPE ens17 ethernet lo loopback
-p {device|connection}
: 美观的输出对应的信息[root@C ~]# nmcli -p conn ====================================== NetworkManager connection profiles ====================================== NAME UUID TYPE DEVICE -------------------------------------------------------------------- System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 ens17 cf306567-fa07-49c0-ad7b-ef17bc4d0d6e ethernet -- ens18 5bc0db65-41e0-4181-9c80-f0ca7600a4d7 ethernet --
5.2 object
5.2.1 device
用于管理和显示网络设备信息的子命令。通过 nmcli device 可以列出系统中所有的网络设备,并查看它们的状态、连接信息等。
-
status
:显示设备连接状态,status是可缺省的,也可以将命令写成nmcli device
,效果相同[root@C2024-arthur-sh-test ~]# nmcli device status DEVICE TYPE STATE CONNECTION ens17 ethernet connected System ens17 lo loopback unmanaged --
-
show [DEV]
:显示指定设备的状态信息,设备名称如果缺省则显示全部网卡设备
示例1:如下缺省设备文件,则显示每个网卡接口的详细信息,示例中有两个网卡接口ens17和lo[root@C2024-arthur-sh-test ~]# nmcli device show GENERAL.DEVICE: ens17 GENERAL.TYPE: ethernet GENERAL.HWADDR: B0:09:C0:00:09:AB GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: System ens17 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/12 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 198.200.38.6/24 IP4.GATEWAY: 198.200.38.254 IP4.ROUTE[1]: dst = 198.200.38.0/24, nh = 0.0.0.0, mt = 100 IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 198.200.38.254, mt = 100 IP4.DNS[1]: 8.8.8.8 IP4.DNS[2]: 8.8.4.4 IP6.ADDRESS[1]: fe80::b209:c0ff:fe00:9ab/64 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255 IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256 GENERAL.DEVICE: lo GENERAL.TYPE: loopback GENERAL.HWADDR: 00:00:00:00:00:00 GENERAL.MTU: 65536 GENERAL.STATE: 10 (unmanaged) GENERAL.CONNECTION: -- GENERAL.CON-PATH: -- IP4.ADDRESS[1]: 127.0.0.1/8 IP4.GATEWAY: -- IP6.ADDRESS[1]: ::1/128 IP6.GATEWAY: -- IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
-
connect DEV
:启用链接设备。提供一个设备接口,网络管理器将尝试找到一个合适的连接并激活。为验证效果,创建了两个链接文件, 尝试disconnect后在运行connect,发现其会依然启用上次链接的文件,即便把链接文件改名或移动位置,依然能正常启用,而且ip是生效的。于是挪动默认的链接文件,仅保留新创建的链接文件并重启,发现它应用了新创建的链接文件,尝试disconnect、connect后,依然链接新创建的链接文件。
示例命令:~]# nmcli device connect ens17
-
disconnect DEV
:禁用链接设备,和启用相反
示例命令:~]# nmcli device disconnect ens17
-
set
:用于设置网络设备属性的命令。通过这个命令,你可以配置设备的各种参数,比如管理状态、MTU(最大传输单元)、MAC 地址等。如果想设置nmcli不管理某些网卡设备,可以下面的示例示例2:默认情况下,NetworkManager 服务会管理 除lo (环回)设备以外的所有设备。但是,也可以将某些设备设置为非受管设备,让NetworkManager 忽略这些设备。达到手动管理这些设备的目的将网卡设备临时设置为非受管设备
nmcli device set DEV managed [no | on]
~]# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ... ~]# nmcli device set enp1s0 managed no ~]# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet unmanaged -- ...
示例3:将网卡设备永久设置为非受管设备
# nmcli device status DEVICE TYPE STATE CONNECTION enp1s0 ethernet disconnected -- ...
创建
/etc/NetworkManager/conf.d/99-unmanaged-devices.conf
文件,将希望不受管的设备添加到其中[keyfile] unmanaged-devices=interface-name:enp1s0
要将多个设备设置为非受管设备,请使用分号分隔
unmanaged-devices
参数中的条目:[keyfile] unmanaged-devices=interface-name:interface_1;interface-name:interface_2;...
重新载入 NetworkManager 服务:
~]# systemctl reload NetworkManager
-
reapply DEV
:重新应用与指定设备相关的所有网络设置。它会强制 NetworkManager 重新加载和应用与指定设备相关的所有配置,包括 IP 地址、网关、DNS 设置等。
示例命令:~]# nmcli device replay ens17
-
modify
:修改设备上处于活动的设备,但该修改只是临时的,并不会写入文件。命令格式和 nmcli connection modify 相同
示例命令:~]# nmcli device modify eth0 +ipv4.addresses 192.168.100.103/24
-
delete
:删除指定设备,该命令从系统中删除接口。请注意, 这仅适用于诸如bonds, bridges, teams等软件设备。命令无法删除硬件设备 (如以太网)。超时时间为10秒
示例命令:~]# nmcli device delete bonds
-
monitor
:用于监视特定网络设备(如 ens17)的状态变化,并实时显示相关事件。网上查的很多文档说还可以检测ip增加和减少,但是测试时仅仅打印了网卡up和down的相关信息,运行该命令会占据一个终端
示例命令:~]# nmcli device monitor ens17
5.2.2 connection
用于管理和配置网络连接的子命令。通过 nmcli connection 可以列出、创建、修改、删除和显示网络连接的详细信息。
-
show
:显示当前连接~]$ nmcli connection show NAME UUID TYPE DEVICE Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3 ens3 aaf6eb56-73e5-4746-9037-eed42caa8a65 ethernet -- 仅显示当前活跃的连接 ~]$ nmcli connection show --active NAME UUID TYPE DEVICE Profile 1 db1060e9-c164-476f-b2b5-caec62dc1b05 ethernet ens3
-
add
:添加一个新连接
示例4: 添加一个以太网链接:nmcli con add ifname enp1s0 type ethernet
~]# nmcli conn add ifname ens17 type ethernet Connection 'ethernet-ens17' (a8e9f1de-2f2d-452f-9185-c933e163c540) successfully added. ~]# nmcli conn show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 ens17 cf306567-fa07-49c0-ad7b-ef17bc4d0d6e ethernet -- ethernet-ens17 a8e9f1de-2f2d-452f-9185-c933e163c540 ethernet --
使用这个命令添加的网络连接,可以看到其NAME显示的是ethernet-ens17,如果想让这个名称和真实的网络设备报保持一致,需要结合
con-name
选项一起使用,命令示例:nmcli conn add ifname ens17 type ethernet con-name ens17
,这样就可以保证添加的网络连接名称叫ens17,其对应的网卡也是ens17,更方便理解。但是nmcli可以创建和关联网卡名称不同的连接,比如给特定的网络环境起一个方便识别的名称,示例如下:~]# nmcli conn add ifname eth3 type ethernet connection.id "office net" #关联的网卡叫做eth3,但是链接名称叫做office net ~]# nmcli conn show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 ens17 cf306567-fa07-49c0-ad7b-ef17bc4d0d6e ethernet -- office net 5cf840c6-47b5-475a-9f6c-25ab23f5e193 ethernet --
示例5:示例4只能创建一个使用dhcp协议获取IP的链接文件,如果想创建一个拥有静态IP地址的网卡文件,需要使用以下命令:
nmcli connection add type ethernet con-name CONNECTION-NAME ifname INTERFACE-NAME ip4 ADDRESS gw4 ADDRESS
添加IPV4地址示例: ~]# nmcli con add type ethernet con-name test-lab ifname ens9 ip4 10.10.10.10/24 gw4 10.10.10.254 添加IPV6地址示例: ~]$ nmcli con add type ethernet con-name test-lab ifname ens9 ip6 abbe::cafe gw6 2001:db8::1
示例6:添加静态、默认路由
添加默认路由:~]# nmcli connection modify enp1s0 ipv4.gateway 192.168.1.1 添加静态路由:~]# nmcli connection modify enp1s0 +ipv4.routes "192.168.122.0/24 10.10.10.1" #这会将去往192.168.122.0/24 子网的流量定向到网关 10.10.10.1。
示例7:添加DNS
设置两个 IPv4 DNS 服务器地址: ~]# nmcli conn modify eth0 ipv4.dns "8.8.8.8 8.8.4.4" 请注意,这将取代任何先前设置的 DNS 服务器。设置两个 IPv6 DNS 服务器地址: ~]# nmcli conn modify eth0 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844" 请注意,这将取代任何先前设置的 DNS 服务器。另外,要将额外的 DNS 服务器添加到任何先前设置中,请使用 + 前缀: ~]# nmcli conn modify eth0 +ipv4.dns "8.8.8.8 8.8.4.4" ~]# nmcli conn modify eth0 +ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
示例8:添加bond接口
添加bond接口的命令很简单:~]# nmcli con add type bond ifname mybond0
这个命令就会创建一个名称叫mybond0的设备,如果没有指定链接名称,则链接名称将继承设备名称。~]# nmcli conn add type bond ifname mybond0 Connection 'bond-mybond0' (9cce2792-4945-4d42-8150-77a8bd1f2dc0) successfully added. ~]# nmcli conn show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 bond-mybond0 9cce2792-4945-4d42-8150-77a8bd1f2dc0 bond mybond0
创建bond设备可以指定一些接口运行的属性,如命令:
~]# nmcli con add type bond ifname mybond0 bond.options "mode=balance-rr,miimon=100"
,各个属性需要使用bond.options显示给定,下面是一些常用的属性及其可使用的参数mode:指定绑定模式 0 - balance-rr 轮询(Round-Robin),循环分发数据包 1 - active-backup 主备模式,一个接口为活动状态,另一个为备用 2 - balance-xor 需要启用静态的 Etherchannel(未启用 LACP 协商) 3 - broadcast 需要启用静态的 Etherchannel(未启用 LACP 协商) 4 - 802.3ad 需要启用 LACP 协商的 Etherchannel 5 - balance-tlb 需要可自主端口 6 - balance-alb 需要可自主端口- bala miimon:指定多长时间检查一次各子接口的状态,单位为毫秒 updelay:设置接口从未启动到激活状态的延迟时间。这个选项用于确保在启动接口时,系统有足够的时间等待连接稳定 downdelay:设置接口从激活到非激活状态的延迟时间。这个选项用于在接口失效或断开时,系统等待一段时间后再进行状态切换,以避免过于敏感地进行状态变更。 xmit_hash_policy :用于指定绑定(bond)接口传输哈希策略的选项。这个选项决定了如何根据数据流的特征,将数据分布到绑定接口的成员之间,以实现负载均衡和最大化带宽利用。 - layer2:基于源和目标 MAC 地址进行哈希。适用于基于以太网的负载均衡。 - layer3+4:基于源和目标 IP 地址及端口号进行哈希。适用于基于 IP 的负载均衡。 - layer3+4+6:基于源和目标 IP 地址、端口号以及传输层协议(TCP/UDP)进行哈希。 - layer3+4+6+7:基于源和目标 IP 地址、端口号、传输层协议以及应用层数据(如 HTTP 头部)进行哈希。
如果bond模式设置为主备模式,想切换当前的主子接口,可以使用命令:
~]# nmcli dev mod bond0 +bond.options "active_slave=ens17"
,或者使用命令:~]$ nmcli dev mod bond0 +bond.options "primary=ens17"
创建好bond后,需要为bond指定从接口,示例如下
~]# nmcli con add type bond-slave ifname ens17 master mybond ~]# nmcli conn show NAME UUID TYPE DEVICE bond-ens17 4c5b499b-5392-4ba2-8366-869dbeec74b7 bond mybond System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17
bond-slave文件内容
TYPE=Ethernet NAME="System ens17" UUID=a576bc27-4b66-8dc3-655a-116541f596cb DEVICE=ens17 ONBOOT=yes MASTER_UUID=4c5b499b-5392-4ba2-8366-869dbeec74b7 MASTER=mybond SLAVE=yes
bond文件内容
BONDING_OPTS=mode=active-backup TYPE=Bond BONDING_MASTER=yes PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=bond-ens17 UUID=4c5b499b-5392-4ba2-8366-869dbeec74b7 DEVICE=mybond ONBOOT=yes IPADDR=198.200.38.6 PREFIX=24 GATEWAY=198.200.38.254
小tips:
-
在 RHEL 7 中,默认情况下不会加载 bonding 模块。使用 root 用户身份运行以下命令来载入该模块:
~]# modprobe --first-time bonding
-
验证bond接口是否可以通信,可以从绑定接口 Ping 目标 IP。
~]# ping -I mybond 8.8.8.8
-
查看处于活跃状态的接口,路径需要根据bond的名称更换路径,我这里的名称叫做mybond:
~]# cat /sys/class/net/mybond/bonding/active_slave
示例9:nmcli创建wifi链接
首先需要使用nmcli device wifi list
查看可以用的wifi接入点~]$ nmcli dev wifi list SSID MODE CHAN RATE SIGNAL BARS SECURITY FedoraTest Infra 11 54 MB/s 98 ▂▄▆█ WPA1 Red Hat Guest Infra 6 54 MB/s 97 ▂▄▆█ WPA2 Red Hat Infra 6 54 MB/s 77 ▂▄▆_ WPA2 802.1X * Red Hat Infra 40 54 MB/s 66 ▂▄▆_ WPA2 802.1X VoIP Infra 1 54 MB/s 32 ▂▄__ WEP MyCafe Infra 11 54 MB/s 39 ▂▄__ WPA2
接着使用静态 IP 配置创建 Wi-Fi 连接配置集,但允许自动 DNS 地址分配:
~]$ nmcli con add con-name MyCafe ifname wlp61s0 type wifi ssid MyCafe \ ip4 192.168.100.101/24 gw4 192.168.100.1 --- - con add con-name MyCafe:创建一个新的连接,并指定连接名称为 MyCafe。 - ifname wlp61s0:指定连接将使用的 Wi-Fi 接口名称为 wlp61s0。这是用于指定连接要使用的实际物理接口名称。 - type wifi:指定连接的类型为 Wi-Fi。 - ssid MyCafe:指定 Wi-Fi 的 SSID(服务集标识符)为 MyCafe。这是无线网络的名称。 - ip4 192.168.100.101/24:指定IPv4地址及其子网掩码。 - gw4 192.168.100.1:指定连接的 IPv4 网关为 192.168.100.1。
然后设置 WPA2 密码,如 “caffeine” :
~]$ nmcli con modify MyCafe wifi-sec.key-mgmt wpa-psk ~]$ nmcli con modify MyCafe wifi-sec.psk caffeine
更改 Wi-Fi 状态:
~]$ nmcli radio wifi [on | off ]
-
-
delete
:删除连接,这将删除一个连接,同时删除链接文件。~]# nmcli connection delete eth0_1
-
load
:命令格式:nmcli conn reload [File]
,重新加载网络连接文件,可缺省指定文件。但是这个命令不会重新加载配置,可能会和以往管理centos 7的感觉不太一样~]# nmcli connection reload
-
up | down
:启动、关闭网络连接以连接名进行激活或关闭: ~]# nmcli connection up eth0 以uuid进行激活:~]# nmcli connection up 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 以设备接口名进行激活:~]# nmcli connection up ifname eth0
-
modify
:修改网络连接的属性示例10:将网络连接
office net
改名为my office
~]# nmcli connection show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 ens17 cf306567-fa07-49c0-ad7b-ef17bc4d0d6e ethernet -- office net b38c0ac5-e46c-41be-b9c9-e836be36ac23 ethernet -- ~]# nmcli c modify "office net" con-name "my office" ~]# nmcli conn show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 ens17 cf306567-fa07-49c0-ad7b-ef17bc4d0d6e ethernet -- my office b38c0ac5-e46c-41be-b9c9-e836be36ac23 ethernet --
示例11:修改网络连接的名称并修改其关联的网卡
nmcli conn modify "office net" con-name "my office" ifname eth3
示例12:当你的网卡使用 DHCP 协议获取 IP 地址时,这个选项指定发送给 DHCP 服务器的主机名。这个主机名可以帮助 DHCP 服务器识别和记录客户端,甚至在某些情况下,服务器可能根据主机名来分配特定的 IP 地址。示例中使用的是
ipv4.dhcp-hostname
,使用ipv4.dhcp-client-id <client-ID-string>
也可以达到相同的效果。~]# nmcli con modify my-office ipv4.dhcp-hostname my-host ipv6.dhcp-hostname my-host
示例13:添加或删除ip,命令格式:
nmcli conn modify DEV [+|-]setting ip
,注意这里的+ -
是可缺省的,如果缺省则意为修改主ip,setting
需要明确给定,指明需要修改什么,可接受的选项有ipv4.addresses、ipv4.gateway、ipv4.dns1、ipv4.method
,后面的ip则需要给定符合格式的ip地址,下面是几个示例:修改主ip:~]# nmcli conn modify ens17 ipv4.addresses 198.200.60.60/24 ipv4.gateway 198.200.60.254 修改主ip也可以不指定网关,只简单的改个主ip, nmcli conn是命令的nmcli connection的简写,我个人比较喜欢写conn,更为简写的方式你可以写成nmcli c,效果相同 修改DNS:~]# nmcli conn modify ens17 ipv4.dns 8.8.8.8,8.8.4.4 删除ip方式一:~]# nmcli conn modify ens17 -ipv4.addresses 198.200.60.60/24 删除ip方式二:nmcli会给每个ip加一个索引,也可以指定索引值删除ip,需要先查看ip对应的索引值 [root@www ~]# nmcli -f IP4 connection show eth0 IP4.ADDRESS[1]: 192.168.100.101/24 IP4.ADDRESS[2]: 192.168.100.102/24 IP4.ADDRESS[3]: 192.168.100.103/24 IP4.ADDRESS[4]: 192.168.100.104/24 IP4.GATEWAY: 192.168.100.100 IP4.DNS[1]: 8.8.8.8 删除索当前索引为2的地址:~]# nmcli connection modify eth0 -ipv4.addresses 2 修改ipv4的配置方式:~]# nmcli conn modify ens17 ipv4.method {auto | manual | disabled | shared} - auto:自动配置,通常使用 DHCP来获取 IP 地址和其他网络参数。 - manual:手动配置,需要手动指定 IP 地址、子网掩码、网关和 DNS 服务器。 - disabled:禁用 IPv4 配置。 - shared:共享配置,用于将当前连接的网络共享给其他设备,常用于创建热点。
clone
:克隆某个已存在链接,除了连接名称和uuid是新生成的,其他都是一样的,看官方文档中对克隆命令应用场景部分的说明,可能会使用A链接去模拟某B链接的mac地址,从而达到让本应该分配给B链接的配置分配给A 。我能想到的应用场景:机器上有个网卡A 对应链接文件A ,某天网卡A突然坏了,但是上级DHCP的配置是固定的,如果懒得去交换机上修改DHCP设置,那么就可以克隆个B链接文件,从而继承A的链接属性。
命令格式:nmcli conn clone OLD_CONN NEW_CONN
,你甚至可以让克隆出来的链接名称保持和老的一样,但是UUID一定会是新生成的。不过启用相同的链接名称,管理的时候需要用UUID指定链接,如果指定链接名称则两个会同步管理,比如删除,则会两个都删除。~]# nmcli conn clone eth0 eth0 eth0 (c96b5ac5-1cbe-4c54-bbab-4f6cd3385028) cloned as eth0 (0cae3553-643d-443e-9192-9d2a72197f62). ~]# nmcli conn show NAME UUID TYPE DEVICE System ens17 a576bc27-4b66-8dc3-655a-116541f596cb ethernet ens17 eth0 c96b5ac5-1cbe-4c54-bbab-4f6cd3385028 ethernet -- eth0 0cae3553-643d-443e-9192-9d2a72197f62 ethernet --
-
monitor
:和nmcli monitor命令差不多,个人感觉debug的时候可能会用到,平时应用场景较少,并未深入研究,知道即可。~]# nmcli conn momitor
5.2.3 general:显示各类网络接口的链接状态
status
:显示网络管理器的整体状态~]# nmcli general status STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN connected full enabled enabled enabled enabled ~]# nmcli -t -f STATE general connected --- STATE (状态):显示网络管理器的总体状态。可能的值有: - connected:至少有一个网络连接处于活动状态。 - connecting:正在尝试连接到网络。 - disconnected:没有活动的网络连接。 - asleep:网络管理器处于睡眠状态,通常是因为计算机处于睡眠或休眠状态。 - unknown:无法确定网络管理器的状态。 CONNECTIVITY (连接性):显示网络连接的整体状况。可能的值有: - none:没有网络连接。 - portal:连接到网络,但无法访问互联网。可能被重定向到登录门户。 - limited:连接到网络,但只能访问部分互联网资源。 - full:完全连接,可以访问互联网。 WIFI-HW (Wi-Fi 硬件):显示Wi-Fi硬件的状态。可能的值有: - enabled:Wi-Fi硬件已启用。 - disabled:Wi-Fi硬件已禁用。 WIFI (Wi-Fi):显示Wi-Fi软件的状态。可能的值有: - enabled:Wi-Fi软件已启用。 - disabled:Wi-Fi软件已禁用。 WWAN-HW (移动宽带硬件):显示移动宽带硬件的状态。可能的值有: - enabled:移动宽带硬件已启用。 - disabled:移动宽带硬件已禁用。 WWAN (移动宽带):显示移动宽带软件的状态。可能的值有: - enabled:移动宽带软件已启用。 - disabled:移动宽带软件已禁用。
hostname
:用于查看主机名或更改主机名查看主机名:~]# nmcli general hostname 设置主机名:~]# nmcli general hostname <new-hostname>
permissions
:显示当前用户在 NetworkManager 中的拥有的权限信息。例如修改网络设置、激活或停用连接等。~]# nmcli general permissions PERMISSION VALUE org.freedesktop.NetworkManager.enable-disable-network yes org.freedesktop.NetworkManager.enable-disable-wifi yes org.freedesktop.NetworkManager.enable-disable-wwan yes org.freedesktop.NetworkManager.sleep-wake yes org.freedesktop.NetworkManagerwork-control yes org.freedesktop.NetworkManager.wifi.share.protected yes org.freedesktop.NetworkManager.wifi.share.open yes org.freedesktop.NetworkManager.settings.modify.system auth ----解释 org.freedesktop.NetworkManager.enable-disable-network: 允许启用或禁用整个网络。 org.freedesktop.NetworkManager.enable-disable-wifi: 允许启用或禁用 Wi-Fi。 org.freedesktop.NetworkManager.enable-disable-wwan: 允许启用或禁用移动宽带。 org.freedesktop.NetworkManager.sleep-wake: 允许使 NetworkManager 进入或退出睡眠状态。 org.freedesktop.NetworkManagerwork-control: 允许对网络进行控制(例如,激活或停用连接)。 org.freedesktop.NetworkManager.wifi.share.protected: 允许共享受保护的 Wi-Fi 连接。 org.freedesktop.NetworkManager.wifi.share.open: 允许共享开放的 Wi-Fi 连接。 org.freedesktop.NetworkManager.settings.modify.system: 允许修改系统网络设置。auth 表示需要身份验证(例如,输入管理员密码)才能进行此操作。 这些权限值可以是 yes(允许)、no(不允许)或者 auth(需要身份验证)。
5.2.4 networking
主要用于管理和查询网络管理器的全局网络设置
命令格式:nmcli networking [on | off | reload | connectivity | connectivity check]
,大多选项都可见名知意,下面是难理解的选项用法
示例14:nmcli networking connectivity
,这个命令直接返回当前网络连接的状态,它报告的是网络管理器上一次检查到的连接状态。这意味着它可能会使用先前的结果,而不会立即重新检查连接状态。该命令会有几个返回值,代表的意义不同
~]# nmcli networking connectivity
full
full
:表示网络连接完全正常,可以访问互联网。
limited
:表示网络连接有限。可能只能访问本地网络资源,不能访问互联网。通常,这种情况表示路由或网关配置有问题,或者互联网连接中断。
none
:表示没有网络连接。系统没有连接到任何网络,或者网络连接不可用。
portal
:表示网络连接到达了一个门户网站,通常是需要认证的页面,例如公共 Wi-Fi 热点的登录页面。需要通过该门户进行认证才能访问互联网。
unknown
:表示网络连接状态未知。网络管理器无法确定当前的连接状态。
示例15::~]# nmcli networking connectivity check
,
这个命令强制网络管理器立即检查当前的网络连接状态,并返回最新的结果。它会实际尝试连接到一个预定的测试网址,通常是一个公共的、可信赖的互联网资源,以确定当前的连接状态
四、链接状态查看
1. netstat命令
可以显示网络链接、路由表、接口数据统计、地址伪装链接、组播成员关系
- 功能1:显示网络连接相关
命令格式:netstat [options]
-t:显示tcp协议的相关链接 -u:显示udp协议的相关链接 -n:不反解IP地址 --numeric-hosts:不反解主机名 --numeric-ports:不反解端口 -a:显示所有连接 -w:显示裸套接字的相关链接,裸套接字意为不经过传输层,由应用层直接调用IP来实现数据传输的 -l:显示监听状态的链接 -e:扩展格式的链接信息 -p:显示与此链接相关的进程号
- 功能2:显示内核路由表信息
-r:显示内核路由表 -n:不反解
- 功能3:显示接口统计数据
-i:显示所用接口 -I[IFC_NAME]:显示指定接口
2. ss命令
命令格式:ss [options] [ FILTER ]
option:
-t:显示tcp相关链接
-u:显示udp相关链接
-x:unix sock相关
-n:不反解
-a:显示所有连接
-w:显示裸套接字相关链接
-l:显示监听状态链接
-e:扩展格式
-p:显示相关的进程号
-m:内存使用情况
-o:显示计时器信息
filter
state ESTABLISHED:显示已建立的链接
dport = :22 :通过目标端口过滤链接
sport = :22 :通过源端口过滤链接
五、 文本窗口配置网络
system-config-network-tui setup
nmtui
~]# yum install NetworkManager
版权声明:本文标题:Linux网络管理 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728195292a1149216.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论