[转帖]Linux下network与NetworkManager的和平共处

linux,network,networkmanager,和平共处 · 浏览次数 : 0

小编点评

## NetworkManager 基础使用分析 **NetworkManager** 是一个用于管理网络的工具,提供了 **nmctl** 和 **nmtui** 等工具来进行操作。 **nmctl** 命令行工具用于直接管理网络状态和操作,而 **nmtui** 是一个图形化工具,可以方便地配置服务器的网络。 **主要参数与配置文件中的参数对应关系图:** | **参数** | **配置文件** | |---|---| | eth0 静态地址 | /etc/netplan/00-installer-config.yaml | | 子网掩码 | /etc/netplan/00-installer-config.yaml | | 网络连接 | /etc/netplan/00-installer-config.yaml | **解决无法启动网络的问题:** 1. **检查配置是否正确:**确保网络参数设置正确,尤其是 **eth0** 的 IP 地址和子网掩码。 2. **检查 NetworkManager 是否启动:**可以使用 `systemctl list-unit-files --type service | grep NetworkManager` 和 `chkconfig --list | grep network` 命令检查 NetworkManager 的启动状态。 3. **检查设备是否连接到网络:**可以使用 `nmcli device DEVICE TYPE STATE CONNECTION` 命令检查设备是否连接到网络。 4. **尝试重启 NetworkManager:**可以使用 `systemctl restart NetworkManager` 命令重启它。 **其他建议:** * 使用 **nmtui** 来管理网络,因为它更加易于使用。 * 可以禁用 **NetworkManager** ,但这会影响网络自动启动。 * 可以使用 **nmcli** 命令直接管理网络。

正文

https://zhuanlan.zhihu.com/p/426926356

 

简介

我们在使用CentoOS系统时偶尔会遇到配置都正确但network启动不了的问题,这问题经常是由NetworkManager引起的,关闭NetworkManager并取消开机启动network就能正常启动。使用的Linux经常使用命令行模式,所以大家都不怎么去了解NetworkManager,造成了糊里糊涂的解决问题。下面我们看一下NetworkManager的基础使用。

分析

NetworkManage与network功能类似,都是用于管理网络,NetworkManager提供了nmctl和nmtui两个工具:
nmctl:命令行工具

[root@mx ~]# nmcli --help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

[root@mx ~]#

我们可以直接使用命令行来管理网络,下面是对应参数项目与配置文件内的参数对应关系图。

# 比如我这里设置eth0为手动设置静态地址,为192.168.31.5,子网掩码24,自启动
nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.31.5/24 connection.autoconnect yes 
nmcli connection up eth0

nmtui:伪图形界面
两个都是用来管理网络,但是有一个前提:nmctl networking 状态必须是enable否则设备状态为unmanaged,这会导致network启动不了!

查看方式如下:

[root@master03 ~]# nmcli networking
enabled

使用nmtui来查看网络,直接在命令行下敲nmtui,就会出现蓝底的伪图形界面,可以很方便的配置服务器的网络。

设置完成后,要记得在第二项目中设置对应网卡启动,这样才能正常使用。

 

解决

如果遇到network无法启动的情况,检测配置是是否有问题,如果是服务器(多网口),检测网线是否插在你启动的网网口上 检测你的NetworkManager是否启动,如果启动了可参考一下方法处理 简单粗暴:关闭NetworkManager服务,并取消开机启动(要是你使用的为命令行模式,没有有用图形界面,可以放心使用这种方法,使用图形界面的话还是建议自己排查一下) 排查NetworkManage:

  • 检查nmctl networking 状态是否为enabled,如果不是,执行一下命令开启
