Linux网络管理

一、NetworkManager 简介

NetworkManager 是 CentOS/RHEL 系统中默认的网络管理服务,提供以下功能:

  • 管理有线、无线、VPN 等各种网络连接
  • 自动检测和配置网络
  • 提供命令行(nmcli)和图形界面(TUI/GUI)管理工具
  • 支持动态网络配置更改

二、NetworkManager 服务管理

1. 查看服务状态

systemctl status NetworkManager

2. 启动/停止/重启服务

systemctl start NetworkManager    # 启动
systemctl stop NetworkManager     # 停止
systemctl restart NetworkManager  # 重启

3. 设置开机自启

systemctl enable NetworkManager   # 启用自启
systemctl disable NetworkManager  # 禁用自启
systemctl --now enable NetworkManager

等价于:
systemctl start NetworkManager
systemctl enable NetworkManager

三、nmcli 命令行工具

Network Manager Command Line

1. 查看网络设备状态

[root@yangge ~]# nmcli device status 
DEVICE TYPE     STATE     CONNECTION
ens33   ethernet connected ens33      
lo     loopback unmanaged  --  

[root@yangge ~]# nmcli device show ens33
GENERAL.DEVICE:                         ens33
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:93:92:66
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens33
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         192.168.92.131/24
IP4.GATEWAY:                            192.168.92.2
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.92.2, mt = 100
IP4.ROUTE[2]:                           dst = 192.168.92.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             192.168.92.2
IP4.DOMAIN[1]:                         localdomain
IP6.ADDRESS[1]:                         fe80::b57:b45:9e22:fe47/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = ff00::/8, nh = ::, mt = 256, table=255

2. 查看所有连接配置

[root@yangge ~]# nmcli connection show 
NAME   UUID                                 TYPE     DEVICE
ens33 3dc71aa4-c4c3-4411-b5b9-18cc45569826 ethernet ens33

[root@yangge ~]# nmcli connection show ens33

[root@yangge ~]# ls /etc/sysconfig/network-scripts/
ifcfg-ens33 ifdown-ippp ifdown-routes   ifup ifup-ipv6   ifup-ppp       ifup-tunnel
ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn   ifup-routes   ifup-wireless
ifdown   ifdown-isdn ifdown-Team     ifup-bnep     ifup-plip   ifup-sit      

