Centos 中网络管理 NetworkManager

515 阅读7分钟

本文只讲命令行界面的操作,不涉及桌面操作

  • nmtui
  • nmcli

前情提要:

1、查看网卡信息

  1. ifconfig [网卡名称] # 显示网卡信息
  2. ip add show [网卡名称] # 显示网卡信息

中括号代表可选项

2、编辑域名解析文件

域名解析服务器配置文件

/etc/resolv.conf

如果不知道写什么 可以填如下:

nameserver 114.114.114.114

3、网卡配置文件

centos 下网卡配置信息路径

/etc/sysconfig/network-scripts/ifcfg-ens33

注:(不一定都叫ens33,可以通过ifconfig来查看网卡名字) 我的如下:

ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.31.30  netmask 255.255.255.0  broadcast 192.168.31.255
        inet6 fe80::878c:106f:cb05:4923  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:7b:d9:3d  txqueuelen 1000  (Ethernet)
        RX packets 1989  bytes 192869 (188.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 596  bytes 55370 (54.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

可以通过 systemctl status network 来查看网络启用状态


debian下网卡配置信息路径

/etc/network/interfaces

可以通过 systemctl status networking 来查看网络启用状态

NetworkManager

NetworkManager服务是管理和监控网络设置的守护进程,CentOS7更加注重使用NetworkManager服务来实现网络的配置和管理,CentOS7以前是通过network服务管理网络,以后的版本所有网络管理和设置统一由NetworkManager服务来维护。NetworkManage与network功能类似,都是用于管理网络,NetworkManager提供了nmctlnmtui两个工具。

1、nmtui

命令行中文本交互界面配置工具,可以说是一个伪图形界面。 输入命令 会看到如下界面: image.png

进入->编辑连接

1687613733513.png

可以设置当前网络连接的ip,网关,dns服务器等...


进入->启用连接

image.png

设备前面带*号说明已启用,按下回车键将会关闭。

更改之后 退出。可以使用 nmcli device 或 nmcli c。来看设备启用状态 和 连接状态

nmcli device

1687614424464.png

nmcli c

image.png

nmcli 具体用法请看后面的nmcli详细讲解

"设置系统主机名" 就不演示了。太傻瓜了

2、nmcli

命令行配置工具

使用格式:

    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(监控NetworkManager的改动)

OPTIONS 是可以忽略的

OBJECT的用法,比如查看网络管理状态

nmcli g

nmcli ge

nmcli gen

nmcli gene

nmcli gener

nmcli genera

nmcli general

上面几条命令执行出来结果是一样的,也就是说OBJECT可以只输第一个首字母,后面是可写的

1、nmcli general

通过 nmcli g --help 得出:

用法:nmcli general { 命令 | help }

命令 := { status | hostname | permissions | logging }

 status

 hostname [<主机名>]

 permissions

 logging [level <日志级别>] [domains <日志域>]

其实 nmcli g == nmcli g status

1687610864861.png

nmlic g hostname # 可以获取主机名
nmcli g hostname 主机名 # 命令后跟上你想设置的主机名,就可以设置主机名
nmcli g permissions 可以显示当前用户对于各种网络配置的权限
nmcli g logging 可以显示网络日志输出级别/设置网络日志输入级别
### 以下是显示日志级别(可以看到现在的日志级别是INFO
[root@vmcentos ~]# nmcli g logging
LEVEL  DOMAINS                                                                                                                                                                                                                       
INFO   PLATFORM,RFKILL,ETHER,WIFI,BT,MB,DHCP4,DHCP6,PPP,IP4,IP6,AUTOIP4,DNS,VPN,SHARING,SUPPLICANT,AGENTS,SETTINGS,SUSPEND,CORE,DEVICE,OLPC,INFINIBAND,FIREWALL,ADSL,BOND,VLAN,BRIDGE,TEAM,CONCHECK,DCB,DISPATCH,AUDIT,SYSTEMD,PROXY

### 以下是设置日志级别
一般情况下我们可能不需要去改这个日志级别,但是当你网络始终连不上,
需要排查问题是更改这个日志级别是很有必要的。
你或许会有疑问,我该怎么知道都有哪些级别呀?
不要慌你可以通过如下命令查看到都有哪些级别
# man NetworkManager.conf 5  或者  man 5 NetworkManager.conf

[root@vmcentos ~]# nmcli g logging level WARN

2、nmcli networking

nmcli networking 后面有三个字命令,分别是:

  • nmcli networking on #联网
  • nmcli networking off #断网
  • nmcli connectivity #检查连接状态

3、nmcli radio

nmcli radio 是用于查看与控制无线连接

  • nmcli radio #会显示所有类型的无线类型开启状态,比如:WIFI, WWAN
  • nmcli radio all on #所有无线类型开启
  • nmcli radio all off #所有无线类型关闭
  • nmcli radio wifi #显示wifi开启状态
  • nmcli radio wifi on #开启wifi
  • nmcli radio wifi off #关闭wifi

4、nmcli connection

我们通过 nmcli c --help 可以发现这个命令有很多子命令

[root@vmcentos ~]# nmcli c -h
Usage: nmcli connection { COMMAND | help }

COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }

  show [--active] [--order <order spec>]
  show [--active] [id | uuid | path | apath] <ID> ...

  up [[id | uuid | path] <ID>] [ifname <ifname>] [ap <BSSID>] [passwd-file <file with passwords>]

  down [id | uuid | path | apath] <ID> ...

  add COMMON_OPTIONS TYPE_SPECIFIC_OPTIONS SLAVE_OPTIONS IP_OPTIONS [-- ([+|-]<setting>.<property> <value>)+]

  modify [--temporary] [id | uuid | path] <ID> ([+|-]<setting>.<property> <value>)+

  clone [--temporary] [id | uuid | path ] <ID> <new name>

  edit [id | uuid | path] <ID>
  edit [type <new_con_type>] [con-name <new_con_name>]

  delete [id | uuid | path] <ID>

  monitor [id | uuid | path] <ID> ...

  reload

  load <filename> [ <filename>... ]

  import [--temporary] type <type> file <file to import>

  export [id | uuid | path] <ID> [<output file>]

那么不要慌,我们可以先学习几个常用的。

  • nmcli c show #显示所有连接

  • nmcli c up #启用某个连接(后面要跟上某个连接的id或uuid或ifname)

  • nmcli c down #关闭某个连接(后面要跟上某个连接的id或uuid或ifname)

  • nmcli c modify #编辑某个连接(后面要跟上某个连接的id或uuid或ifname)

    示例

      用法:nmcli connection modify { 参数 | help }
    
      参数 := [id | uuid | path] <ID> ([+|-]<设置>.<属性> <值>)+
    
      修改连接配置集的一个或多个属性。配置集由其名称、UUID 或 D-Bus 路径来确定。对
      于具有多个值的属性,您可以在属性名称前插入可选的 "+""-""+" 符号允许附加项
      而不是覆盖整个值。"-" 符号允许删除选中项而不是整个值。
    
      示例:
      nmcli con mod home-wifi wifi.ssid rakosnicek
      nmcli con mod em1-1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8"
      nmcli con mod em1-1 +ipv4.dns 8.8.4.4
      nmcli con mod em1-1 -ipv4.dns 1
      nmcli con mod em1-1 -ipv6.addr "abbe::cafe/56"
      nmcli con mod bond0 +bond.options mii=500
      nmcli con mod bond0 -bond.options downdelay
    
  • nmcli c reload [连接] #重新加载连接配置文件,如果后面没跟连接则会重新加载所有连接的配置文件。

...其它的先不讲了

5、nmcli device

通过nmcli device --help 查看详细用法,一看这里也很多奥。我们看几个简单的

[root@vmcentos ~]# nmcli device --help
Usage: nmcli device { COMMAND | help }

COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }

  status

  show [<ifname>]

  set [ifname] <ifname> [autoconnect yes|no] [managed yes|no]

  connect <ifname>

  reapply <ifname>

  modify <ifname> ([+|-]<setting>.<property> <value>)+

  disconnect <ifname> ...

  delete <ifname> ...

  monitor <ifname> ...

  wifi [list [ifname <ifname>] [bssid <BSSID>] [--rescan yes|no|auto]]

  wifi connect <(B)SSID> [password <password>] [wep-key-type key|phrase] [ifname <ifname>]
                         [bssid <BSSID>] [name <name>] [private yes|no] [hidden yes|no]

  wifi hotspot [ifname <ifname>] [con-name <name>] [ssid <SSID>] [band a|bg] [channel <channel>] [password <password>]

  wifi rescan [ifname <ifname>] [[ssid <SSID to scan>] ...]

  lldp [list [ifname <ifname>]]
  • nmcli d status #显示设备使用状态

  • nmcli d show #显示设备详细信息

  • nmcli d connect 设备名 #启用设备

  • nmcli d disconnect 设备名 #断开设备

  • nmcli d modify 设备名 #编辑设备

    示例

      Usage: nmcli device modify { ARGUMENTS | --help }
    
      ARGUMENTS := <ifname> ([+|-]<setting>.<property> <value>)+
    
      修改设备上当前活动连接的一个或多个属性,但不用更改该连接的配置集。更改会即时生
      效。对于多值属性,您可以在属性名前插可选的 "+""-" 符号。"+" 符号允许附加项
      而不是是替换掉整个值。"-" 符号允许移除选中项而不是整个值。
      例如:
      nmcli dev mod em1 ipv4.method manual ipv4.addr "192.168.1.2/24, 10.10.1.5/8"
      nmcli dev mod em1 +ipv4.dns 8.8.4.4
      nmcli dev mod em1 -ipv4.dns 1
      nmcli dev mod em1 -ipv6.addr "abbe::cafe/56"
    

6、nmcli agent 和 nmcli monitor 自行研究~

好啦 ,分享结束啦!

最后,微信聊天时想生成纯文字的表情可以扫这个码哦~

gh_2ab5c4d32ee4_258.jpg