Chinaunix首页 | 论坛 | 博客
  • 博客访问: 592931
  • 博文数量: 118
  • 博客积分: 2114
  • 博客等级: 大尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 00:02
文章分类

全部博文(118)

文章存档

2019年(1)

2018年(4)

2017年(1)

2016年(6)

2015年(1)

2014年(1)

2013年(5)

2012年(4)

2011年(17)

2010年(13)

2009年(65)

分类: LINUX

2018-07-24 18:03:22


NetworkManager 是目前 Linux 系统中提供网络连接管理服务的一套软件,也支持传统的 ifcfg 类型配置文件。核心是 NetworkManager 守护进程,还提供了命令行工具 nmcli ,以及图形界面配置工具。NetworkManager 可用于以下连接类型:以太网、VLAN、网桥、绑定、成组、Wi-Fi、移动宽带(比如移动网络 3G)及 IP-over-InfiniBand。在这些连接类型中,NetworkManager 可配置网络别名、IP 地址、静态路由器、DNS 信息及 VPN 连接以及很多具体连接参数。最后,NetworkManager 通过 D-bus 提供 API,D-Bus 允许应用程序查询并控制网络配置及状态。

启动、停止、查看 NetworkManager 服务:

  • [root@localhost ~]# systemctl start|stop|restart|status NetworkManager

NetworkManager 的配置文件和脚本保存在 /etc/sysconfig/ 目录中。大多数网络配置信息都保存在这里,VPN、移动宽带及 PPPoE 配置除外,这些配置保存在 /etc/NetworkManager/ 子目录中。例如,接口的具体信息是保存在 /etc/sysconfig/network-scripts/ 目录下的 ifcfg-* 文件中。全局设置使用 /etc/sysconfig/network 文件

在命令行中,可以使用 nmcli 工具与 NetworkManager 进行交互。例如,修改了某个 ifcfg-* 文件后,需要手动载入,可以执行:

  • [root@localhost ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ifname

如果要重新载入全部配置文件,可以执行 :

  • [root@localhost ~]# nmcli connection reload

可以执行 nmcli help 查看该命令的语法,命令的各种参数都可以用 Tab 键补全。

  • [root@localhost ~]# nmcli help
  • Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }
  • OPTIONS
  • -t[erse] 简洁输出
  • -p[retty] 美化输出
  • -m[ode] tabular|multiline 输出模式
  • -f[ields] |all|common 指定字段输出
  • -e[scape] yes|no 指定分隔符
  • -n[ocheck] 不检测版本
  • -a[sk] 询问缺失参数
  • -w[ait] 设置超时等待完成操作
  • -v[ersion] 显示版本
  • -h[elp] 获得帮助
  • OBJECT
  • g[eneral] 常规管理
  • n[etworking] 全面的网络控制
  • r[adio] 无线网络管理
  • c[onnection] 网络连接管理
  • d[evice] 网络设备管理
  • a[gent] 网络代理管理

列出所有的网络设备:

  • [root@localhost ~]# nmcli device show
  • GENERAL.DEVICE: enp4s0
  • GENERAL.TYPE: ethernet
  • GENERAL.HWADDR: 00:1D:F3:51:95:4D
  • GENERAL.MTU: 1500
  • GENERAL.STATE: 100 (connected)
  • GENERAL.CONNECTION: enp4s0
  • GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/0
  • WIRED-PROPERTIES.CARRIER: on
  • IP4.ADDRESS[1]: ip = 192.168.5.242/24, gw = 0.0.0.0
  • IP6.ADDRESS[1]: ip = fe80::21d:f3ff:fe51:954d/64, gw = ::
  • GENERAL.DEVICE: ttyACM3
  • GENERAL.TYPE: gsm
  • GENERAL.HWADDR: (unknown)
  • GENERAL.MTU: 0
  • GENERAL.STATE: 30 (disconnected)
  • GENERAL.CONNECTION: --
  • GENERAL.CON-PATH: --
  • 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: --

查看所有网络设备的状态:

  • [root@localhost ~]# nmcli device status
  • DEVICE TYPE STATE CONNECTION
  • enp4s0 ethernet connected enp4s0
  • ttyACM3 gsm disconnected --
  • lo loopback unmanaged --

查看所有的网络连接:

  • [root@localhost ~]# nmcli connection show
  • NAME UUID TYPE DEVICE
  • enp4s0 f056272b-e28a-4e69-8264-af9fccfbf45d 802-3-ethernet enp4s0

可以看到,本机有一个以太网卡和一个 3G 网卡,只有以太网使能了连接,3G 网卡处于未连接状态。TYPE 字段表示连接类型,支持的值有:adsl, bond, bond-slave, bridge, bridge-slave, bluetooth, cdma, ethernet, gsm, infiniband, olpc-mesh, team, team-slave, vlan, wifi, wimax。可以在新建或者编辑连接时用 type 参数设置,按 Tab 键查看该列表,或查看 nmcli(1) man page 中的 TYPE_SPECIFIC_OPTIONS 列表。

DEVICE 表示设备名称,如果是以太网或者WiFi,就是用 ifconfig -a 看到的名称。CONNECTION 表示连接名称,这是在连接配置文件的名称,这里的以太网配置文件是 ifcfg-enp4s0 。可以在新建连接时用 con-name 参数设置。

