#device有4种常见状态: connected:已被NM纳管,并且当前有活跃的connection disconnected:已被NM纳管,但是当前没有活跃的connection unmanaged:未被NM纳管 unavailable:不可用,NM无法纳管,通常出现于网卡link为down的时候(比如ip link set ens32 down)
Tips:
nmcli d(device):在nm中有两个维度即连接(connection)和设备(device),当网卡纳入NM管理后,多对一的关系可以为一个设备配置多个连接(查看:nmcli c),每个连接可以理解为一个ifcfg配置文件,但是同一时间只能有一个连接活跃(通过 nmcli c up切换连接)
#示例1.查看被纳管的设备 $nmcli device || nmcli dev status # DEVICE TYPE STATE CONNECTION(可以有多个连接对应一个设备) # ens192 ethernet 已连接 ens192 # br-802abd4e0fb9 bridge 已连接 br-802abd4e0fb9 # docker0 bridge 已连接 docker0 # virbr0 bridge 已连接 virbr0 $nmcli d show #查看所有device详细信息 $nmcli d show ens192 #查看指定device的详细信息 $nmcli d reapply ens32 #专门用于刷新connection,前提是网卡的device处于connected状态,否则会报错(立即生效)。 $nmcli d set ens32 autoconnect yes|no #设置是否自动连接 $nmcli d set ens32 managed yes|no #设置是否自动管理 #纳入与取消纳入管理 $nmcli d monitor ens192 $nmcli d delete ens192 #删除网卡 $nmcli d connect ens192 #激活网卡:由NM对指定网卡进行管理(类似于接上网卡网线),同时刷新该网卡对应的活跃connection $nmcli d disconnect ens32 #N不管理指定网卡:(类似于拔掉网线),此操作不会变更实际网卡的link状态,只会使对应的connection变成非活跃。若重启系统则又会自动connect。
#示例2.网卡管理(CentOS8)connection可以简写 $nmcli connection show --active #查看当前活动的会话 # NAME(con-name) UUID TYPE DEVICE(iframe) # ens192 c810ecfb-02b2-384a-afee-fe6765d7ee34 ethernet ens192 #查看网卡的UUID与网卡名称对应的设备名称:标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径 $nmcli c show ifcfg-ens192 # 查看connection详细信息 $nmcli c show ad608f46-911d-4b94-bfc6-2d2b6423b3ff $nmcli c show /etc/sysconfig/network-scripts/ifcfg-ens192 # NAME UUID TYPE DEVICE # ifcfg-ens192 ad608f46-911d-4b94-bfc6-2d2b6423b3ff ethernet ifcfg-ens192 # 有线连接 1 0fc240a9-0d6a-3322-b26d-f92e13afca1f ethernet enp0s8 # 有线连接 2 133c6109-52e2-3b45-a883-674652d15fdd ethernet enp0s9
#示例3.网络配置管理启动和关闭以及删除链接信息 $nmcli c reload #重启网卡(配置不会立即生效) # 重载指定ifcfg或route到connection(立即生效) $nmcli c load /etc/sysconfig/network-scripts/ifcfg-ens192 $nmcli c load /etc/sysconfig/network-scripts/route-ens32 $nmcli c down ens192 #关闭指定网卡链接 相当于ifdown $nmcli c up ens192 #启动指定网卡链接 相当于ifup (同一时间被激活的链接只有一个单网卡设备的情况下) $nmcli c delete ens192[uuid] #删除connect链接(类似于ifdown并删除ifcfg) # 配置文件修改后立即生效 $nmcli d reapply ens192 $nmcli d connect ens192
#示例4.采用nmcli编辑网卡文件进行配置IP(十分方便-交互式) $nmcli con edit eth0 nmcli> set ipv4.addresses 192.168.0.100/24 192.168.0.254 nmcli> goto ipv4.addresses nmcli ipv4.addresses> change # Edit 'addresses' value: 192.168.1.200/24 # Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes nmcli> save #并且是自动写到配置文件里面,重启也生效的 # Connection 'eth0' (5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03) successfully updated. nmcli> activate eth0 nmcli> quit
#示例5.非交互式配置修改网络 $nmcli conn add type ethernet con-name thh0 ifname ens192 #ens192网卡设备 $nmcli con modify eth0 ipv4.addresses 192.168.0.200/24 #1.关闭会话的自动连接(autoconnect)。 $nmcli con mod eth0 connection.autoconnect no #2.指定一个DNS服务器地址 $nmcli con mod eth0 ipv4.dns 8.8.8.8 #配置参数,是可以添加和删除的,比如使用+ 或 - 号在参数前面。 $nmcli con mod eth0 +ipv4.dns 8.8.4.4 #比如添加第二个DNS服务器地址 #3.更换静态IP地址和默认网关。 $nmcli con mod eth0 ipv4.addresses "192.168.0.120/24 192.168.0.1" $nmcli con mod eth0 +ipv4.addresses 192.168.0.130/24 #添加第二个ip #注:nmcli con mod修改的配置会自动保存成配置文件,并且重启后依然有效,但是如果配置更改了你需要从新激活一下,使新配置生效。 $nmcli con mod eth0 connection.autoconnect yes #配置开机自动启动 $nmcli con up eth0
#示例6.DHCP与Static配置 #1.创建connection配置静态手动获取ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动) nmcli c add type ethernet con-name eth0 ifname ens192 ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
#2.创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动) nmcli c add type ethernet con-name eth0 ifname ens192 ipv4.method auto
#4.启动两个从连接,然后启动主连接;启动eth0和eth1时会自动disconnect网卡上原有的连接。 nmcli connection up eth0 nmcli connection up eth1 nmcli connection up bond0
#实例9.WIFI搜寻和链接 #设置NetworkManager自动启动并且安装NetworkManager-wifi $chkconfig NetworkManager on && yum -y install NetworkManager-wifi $nmcli r wifi on # 开启无线网络 $nmcli r all off # 关闭无线网络(NM默认启用无线网络) $nmcli dev wifi $nmcli dev wifi connect password
#示例10.整体联网控制操作 nmcli networking #查看NM纳管状态 enabled nmcli n on #开启NM纳管 nmcli n off #关闭NM纳管(谨慎执行) nmcli m # 监听事件 nm-online # 检测NM是否在线可用 Connecting............... 30s [online]
#ARGUMENTS是命令的一些参数,它们倚赖于对象和命令: ip支持两种类型的参数:flag和parameter。flag由一个关键词组成;parameter由一个关键词加一个数值组成 为了方便,每个命令都有一个可以忽略的默认参数 例如,参数dev是ip link命令的默认参数,因此ip link ls eth0 等于 ip link ls dev eth0
#示例0.用ip命令显示网络设备的运行状态 ip link | grep PROMISC #正常网卡不应该存在promisc,如果存在可能有sniffer ip link list ip -s link list #等同于ifconfig eth0 # 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 # link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 # RX: bytes packets errors dropped overrun mcast # 4996 38 0 0 0 0 # TX: bytes packets errors dropped carrier collsns # 4996 38 0 0 0 0 ip -s -s link ls eth0 # #查看eth0网卡信息 错误消息 # 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 # link/ether 00:16:3e:04:c7:0b brd ff:ff:ff:ff:ff:ff # RX: bytes packets errors dropped overrun mcast # 957505630 1666773 0 0 0 0 # RX errors: length crc frame fifo missed # 0 0 0 0 0 # TX: bytes packets errors dropped carrier collsns # 196168619 1455570 0 0 0 0 # TX errors: aborted fifo window heartbeat transns # 0 0 0 0 2
#示例1.网卡的地址信息 ip addr #所有网卡的地址信息 ip addr show eth0 #指定网卡的配置信息 # 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 # link/ether 00:16:3e:04:c7:0b brd ff:ff:ff:ff:ff:ff # inet 172.17.24.236/18 brd 172.17.63.255 scope global dynamic eth0 # valid_lft 313310085sec preferred_lft 313310085sec ip addr ls eth0 #ip address show--显示协议地址. 缩写:show、list、lst、sh、ls、l
#示例2.设置IP地址与删除IP地址 ip addr add 192.168.1.1/24 dev eth0 ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0 # 为每个地址设置一个字符串作为标签 ip addr add 192.168.4.2/24 brd + dev eth1 label eth0:1 # 在以太网接口eth0上增加一个地址192.168.4.2,掩码长度为24位(255.255.255.0),标准广播地址,标签为eth0:Alias ip addr del 192.168.1.1 dev eth0 ip addr del 192.168.4.1/24 brd + dev eth0 label eth0:1 # ip address delete--删除一个协议地址. 缩写:delete、del、d
# 示例3.查看路由/显示核心路由表/设置路由 ip route ip -s route list # default via 172.17.63.253 dev eth0 # default via 172.17.63.253 dev eth0 proto dhcp metric 100 # 169.254.0.0/16 dev eth0 scope link metric 1002 # 172.17.0.0/18 dev eth0 proto kernel scope link src 172.17.24.236 # 172.17.0.0/18 dev eth0 proto kernel scope link src 172.17.24.236 metric 100 # 172.18.0.0/16 dev docker0 proto kernel scope link src 172.18.0.1 ip route add 10.10.107.221/32 via 10.10.107.1 src 10.10.107.236 # 配置路由时指定源地址
# 示例4.设置网卡设备 ip link set dev eth0 up # up/down 开启/关闭设备 = ifconfig eth0 up/down ip link set dev eth0 txqueuelen 100 # 改变设备传输队列的长度 ip link set dev eth0 mtu 1500 # 改变网络设备MTU(最大传输单元)的值 ip link set dev eth0 address 00:01:4f:00:15:f1 # 修改网络设备的MAC地址 (重要)
# 示例5.显示ARP缓存条目 $ip neigh # 172.20.0.2 dev br-15352d6a83b9 lladdr 02:42:ac:14:00:02 STALE # 172.18.0.2 dev docker0 lladdr 02:42:ac:12:00:02 STALE # 172.17.63.253 dev eth0 lladdr ee:ff:ff:ff:ff:ff DELAY # 在设备eth0上,为地址10.0.0.3添加一个permanent ARP条目 $ip neigh add 10.0.0.3 lladdr 0:0:0:0:0:1 dev eth0 nud perm # 把状态改为reachable $ip neigh chg 10.0.0.3 dev eth0 nud reachable # 删除设备eth0上的一个ARP条目10.0.0.3 $ip neigh del 10.0.0.3 dev eth0
# 示例6.网卡地址处理(ip高级命令) ip -s -s add f to 10/8 #删除属于私网10.0.0.0/8的所有地址 ip -4 addr flush label "eth0"#取消所有以太网卡eth0的IP地址
# 示例8.清除协议地址 # 删除属于私网10.0.0.0/8的所有地址: ip -s -s a f to 10/8
# 取消所有以太网卡的IP地址 ip -4 addr flush label "eth0"
# 示例9.显示网络邻居的信息 ip neighbour show # 10.20.176.102 dev ens160 lladdr 00:50:56:8a:87:27 STALE # 10.20.176.217 dev ens160 lladdr 18:c0:4d:41:c9:cb REACHABLE
# 示例10.为ens33网卡设置一个临时IP并为其设置一临时路由 sudo ip addr add 192.168.30.100/24 dev ens33 sudo ip route add default via 192.168.30.2
# - 3.添加静态路由指定单位内网通过eth1连接 ip route add 192.168.39.0/24 via 192.168.39.1 ip route add 192.168.0.0/16 via 192.168.39.1 ip route add 172.19.0.0/16 via 192.168.39.1 # 或者如下命令 ip route add -net 202.14.88.0 netmask 255.255.255.0 gw 221.5.43.1 eth0
# - 4.删除静态路由的命令: ip route del 192.168.39.0/24 via 192.168.39.1
#示例1.显示所有得arp映射列表 arp -a ? (172.20.0.2) at 02:42:ac:14:00:02 [ether] on br-15352d6a83b9 ? (172.18.0.2) at 02:42:ac:12:00:02 [ether] on docker0 gateway (172.17.63.253) at ee:ff:ff:ff:ff:ff [ether] on eth0
$ ip route # default via 10.10.107.1 dev ens32 proto static # 10.10.107.0/24 dev ens32 proto kernel scope link src 10.10.107.220 # 172.21.0.0/16 dev cni0 proto kernel scope link src 172.21.0.1 linkdown # 192.168.109.64/26 via 10.10.107.221 dev tunl0 proto bird onlink # blackhole 192.168.196.0/26 proto bird
$ route # 系统路由表 (自上而下) # Kernel IP routing table # Destination Gateway Genmask Flags Metric Ref Use Iface # default _gateway 0.0.0.0 UG 0 0 0 ens32 # 10.10.107.0 0.0.0.0 255.255.255.0 U 0 0 0 ens32 # 172.21.0.0 0.0.0.0 255.255.0.0 U 0 0 0 cni0 # 192.168.109.64 k8s-node-1 255.255.255.192 UG 0 0 0 tunl0 # 192.168.196.0 0.0.0.0 255.255.255.192 U 0 0 0 *
# 选项 -a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -c display the Coalesce information of the specified ethernet card。 -C Change the Coalesce setting of the specified ethernet card。 -g Display the rx/tx ring parameter information of the specified ethernet card。 -G change the rx/tx ring setting of the specified ethernet card。 -i 显示网卡驱动的信息,如驱动的名称、版本等。 -d 显示register dump信息, 部分网卡驱动不支持该选项。 -e 显示EEPROM dump信息,部分网卡驱动不支持该选项。 -E 修改网卡EEPROM byte。 -k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。 -K 修改网卡Offload参数的状态。 -p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。 -r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。 -S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。 -t 让网卡执行自我检测,有两种模式:offline or online。 -s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。
#示例5.停止网卡的发送模块TX,请输入 ethtool -A tx off eth0 ethtool -a eth0 #查看tx模块是否已被停止
#示例6.关闭网卡对收到的数据包的校验功能,请输入: ethtool -K eth0 rx off ethtool -k eth0 #查看校验功能是否已被停止 Features for eth0: rx-checksumming: on [fixed] tx-checksumming: on tx-checksum-ipv4: off [fixed] tx-checksum-ip-generic: on
Tips : 如果ethtool 和mii-tool查出来的速率不同呢?
曾经有个千兆网卡二者查出的速率不同多方查阅,终于在man mii-tool发现了结果 This program is obsolete. Valid media are only 100baseT4, 100baseTx-FD,100baseTx-HD, 10baseT-FD and 10baseT-HD ethernet cards. For replacement check ethtool. 如果你也遇到这个问题不要犹豫果断相信ethtool的结果吧。
#示例1.释放获取到得IP地址: sudo dhclient eth1 -r #释放ip命令 Listening on LPF/eth1/00:0c:29:9b:52:dd Sending on LPF/eth1/00:0c:29:9b:52:dd Sending on Socket/fallback DHCPRELEASE on eth1 to 192.168.233.254 port 67 (xid=0x5395c742)
#示例2.重新获取IP sudo dhclient eth1 #获取ip命令
nscd 命令
描述:nscd(Name Service Cache Daemon)是一种能够缓存 passwd、group、hosts 的本地缓存服务,分别对应三个源 /etc/passwd、/etc/hosts、/etc/resolv.conf。
其最为明显的作用就是加快 DNS 解析速度,在接口调用频繁的内网环境建议开启,实际上我们利用 nscd 的 hosts 缓存服务来实现 清除 CentOS 8 Linux 下的 DNS 缓存。
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主, 将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!