Linux网络配置

Linux网络配置

1、nmcli工具

  • 概念:nmcli是 NetworkManager 的命令行接口工具,用于在 Linux 系统中管理和配置网络连接。它提供了强大的功能,适用于服务器环境或无图形界面的系统。

  • 功能特点

    • 设备网络管理
      • 查询网络接口和设备网络状态
      • 启用或禁用网络接口
      • 连接和断开连接网络
    • 网络信息显示
      • 显示网络设备、连接和整体网络状态的详细信息。
      • 查看当前网络连接的状态和配置。
    • 网络配置
      • 配置 IP 地址、子网掩码、网关和 DNS 服务器。
      • 设置静态 IP 或动态获取 IP 地址。
  • 在使用nmcli工具之前需要启动NetworkManager工具

      # 查看运行状态
      systemctl status NetworkManager
      # 启动
      systemctl start NetworkManager
      # 重启
      systemctl restart NetworkManager
      # 关闭
      systemctl stop NetworkManager
      # 查看是否开机启动
      systemctl is-enabled NetworkManager
      # 开机启动
      systemctl enable NetworkManager
    
  • 常用参数

    • 可以通过man nmcli查看

      img

    • nmcli networking(显示NM是否接管网络)

    [root@server ~]# nmcli networking 
    enabled
    
    • 查看网络连接状态

      [root@server ~]# nmcli networking connectivity 
      full
      
      • full:联网
      • limited:联网,但无法上网
      • portal:联网,但需要登录认证
      • none:没网
      • unknown:未知
    • 开关网络连接

      mcli n on
      nmcli n off
      
      • 如下关闭网络连接 ,xshell 断开了
    • general

      • 显示系统网络状态

        nmcli general status
        STATE   CONNECTIVITY  WIFI-HW  WIFI    WWAN-HW  WWAN   
        已连接  完全          已启用   已启用  已启用   已启用 
        
        • STATE:网络是否连接
        • CONNECTIVITY:同nmcli n c
        • WIFI-HW:WIFI硬件开关
        • WIFI:WIFI软件开关
        • WWAN-HW:WWAN硬件开关
        • WWAN:WWAN软件开关
      • 显示主机名

        nmcli general host
        [root@server ~]# nmcli  general  host
        server.tedu.cn
        nmcli general hostname newhostname(可以修改主机名,重启后生效)
        
    • nmcli connection(使用最多的)

    • 显示所有网络连接情况

      nmcli connection show
      nmcli c #show是nmcli c的默认项,因此可以省略
      [root@server ~]# nmcli c
      NAME  UUID                                  TYPE      DEVICE 
      eth1  b9d0de0c-958e-48fb-83d3-d56caed3abb9  ethernet  eth1   
      eth0  cd10a1e4-a06a-4688-a973-018bc8f9ae83  ethernet  eth0  
      
    • 显示当前启动的网络连接

      nmcli c s --active
      nmcli c s -a #因为s后边有参数,因此不能省略
      [root@server ~]# nmcli connection show --active 
      NAME  UUID                                  TYPE      DEVICE 
      eth1  b9d0de0c-958e-48fb-83d3-d56caed3abb9  ethernet  eth1   
      eth0  cd10a1e4-a06a-4688-a973-018bc8f9ae83  ethernet  eth0  
      
    • 显示某个网卡的详细信息

      nmcli c s 设备名
      [root@server ~]# nmcli connection show eth1
      connection.id:                          eth1
      connection.uuid:                        b9d0de0c-958e-48fb-83d3-d56caed3abb9
      connection.stable-id:                   --
      connection.type:                        802-3-ethernet
      connection.interface-name:              eth1
      connection.autoconnect:                 是
      connection.autoconnect-priority:        0
      connection.autoconnect-retries:         -1 (default)
      connection.multi-connect:               0(default)
      connection.auth-retries:                -1
      connection.timestamp:                   1739687023
      connection.read-only:                   否
      connection.permissions:                 --
      connection.zone:                        --
      connection.master:                      --
      connection.slave-type:                  --
      connection.autoconnect-slaves:          -1(default)
      connection.secondaries:                 --
      connection.gateway-ping-timeout:        0
      connection.metered:                     未知
      connection.lldp:                        default
      connection.mdns:                        -1(default)
      connection.llmnr:                       -1(default)
      802-3-ethernet.port:                    --
      802-3-ethernet.speed:                   0
      
    • 启动/关闭指定连接

      # 如果某个设备原本就处于连接状态,那么该命令会重启它
      nmcli c up 设备名
      
      #  关闭之后,再用nmcli c查看,DEVICE项将显示--。
      nmcli c down 设备名
      
    • 修改网络配置

      nmcli c modify 设备名 [+ | -]选项 选项值
      nmcli c m 设备名 [+ | -]选项 选项值
      

      常用修改示例

      nmcli c m ens192 ipv4.address 192.168.2.201/24   # 修改 IP 地址和子网掩码
      nmcli c m ens192 +ipv4.addresses 192.168.2.100/24
      nmcli c m ens192 ipv4.method manual             # 修改为静态配置,默认是 auto
      nmcli c m ens192 ipv4.gateway 192.168.2.2       # 修改默认网关
      nmcli c m ens192 ipv4.dns 192.168.2.2           # 修改 DNS
      nmcli c m ens192 +ipv4.dns 114.114.114.114      # 添加一个 DNS
      nmcli c m ens192 ipv6.method ignored            # 将 IPv6 禁用,针对CentOS8,三个可选项:disabled、auto、manual
      nmcli c m ens192 connection.autoconnect yes     # 开机启动
      
    • 新增连接

      nmcli c add type 连接类型 选项 选项值  
      nmcli c a type 连接类型 选项 选项值
      

      选项同之前修改连接的选项,其中有几个重要选项:

      connection.id(别名 con-name):连接名;
      
      connection.interface-name(别名 ifname):设备名;
      
      connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes
      

      例如:

      nmcli c a type ethernet con-name ens33 ifname ens33
      
    • 删除连接

      nmcli c delete ens33  
      nmcli c de ens33      # delete 不可简写为 d,否则与 down 冲突,但可以简写为 de
      
    • 重载配置文件

      nmcli c reload  # 或
      nmcli c r
      
      nmcli c load ifcfg-ens33  # 或
      nmcli c l ifcfg-ens33
      
      ## 指定文件
      nmcli connection  load  /etc/sysconfig/network-scripts/ifcfg-ens192
      
      
    • nmcli device

      • 显示所有网络接口设备状态

        nmcli device status
        nmcli d s
        nmcli d
        [root@server network-scripts]# nmcli device status 
        DEVICE  TYPE      STATE   CONNECTION 
        eth1    ethernet  已连接  eth1       
        eth0    ethernet  已连接  eth0       
        eth2    ethernet  已断开  --         
        lo      loopback  未托管  --  
        
      • 显示系统中所有网络设备的详细信息

         nmcli device show
         root@server network-scripts]# nmcli device show
        GENERAL.DEVICE:                         eth1
        GENERAL.TYPE:                           ethernet
        GENERAL.HWADDR:                         00:0C:29:A8:2D:01
        GENERAL.MTU:                            1500
        GENERAL.STATE:                          100(已连接)
        GENERAL.CONNECTION:                     eth1
        GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
        WIRED-PROPERTIES.CARRIER:               开
        IP4.ADDRESS[1]:                         192.168.137.138/24
        IP4.GATEWAY:                            192.168.137.2
        IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 192.168.137.2, mt = 101
        IP4.ROUTE[2]:                           dst = 192.168.137.0/24, nh = 0.0.0.0, mt = 101
        IP4.DNS[1]:                             192.168.137.2
        IP4.DOMAIN[1]:                          localdomain
        IP6.ADDRESS[1]:                         fe80::ebdb:28df:2fee:a336/64
        IP6.GATEWAY:                            --
        

        当你执行 nmcli device show 命令时,它会列出当前系统中所有被 NetworkManager 管理的网络设备,

        包括但不限于以太网接口、无线接口、蓝牙设备等。对于每个设备,它会显示以下信息:

        设备的 UUID(通用唯一标识符)

        设备类型(如以太网、无线等)

        接口名称(如 eth0 、 wlan0 等)

        是否正在连接(即设备是否正在使用中)

        设备的硬件地址(MAC 地址)

        IP 地址信息(如果设备已连接)

        设备的状态(如断开、准备就绪、激活等)

        设备的连接名称(如果已连接)这个命令对于诊断网络问题

        查看网络配置以及了解系统中网络设备的状态非常有用。你可以通过添加不同的选项来定制输出,例如使用 -f 选项来指定你想要显示的字段,或者使用 --terse 选项来获取更简洁的输出格式。

      • 连接和断开

        nmcli d connect ens192  # 或
        nmcli d c ens33
        nmcli d disconnect ens192  # 或
        nmcli d d ens33
        
      • 更新设备

        nmcli d reapply ens192  # 或
        nmcli d r ens33
        
posted @ 2025-02-16 15:19  Epiphany(qrx)  阅读(135)  评论(0)    收藏  举报