[root@master03 ~]# nmcli networking on
[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network
[root@master03 ~]# nmcli device
DEVICE   TYPE      STATE      CONNECTION
ens33    ethernet  connected  ens33
docker0  bridge    unmanaged  --
lo       loopback  unmanaged  --
[root@master03 ~]#
  • 检测device有没有连接到connection,命令:nmcli connection来查看连接状态。 若没有,则使用命令来连接:nmcli device connect ens33
  • 检测连接是否启用
[root@master03 ~]# nmcli connection
NAME   UUID                                  TYPE      DEVICE
ens33  4d574cba-a63e-49ae-8cb2-d663a8dd796e  ethernet  ens33

如果没有启用

注意了:我的连接名称是ens33,根据你自己的情况自己改进,所有操作完成以后都执行以下命令。

[root@master03 ~]# systemctl restart NetworkManager
[root@master03 ~]# systemctl restart network

否则可能不生效,当然上面两种网络管理方式network与NetworkManager其它是相辅相成的作用,只需要使用其中一种方式来管理即可,另外一种可以禁用掉(注意:至少保持一种自启动,否则可能会出现开机没有网络的状况)。
我比较喜欢使用NetworkManager来管理网络,更大的强大和易用,所以我这里把NetworkManager设置为开机启动,network为禁止开机启动。使用以下命令来查看启动状态。

# 查看NetworkManager的是否为自启动
[root@mx ~]# systemctl list-unit-files --type service | grep NetworkManager

# 查看network是否设置为自启动
[root@mx ~]# chkconfig --list | grep network

至此!

与[转帖]Linux下network与NetworkManager的和平共处相似的内容:

[转帖]Linux下network与NetworkManager的和平共处

https://zhuanlan.zhihu.com/p/426926356 简介 我们在使用CentoOS系统时偶尔会遇到配置都正确但network启动不了的问题,这问题经常是由NetworkManager引起的,关闭NetworkManager并取消开机启动network就能正常启动。使用的Li

[转帖]Linux下network与NetworkManager的和平共处

https://zhuanlan.zhihu.com/p/426926356 简介 我们在使用CentoOS系统时偶尔会遇到配置都正确但network启动不了的问题,这问题经常是由NetworkManager引起的,关闭NetworkManager并取消开机启动network就能正常启动。使用的Li

[转帖]linux路由配置:在Linux操作系统下修改IP、DNS和路由配置

http://www.cnitblog.com/201/archive/2009/08/20/60887.html 熟悉使用ifconfig 会非常方便。 ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 一、修

[转帖]使用 tc netem 模拟网络异常

https://cizixs.com/2017/10/23/tc-netem-for-terrible-network/ 在某些情况下,我们需要模拟网络很差的状态来测试软件能够正常工作,比如网络延迟、丢包、乱序、重复等。linux 系统强大的流量控制工具 tc 能很轻松地完成,tc 命令行是 ipr

[转帖]linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码

https://blog.51cto.com/u_11529070/3607380 linux下 安装了中文版本的,造成sqlplus 连接时出现了乱码 如图 一开始以为是LANG 变量的问题 后来发现是NLS_LANG的问题 解决方法: export NLS_LANG="AMERICAN_AMER

[转帖]Linux下Shell的for循环语句 第一类:数字性循环

#!/bin/bash for((i=1;i<=10;i++)); do echo $(expr $i \* 3 + 1); done #!/bin/bash for i in $(seq 1 10) do echo $(expr $i \* 3 + 1); done #!/bin/bash for

[转帖]linux下性能测试工具netperf使用

https://www.shuzhiduo.com/A/MyJxX2VpJn/ 一、功能简介 netperf是一款针对网络性能的测试工具,主要基于TCP或UDP的传输。根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式的

[转帖]Linux下用dd命令测试硬盘的读写速度

一、测试写速度: time dd if=/dev/zero of=/tmp/test bs=8k count=1000000 测试结果:565 MB/s 二、测试读速度: time dd if=/tmp/test of=/dev/null bs=8k 测试结果:4.7GB/s 三、测试读写速度: t

[转帖]Linux下 查看 每个进程占用的网络带宽 - NetHogs

https://www.cnblogs.com/xuyaowen/p/NetHogs.html 今天在服务器上进行测试程序,发现网速占用比较大,但不是我的程序。可能是其他同学在下载或者上传数据,所以需要看到底是哪个进程。 这时候使用 iftop, vnstat 等命令不能看出具体是哪个进程占用,因为

[转帖]Linux下查看网络流量常用方法

(1)使用ifconfig查看网络流量 RX是接收流量,TX是发送流量。 (2)使用watch more /proc/net/dev查看网卡流量,默认是以字节显示 watch使用命令: (3)iftop 下载地址:http://www.tcpdump.org/release/libpcap-0.8.