[root@yangge ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33 # ens33连接对应的配置文件
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" # 动态IP,从DHCP服务器获取
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33" # 连接名
UUID="3dc71aa4-c4c3-4411-b5b9-18cc45569826"
DEVICE="ens33" # 该连接对应的设备
ONBOOT="yes" # 开机自动激活该连接

3. 查看详细网络信息

nmcli connection show <连接名称>

[root@yangge ~]# nmcli connection show ens33 # 查看连接的详细信息
connection.id:                         ens33
connection.uuid:                       3dc71aa4-c4c3-4411-b5b9-18cc45569826
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:             ens33
connection.autoconnect:                 yes
ipv4.method:                           manual
ipv4.dns:                               114.114.114.114
ipv4.dns-search:                        --
ipv4.dns-options:                       ""
ipv4.dns-priority:                      0
ipv4.addresses:                         192.168.92.133/24
ipv4.gateway:                           192.168.92.2

四、常见网络配置实战

案例1:配置静态IP地址

  • 固定IP地址:手动指定,不会自动改变
  • 稳定性高:适合服务器、网络设备等需要固定地址的场景
  • 需手动配置:需要管理员设置IP、子网掩码、网关、DNS等信息
# 查看原有的网络信息

1. 查IP地址的获取方法
[root@yangge ~]# nmcli connection show ens33 |grep ipv4.method
ipv4.method:           auto # auto或dhcp表示自动获取

2. IP地址:
[root@yangge ~]# ip addr # 192.168.92.132/24(255.255.255.0)
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:a7:7d:eb brd ff:ff:ff:ff:ff:ff
  inet 192.168.92.132/24 brd 192.168.92.255 scope global noprefixroute dynamic ens33

3. 默认网关:
[root@yangge ~]# ip route # 默认网关为192.168.92.2
default via 192.168.92.2 dev ens33 proto dhcp metric 100
192.168.92.0/24 dev ens33 proto kernel scope link src 192.168.92.132 metric 100

4. DNS服务器:  # 当前DNS服务器为192.168.92.2
[root@yangge ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.92.2

5. 主机名: # 当前主机名为yangge
[root@yangge ~]# hostname
yangge
# 要求【根据自己当前的情况】:
ipv4.method: Manual(手动,静态)
IP Addr: 192.168.92.133
子网掩码: 255.255.255.0(/24)
默认网关: 192.168.92.2
DNS Server: 114.114.114.114
hostname: tianyun.qfedu.com

[root@yangge ~]# nmcli connection show # 查看当前的连接
NAME   UUID                                 TYPE     DEVICE
ens33 3dc71aa4-c4c3-4411-b5b9-18cc45569826 ethernet ens33

# 修改以太网静态IP连接
[root@yangge ~]# nmcli connection modify ens33 \
> ipv4.method manual \
> ipv4.addresses 192.168.92.133/24 \
> ipv4.gateway 192.168.92.2 \
> ipv4.dns 192.168.92.2 \ # "8.8.8.8,4.4.4.4,114.114.114.114"
> autoconnect yes # 当初安装系统时,没有勾选网卡自动连接

# 激活连接
[root@yangge ~]# nmcli connection up ens33


# 查看修改后的网络信息
[root@yangge ~]# ip a
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:a7:7d:eb brd ff:ff:ff:ff:ff:ff
  inet 192.168.92.133/24 brd 192.168.92.255 scope global noprefixroute ens33
      valid_lft forever preferred_lft forever
  inet6 fe80::2e01:8a2b:153c:d9a6/64 scope link noprefixroute
      valid_lft forever preferred_lft forever

[root@yangge ~]# ip route
default via 192.168.92.2 dev ens33 proto static metric 100
192.168.92.0/24 dev ens33 proto kernel scope link src 192.168.92.133 metric 100

[root@yangge ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.92.2

[root@yangge ~]# nmcli connection show ens33 |grep meth
ipv4.method:                           manual

其实还可以这么查:
[root@yangge ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none # none表示静态,dhcp表示动态
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 # 连接名
UUID=3dc71aa4-c4c3-4411-b5b9-18cc45569826
DEVICE=ens33 # 设备名【网卡名】
ONBOOT=yes # 自动连接 autoconnect yes
IPADDR=192.168.92.133 # IP地址
PREFIX=24 # 子网掩码
GATEWAY=192.168.92.2 # 默认网关
DNS1=192.168.92.2 # DNS服务器


扩展:当初安装系统时,没有勾选网卡自动连接
[root@yangge ~]# nmcli connection modify ens33 autoconnect yes
[root@yangge ~]# nmcli connection up ens33
添加一个新的连接(配置)
[root@yangge ~]# nmcli connection add \ # 增加一个连接(配置)
> type ethernet \ # 网络的类型,以太网
> ifname ens33 \ # if(interface),接口(设备)的名称
> con-name zhuzhuxia \ # 新建连接(配置)的名称
> ipv4.method manual \
> ipv4.addresses 1.1.1.10/8 \
> ipv4.gateway 1.1.1.1 \
> ipv4.dns 1.1.1.1

[root@yangge ~]# nmcli connection show
NAME       UUID                                 TYPE     DEVICE
ens33     3dc71aa4-c4c3-4411-b5b9-18cc45569826 ethernet ens33  
zhuzhuxia eca4bd98-a2f7-45f4-9ba4-3cabc823dd25 ethernet  --    

[root@yangge ~]# nmcli device status
DEVICE TYPE     STATE     CONNECTION
ens33   ethernet connected ens33      
lo     loopback unmanaged  --

[root@yangge ~]# ls /etc/sysconfig/network-scripts/
ifcfg-ens33     ifdown-ippp   ifdown-sit       ifup-bnep ifup-plusb   ifup-TeamPort
ifcfg-lo         ifdown-ipv6   ifdown-Team     ifup-eth   ifup-post   ifup-tunnel
ifcfg-zhuzhuxia ifdown-isdn   ifdown-TeamPort ifup-ippp ifup-ppp     ifup-wireless

[root@yangge ~]# cat /etc/sysconfig/network-scripts/ifcfg-zhuzhuxia
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=1.1.1.10
PREFIX=8
GATEWAY=1.1.1.1
DNS1=1.1.1.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=zhuzhuxia
UUID=eca4bd98-a2f7-45f4-9ba4-3cabc823dd25
DEVICE=ens33
ONBOOT=yes

[root@yangge ~]# nmcli connection up zhuzhuxia # 激活连接zhuzhuxia

# 删除连接
[root@yangge ~]# nmcli connection delete zhuzhuxia
Connection 'zhuzhuxia' (eca4bd98-a2f7-45f4-9ba4-3cabc823dd25) successfully deleted.
[root@yangge ~]#
[root@yangge ~]# nmcli connection show
NAME   UUID                                 TYPE     DEVICE
ens33 3dc71aa4-c4c3-4411-b5b9-18cc45569826 ethernet ens33  
[root@yangge ~]#
[root@yangge ~]# ls /etc/sysconfig/network-scripts/
ifcfg-ens33 ifdown-ippp ifdown-routes   ifup   ifup-ipv6   ifup-ppp       ifup-tunnel
ifcfg-lo ifdown-ipv6 ifdown-sit ifup-aliases ifup-isdn   ifup-routes   ifup-wireless
# 增加或修改新的DNS 8.8.8.8

[root@yangge ~]# cat /etc/resolv.conf # 查看原有的DNS服务器,就1个
# Generated by NetworkManager
nameserver 192.168.92.2

[root@yangge ~]# nmcli connection modify ens33 +ipv4.dns 8.8.8.8 # +表示增加
[root@yangge ~]# nmcli conn up ens33 # 凡是修改某个连接,必须重新UP该连接
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)

[root@yangge ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.92.2
nameserver 8.8.8.8

[root@yangge ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=3dc71aa4-c4c3-4411-b5b9-18cc45569826
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.92.133
PREFIX=24
GATEWAY=192.168.92.2
DNS1=192.168.92.2
DNS2=8.8.8.8

[root@yangge ~]# nmcli connection modify ens33 ipv4.dns "8.8.8.8,114.114.114.114,202.106.0.20"
[root@yangge ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@yangge ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
nameserver 202.106.0.20

修改主机名:
[root@yangge ~]# hostname
yangge
[root@yangge ~]# hostnamectl set-hostname tianyun.qfedu.com
[root@yangge ~]# hostname
tianyun.qfedu.com

[root@yangge ~]# cat /etc/hostname
tianyun.qfedu.com

远程重新连接:
[root@tianyun ~]# # 提示符主机名显示为tianyun

案例2:配置DHCP自动获取IP

  • 自动获取IP:从DHCP服务器动态获取IP配置
  • 管理方便:适合客户端设备,减少手动配置工作
  • 地址可能变化:租约到期后可能获取不同IP
[root@yangge ~]# nmcli connection show 
NAME   UUID                                 TYPE     DEVICE
ens33 3dc71aa4-c4c3-4411-b5b9-18cc45569826 ethernet ens33

# 添加DHCP连接
nmcli connection add con-name "dhcp-ens33" ifname ens33 type ethernet \
ipv4.method auto autoconnect yes

# 激活连接
nmcli connection up "dhcp-ens33"


# 扩展知识(DHCP客户端手动释放release和获取的方法)
[root@yangge ~]# dhclient -r ens33 # release释放

[root@yangge ~]# dhclient -v ens33
Internet Systems Consortium DHCP Client 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/ens33/00:0c:29:93:92:66
Sending on   LPF/ens33/00:0c:29:93:92:66
Sending on   Socket/fallback
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 4 (xid=0x30333a1d) 1. 发现
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x30333a1d) 2. 请示
DHCPOFFER from 192.168.92.254 3. 收到
DHCPACK from 192.168.92.254 (xid=0x30333a1d) 4. 确认
bound to 192.168.92.130 -- renewal in 788 seconds.
[root@yangge ~]# ip addr                    # 查看IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
  link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
  inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
  inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 00:0c:29:a7:7d:eb brd ff:ff:ff:ff:ff:ff
  inet 192.168.92.132/24 brd 192.168.92.255 scope global noprefixroute dynamic ens33
      valid_lft 1779sec preferred_lft 1779sec
  inet6 fe80::2e01:8a2b:153c:d9a6/64 scope link noprefixroute
      valid_lft forever preferred_lft forever

lo网卡: 本地回环接口,虚拟接口,IP 127.0.0.1,它表示是自己
[root@yangge ~]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.051 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.039 ms

ens33网卡:物理网卡,对外通信

[root@yangge ~]# ping www.qfedu.com # 测试和目标主机的连通信
PING evrwoxqc.slt.sched.tdnsv8.com (60.220.213.75) 56(84) bytes of data.
64 bytes from 75.213.220.60.adsl-pool.sx.cn (60.220.213.75): icmp_seq=1 ttl=128 time=34.9 ms
64 bytes from 75.213.220.60.adsl-pool.sx.cn (60.220.213.75): icmp_seq=2 ttl=128 time=18.7 ms

[root@yangge ~]# ping -c2 www.qfedu.com
PING evrwoxqc.slt.sched.tdnsv8.com (60.220.213.75) 56(84) bytes of data.
64 bytes from 75.213.220.60.adsl-pool.sx.cn (60.220.213.75): icmp_seq=1 ttl=128 time=18.6 ms
64 bytes from 75.213.220.60.adsl-pool.sx.cn (60.220.213.75): icmp_seq=2 ttl=128 time=18.1 ms

DNS: 域名解析服务   www.qfedu.com ---DNS Server---> 60.220.213.75

五、连接管理命令

1. 激活/停用连接

nmcli connection up <连接名称>    # 激活
nmcli connection down <连接名称>  # 停用

2. 修改现有连接

# 修改IP地址
nmcli connection modify "ens33" ipv4.addresses "192.168.1.200/24"

# 修改网关
nmcli connection modify "ens33" ipv4.gateway "192.168.1.254"

# 修改DNS
nmcli connection modify "ens33" ipv4.dns "192.168.1.1 8.8.8.8"

3. 删除连接

nmcli connection delete "zhuzhuxia"

六、网络故障排查

1. 查看网络设备详细信息

nmcli device show ens33

2. 重新加载所有连接

nmcli connection reload

3. 查看NetworkManager日志

journalctl -u NetworkManager -f

七、图形界面工具

1. 文本用户界面(TUI)

nmtui

2. 图形界面(GUI)

  • CentOS桌面环境右上角网络图标
  • 或通过nm-connection-editor命令启动

八、注意事项

  1. NetworkManager会覆盖手动修改的/etc/sysconfig/network-scripts/下的配置文件
  2. 对于服务器,建议使用NetworkManager的文本模式(nmcli/nmtui)


💡 感谢你读到这里!这篇《Linux网络管理》是我的用心分享,如果你觉得有收获,不妨:


点个「赞」或「分享」,让更多同路人相遇


🔍 关注我的博客,持续接收技术/成长类干货


💬 文末留言聊聊你的想法,或遇到的同类问题~


🔒 本文为原创,转载请保留原文链接(https://www.lichu228.top/archives/309)与作者信息,感谢尊重与支持!


🌐 想找更多优质内容?点击进入博客主页探索吧~


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