Linux 温习(五): 网络管理

简介: 在早期的 Linux 系统中,网卡被命名为 eth0、eth1 、eth2 等,但往往不一定准确对应网卡接口的物理顺序。

网络配置

在早期的 Linux 系统中,网卡被命名为 eth0、eth1 、eth2 等,但往往不一定准确对应网卡接口的物理顺序。

  • 以太网接口名称以en开头,WLAN接口名称从 wl 开头,WWAN 接口名称以 ww 开头。
  • 下一个字符表示适配器的类型,其中 o 表示在主板上,s 表示热插拔插槽,p 表示PCI接口设备。
  • 第三个字符为 x 用于合并 MAC 地址,默认情况下不使用,管理员可用。
  • 最后使用数字 n 表示索引、ID 或端口。
  • 如果无法确定名称,则使用 ethn 这样的传统名称。

概念

网络有2个维度:连接(connection)和设备(device),这是多对一的关系。想给某个网卡配ip,首先 NM 要能纳管这个网卡。设备里存在的网卡(即 nmcli d可以看到的),就是 NM 纳管的。接着,可以为一个设备配置多个连接(即 nmcli c可以看到的),每个连接可以理解为一个ifcfg配置文件。同一时刻,一个设备只能有一个连接活跃。可以通过 nmcli c up切换连接。可通过 nmuti 命令可视化编辑网络。

连接(Connection)

连接 ,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c

两种状态

  • 活跃(带颜色字体):表示当前该 connection 生效
  • 非活跃(正常字体):表示当前该 connection 不生效

设备(Device)

设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d

四种状态

  • connected:已被 NM 纳管,并且当前有活跃的 connection
  • disconnected:已被 NM 纳管,但是当前没有活跃的 connection
  • unmanaged:未被 NM 纳管
  • unavailable:不可用,NM 无法纳管,通常出现于网卡 link 为 down 的时候(比如ip link set ethX down)

命令参考

NetworkManager 提供了 nmclinmtuinm-connection-editor管理工具。打

# 基本格式
nmcli [OPTIONS...] [COMMAND] [ARGUMENTS...]


# 查看ip(类似于ifconfig、ip addr)
nmcli
# 创建connection,配置静态ip(等同于配置ifcfg,其中BOOTPROTO=none,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.addr 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.method manual
# 创建connection,配置动态ip(等同于配置ifcfg,其中BOOTPROTO=dhcp,并ifup启动)
nmcli c add type ethernet con-name ethX ifname ethX ipv4.method auto
# 修改ip(非交互式)
nmcli c modify ethX ipv4.addr '192.168.1.200/24'
nmcli c up ethX
# 修改ip(交互式)
nmcli c edit ethX
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 ipv4> save
nmcli ipv4> activate
nmcli ipv4> quit
# 启用connection(相当于ifup)
nmcli c up ethX
# 停止connection(相当于ifdown)
nmcli c down
# 删除connection(类似于ifdown并删除ifcfg)
nmcli c delete ethX
# 查看connection列表
nmcli c show
# 查看connection详细信息
nmcli c show ethX
# 重载所有ifcfg或route到connection(不会立即生效)
nmcli c reload
# 重载指定ifcfg或route到connection(不会立即生效)
nmcli c load /etc/sysconfig/network-scripts/ifcfg-ethX
nmcli c load /etc/sysconfig/network-scripts/route-ethX
# 立即生效connection,有3种方法
nmcli c up ethX
nmcli d reapply ethX
nmcli d connect ethX
# 查看device列表
nmcli d
# 查看所有device详细信息
nmcli d show
# 查看指定device的详细信息
nmcli d show ethX
# 激活网卡
nmcli d connect ethX
# 关闭无线网络(NM默认启用无线网络)
nmcli r all off
# 查看NM纳管状态
nmcli n
# 开启NM纳管
nmcli n on
# 关闭NM纳管(谨慎执行)
nmcli n off
# 监听事件
nmcli m
# 查看NM本身状态
nmcli
# 检测NM是否在线可用
nm-online