1. 以太网

新建一个以太网连接,使用动态 IP :

  • [root@localhost ~]# nmcli connection add type ethernet con-name connection-name ifname interface-name

这样会在 /etc/sysconfig/network-scripts/ 目录下生成一个 ifcfg-* 配置文件。使用以下命令激活以太网连接:

  • [root@localhost ~]# nmcli con up my-office
  • Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

用如下命令可以查看该连接的详细信息:

  • [root@localhost ~]# nmcli connection show enp4s0

2. 3G 网卡

查看这个设备的详情:

  • [root@localhost ~]# nmcli device show ttyACM3
  • GENERAL.DEVICE: ttyACM3
  • GENERAL.TYPE: gsm
  • GENERAL.HWADDR: (unknown)
  • GENERAL.MTU: 0
  • GENERAL.STATE: 30 (disconnected)
  • GENERAL.CONNECTION: --
  • GENERAL.CON-PATH: --

新建一个 3G 网卡的连接:

  • [root@localhost ~]# nmcli connection add type gsm ifname ttyACM3 user 3gnet password 3gnet apn 3gnet
  • Connection 'gsm-ttyACM3' (d15e8860-6dc1-4aa5-b579-b898e651a984) successfully added.

这会在 /etc/NetworkManager/system-connections/ 下生成一个配置文件,并且会自动连接,生成一个 ppp0 的网络设备:

  • [root@localhost ~]# cat gsm-ttyACM3
  • [connection]
  • id=gsm-ttyACM3
  • uuid=7561e339-43b7-4e7f-bc2c-5886b5a97afc
  • interface-name=ttyACM3
  • type=gsm
  • [gsm]
  • number=*99#
  • username=3gnet
  • password=3gnet
  • apn=3gnet
  • [root@localhost ~]# nmcli device status
  • DEVICE TYPE STATE CONNECTION
  • enp4s0 ethernet connected enp4s0
  • ttyACM3 gsm connected gsm-ttyACM3
  • ppp0 unknown connected ppp0
  • lo loopback unmanaged --
  • ~]# nmcli connection show
  • NAME UUID TYPE DEVICE
  • ppp0 9e55469f-b362-4122-8031-aa18360a8d75 generic ppp0
  • gsm-ttyACM3 7561e339-43b7-4e7f-bc2c-5886b5a97afc gsm ttyACM3
  • enp4s0 f056272b-e28a-4e69-8264-af9fccfbf45d 802-3-ethernet enp4s0

要取消自动连接,需要将 autoconnect 设为 false :

  • [root@localhost ~]# nmcli connection modify gsm-ttyACM3 connection.autoconnect false
  • [root@localhost ~]# cat /etc/NetworkManager/system-connections/gsm-ttyACM3
  • [connection]
  • id=gsm-ttyACM3
  • uuid=86f38b5b-31e3-4250-8304-c94a8fe7ac29
  • interface-name=ttyACM3
  • type=gsm
  • autoconnect=false
  • [gsm]
  • number=*99#
  • username=3gnet
  • password=3gnet
  • apn=3gnet

3. WiFi

用如下命令查看可访问的 WiFi 热点:

  • [root@localhost ~]# nmcli device wifi list
  • * SSID MODE CHAN RATE SIGNAL BARS SECURITY
  • SBSon Infra 4 54 Mbit/s 84 ?–??–??–??–? WPA1 WPA2
  • TP-LINK_3 Infra 1 54 Mbit/s 77 ?–??–??–?_ WPA2
  • readtime Infra 1 54 Mbit/s 70 ?–??–??–?_ WPA2
  • sbstest Infra 1 54 Mbit/s 59 ?–??–??–?_ WPA1 WPA2
  • Xiaomi Infra 1 54 Mbit/s 57 ?–??–??–?_ WPA2
  • wifi-360 Infra 6 54 Mbit/s 47 ?–??–?__ WPA2

新建一个名为 wifi-con 的 WiFi 连接:

  • [root@localhost ~]# nmcli connection add con-name wifi-con ifname wlp1s0 type wifi ssid TP-LINK_3
  • Connection 'wifi-con' (7c5ae676-a2c7-49df-a37b-d93787be2b72) successfully added.

设置加密方式为 WPA2 ,并设置密码:

  • [root@localhost ~]# nmcli connection modify wifi-con wifi-sec.key-mgmt wpa-psk
  • [root@localhost ~]# nmcli connection modify wifi-con wifi-sec.psk 87654321

激活该连接:

  • [root@localhost ~]# nmcli connection up wifi-con
  • Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
  • [root@localhost ~]# iwconfig
  • lo no wireless extensions.
  • enp4s0 no wireless extensions.
  • wlp1s0 IEEE 802.11abgn ESSID:"TP-LINK_3"
  • Mode:Managed Frequency:2.412 GHz Access Point: 64:09:80:64:2F:8E
  • Bit Rate=1 Mb/s Tx-Power=15 dBm
  • Retry short limit:7 RTS thr:off Fragment thr:off
  • Encryption key:off
  • Power Management:off
  • Link Quality=44/70 Signal level=-66 dBm
  • Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
  • Tx excessive retries:3 Invalid misc:20 Missed beacon:0
阅读(1761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~