对connection做操作时需要指定标识,标识可以是con-name、UUID、如果存在ifcfg文件则也可以用ifcfg的完整路径,即/etc/sysconfig/network-scripts/ifcfg-ethX

创建一个连接

首先要清楚几个概念

  • 设备即接口
  • 连接是供设备使用的配置,其由一组设置组成。
  • 同一个设备可能存在多个连接,但是一次只能有一个保持活动状态
nmcli c add 
  type ethernet 
  con-name ethX-test 
  ifname ethX 
  ipv4.addresses '192.168.1.100/24,192.168.1.101/32' 
  ipv4.routes '10.0.0.0/8 192.168.1.10,192.168.0.0/16 192.168.1.11' 
  ipv4.gateway 192.168.1.254 
  ipv4.dns '8.8.8.8,4.4.4.4' 
  ipv4.method manual
  nmcli connection add con-name link2 ifname eno33554960 type ethernet ip4 192.168.12.109/24 gw4 192.168.12.254

  • type ethernet:创建连接时候必须指定类型,类型有很多,可以通过 nmcli c add type-h看到,这里指定为ethernet。
  • con-name ethX:ethX表示连接(connection)的名字,这个名字可以任意定义,无需和网卡名相同。
  • ifname ethX:ethX表示网卡名,这个ethX必须是在 nmcli d里能看到的。
  • ipv4.addresses ‘192.168.1.100/24,192.168.1.101/32’:配置2个ip地址,分别为192.168.1.100/24和192.168.1.101/32
  • ipv4.gateway 192.168.1.254:网关为192.168.1.254
  • ipv4.dns ‘8.8.8.8,4.4.4.4’:dns为8.8.8.8和4.4.4.4
  • ipv4.method manual:配置静态IP

示例:

查看设备信息
[root@server101 ~]# nmcli d status 
DEVICE       TYPE      STATE         CONNECTION         
br0          bridge    connected     Bridge eno16777736 
eno16777736  ethernet  connected     System eno16777736 
eno33554960  ethernet  disconnected  --                 
eno50332184  ethernet  disconnected  --                 
lo           loopback  unmanaged     --


查看接口eno33554960的信息,尚未设置IP地址
[root@server101 ~]# ip addr show eno33554960 
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:33:56:64 brd ff:ff:ff:ff:ff:ff


使用设备eno33554960创建新的连接
[root@server101 ~]# nmcli connection add con-name link2 ifname eno33554960 type ethernet ip4 192.168.12.109/24 gw4 192.168.12.254
Connection 'link2' (b1a27f59-b39a-4485-94d8-c48cabde073d) successfully added.


启动新创建的连接link2
[root@server101 ~]# nmcli connection up link2  
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)


再次查看接口eno33554960的信息
[root@server101 ~]# ip addr show eno33554960
3: eno33554960: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:33:56:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.12.109/24 brd 192.168.12.255 scope global eno33554960
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe33:5664/64 scope link 
       valid_lft forever preferred_lft forever


远程尝试ping新创建的网络连接,
C:\Users\IH1407>ping 192.168.12.109
正在 Ping 192.168.12.109 具有 32 字节的数据:
来自 192.168.12.109 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.12.109 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.12.109 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.12.109 的回复: 字节=32 时间<1ms TTL=64
192.168.12.109 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms


修改连接

nmcli c modify "con-name" ipv4.addr 10.10.10.1/24 ipv4.gate 10.10.10.254
nmcli c modify "con-name" connection.autoconnect on  ## 开机自启动
nmcli c mod "old_name" con-name "new_name" # 修改连接名
目录
相关文章
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
67 2
|
3月前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
79 4
|
2月前
|
运维 监控 网络协议
|
2月前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
101 1
|
2月前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
36 1
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
61 0
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
45 0
|
3月前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
34 1
|
4月前
|
存储 Linux Shell
在Linux中,如何使用脚本,实现判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些?能ping 通则 认为在线。
在Linux中,如何使用脚本,实现判断 192.168.1.0/24 网络里,当前在线的 IP 有哪些?能ping 通则 认为在线。
|
4月前
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?