Linux学习之路-Centos7-nmcli命令及网桥【21】---20180127

一、nmcli命令

1、地址配置工具:nmcli

  • nmcli [ OPTIONS ] OBJECT { COMMAND | help }

    device - show and manage network interfaces

    nmcli device help

    connection - start, stop, and manage network connections

    nmcli connection help

  • 修改IP地址等属性:

    nmcli connection modify IFACE [+|-]setting.property value

    setting.property:

    ipv4.addresses ipv4.gateway

    ipv4.dns1 ipv4.method manual | auto

  • 修改配置文件执行生效:systemctl restart network

    nmcli con reload

  • nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0

2、使用nmcli配置网络

  • NeworkManager是管理和监控网络设置的守护进程
  • 设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效
  • 显示所有包括不活动连接

    nmcli con show

  • 显示所有活动连接

    nmcli con show --active

  • 显示网络连接配置

    nmcli con show "System eth0“

  • 显示设备状态

    nmcli dev status

  • 显示网络接口属性

    nmcli dev show eth0

  • 创建新连接default,IP自动通过dhcp获取

    nmcli con add con-name default type Ethernet ifname eth0

  • 删除连接

    nmcli con del default

  • 创建新连接static ,指定静态IP,不自动连接

    nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254

  • 启用static连接配置

    nmcli con up static

  • 启用default连接配置

    nmcli con up default

  • 查看帮助

    nmcli con add help

  • 修改连接设置

    nmcli con mod“static” connection.autoconnect no

    nmcli con mod “static” ipv4.dns 172.25.X.254

    nmcli con mod “static” +ipv4.dns 8.8.8.8

    nmcli con mod “static” -ipv4.dns 8.8.8.8

    nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”

    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

  • DNS设置,存放在/etc/resolv.conf文件中PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下面命令:

    nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

nmcli con mod ifcfg-* 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses “192.0.2.1/24 192.0.2.254”
IPADDR0=192.0.2.1

PREFIX0=24

GATEWAY0=192.0.2.25

ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .

3、网络配置文件及其他设置

  • 设备配置被保存在文本文件中

    /etc/sysconfig/network-scripts/ifcfg-<name>

    帮助文档列出完整选项列表:/usr/share/doc/initcripts-*/sysconfig.txt

动态配置 静态配置

DEVICE=ethX

HWADDR=0:02:8A:A6:30:45

BOOTPROTO=dhcp

ONBOOT=yes

Type=Ethernet


DEVICE=ethX

HWADDR=0:02:8A:A6:30:45

IPADDR=192.168.0.123

NETMASK=255.255.255.0

GATEWAY=192.168.0.254

ONBOOT=yes

Type=Ethernet

  • 修改连接配置后,需要重新加载配置

    nmcli con reload

    nmcli con down “system eth0” 可被自动激活

    nmcli con up “system eth0”

    nmcli dev dis eth0 禁用网卡,访止被自动激活

  • 图形工具

    nm-connection-editor

  • 字符工具

    nmtui

    nmtui-connect

    nmtui-edit

    nmtui-hostname

配置不同的网卡配置文件环境

#查看由几个网卡
[[email protected]~]#nmcli device 
DEVICE  TYPE      STATE   CONNECTION 
ens32   ethernet  connected  ens33      
ens33   ethernet  connected  ens34      
lo     loopback  unmanaged  -- 

#配置一个网卡环境
[[email protected]~]#nmcli connection add con-name ens32-sc type ethernet ifname ens32 ipv4.method manual ipv4.addresses 172.18.68.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114
Connection 'ens32-sc' (e5740d61-6f39-4af1-81f2-b062cddbf202) successfully added.
[[email protected]~]#nmcli connection show 
NAME      UUID                         TYPE       DEVICE 
ens33     c96bc909-188e-ec64-3a96-6a90982b08ad  802-3-ethernet  ens32  
ens34     94aea789-efb3-ef4c-81b0-e8b18ecc9797  802-3-ethernet  ens33  
ens32-sc   e5740d61-6f39-4af1-81f2-b062cddbf202  802-3-ethernet  --  

#切换网卡配置
[[email protected]~]#nmcli connection up ens32-sc
Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5)

#如果手动增加的配置文件,需要手动加载下配置文件
[[email protected]~]#nmcli connection reload 

#逻辑上断开或连接网卡
[[email protected]~]#nmcli device disconnect ens33
Device 'ens33' successfully disconnected

[[email protected]~]#nmcli device connect ens33
Device 'ens33' successfully activated with 'a62b80b1-2533-4e38-84c4-bd690837adcc'


二、nmcli实现bonding


  • 添加bonding接口

    nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup

  • 添加从属接口

    nmcli con add type bond-slave ifname ens7 master mybond0

    nmcli con add type bond-slave ifname ens3 master mybond0

    注:如无为从属接口提供连接名,则该名称是接口名称加类型构成

  • 要启动绑定,则必须首先启动从属接口

    nmcli con up bond-slave-eth0

    nmcli con up bond-slave-eth1

  • 启动绑定

    nmcli con up mybond0

[[email protected]~]#nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ipv4.method manual ipv4.addresses 172.18.0.200/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114

[[email protected]~]#nmcli connection add con-name bond0-slave0 type bond-slave ifname ens33 master bond0
[[email protected]~]#nmcli connection add con-name bond0-slave1 type bond-slave ifname ens33 master bond0
[[email protected]~]#nmcli connection up bond0-slave0
[[email protected]~]#nmcli connection up bond0-slave1

[[email protected]~]#cat /proc/net/bonding/bond0

#Centos6实现网卡别名

#实现在一块网卡上有两个ip地址,一个动态获取、一个静态地址,服务器重启地址不丢失

[[email protected]]#cp ifcfg-eth1{,:1}
[[email protected]]#cp ifcfg-eth1{,:2}
[[email protected]]#vim ifcfg-eth1:1
DEVICE=eth1:1
IPADDR=172.18.0.6
PREFIX=16
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#vim ifcfg-eth1:2
DEVICE=eth1:2
IPADDR=172.18.0.7
PREFIX=16
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
GATEWAY=172.18.0.1
DNS1=114.114.114.114
DOMAIN=magedu.com
[[email protected]]#service network restart

#注意:别名不能自动获取ip地址,必须是静态地址



三、网络组Network Teaming及网桥

  • 网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
  • 网络组不同于旧版中bonding技术,提供更好的性能和扩展性
  • 网络组由内核驱动和teamd守护进程实现.
  • 多种方式(模式)runner

    broadcast

    roundrobin

    activebackup

    loadbalance

    lacp (implements the 802.3ad Link Aggregation Control Protocol)

  • 启动网络组接口不会自动启动网络组中的port接口
  • 启动网络组接口中的port接口总会自动启动网络组接口
  • 禁用网络组接口会自动禁用网络组中的port接口
  • 没有port接口的网络组接口可以启动静态IP连接
  • 启用DHCP连接时,没有port接口的网络组会等待port接口的加入

1、创建网络组接口

  • nmcli con add type team con-name CNAME ifname INAME [config JSON]

    CNAME 连接名,INAME 接口名

    JSON 指定runner方式

    格式:'{"runner": {"name": "METHOD"}}'

    METHOD 可以是broadcast, roundrobin,activebackup, loadbalance, lacp


2、创建port接口

  • nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

    CNAME 连接名

    INAME 网络接口名

    TEAM 网络组接口名

  • 连接名若不指定,默认为team-slave-IFACE
  • nmcli dev dis INAME
  • nmcli con up CNAME

    INAME 设备名 CNAME 网络组接口名或port接口

3、网络组示例

  • nmcli con add type team con-name team0 ifname team0 config ‘{"runner": {"name": "loadbalance"}}'
  • nmcli con mod team0 ipv4.addresses 192.168.1.100/24
  • nmcli con mod team0 ipv4.method manual
  • nmcli con add con-name team0-eth1 type team-slave ifname eth1 master team0
  • nmcli con add con-name team0-eth2 type team-slave ifname eth2 master team0
  • nmcli con up team0
  • nmcli con up team0-eth1
  • nmcli con up team0-eth2
  • teamdctl team0 state; nmcli dev dis eth1

实验:创建网络组

[[email protected]~]#ip link
[[email protected]~]#nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
[[email protected]~]#nmcli con mod team0 ipv4.addresses '172.18.0.123/16'
[[email protected]~]#nmcli con mod team0 ipv4.method manual
[[email protected]~]#nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
[[email protected]~]#nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
[[email protected]~]#nmcli con up team0-port1
[[email protected]~]#nmcli con up team0-port2
[[email protected]~]#ping -I team0 172.18.68.100            #-I 是指定从哪个网卡往出ping
[[email protected]~]#teamdctl team0 state
setup:
    runner: activebackup
ports:
    eth0
        link watches:
        link summary: up
        instance[link_wathc_0]
            name: ethtool
            link: up
            down count: 0
    eth1
        link watches:
        link summary: up
        instance[link_wathc_0]
            name: ethtool
            link: up
            down count: 0
runner:
    active port: eth0

[[email protected]]#nmcli connection delete team0
[[email protected]]#nmcli connection delete team0-slave0
[[email protected]]#nmcli connection delete team0-slave1


4、管理网络组配置文件

[[email protected]~]#/etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.25.5.100
PREFIX0=24
NAME=team0
ONBOOT=yes

[[email protected]~]#/etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes


5、删除网络组

[[email protected]~]#nmcli connection down team0
[[email protected]~]#teamdctl team0 state
[[email protected]~]#nmcli connection show
[[email protected]~]#nmcli connectioni delete team0-eth0
[[email protected]~]#nmcli connectioni delete team0-eth1
[[email protected]~]#nmcli connection show

6、网桥

  • 桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
  • 主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D。

#创建软件网桥
[[email protected]~]#nmcli con add type bridge con-name br0 ifname br0
[[email protected]~]#nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall
[[email protected]~]#nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0

#查看网桥
[[email protected]~]#cat /etc/sysconfig/network-scripts/ifcfg-br0
[[email protected]~]#cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
[[email protected]~]#brctl show

#删除网桥 
[[email protected]~]#brctl delbr br0

#删除网桥中网卡 
[[email protected]~]#brctl delif eth0

#注意:NetworkManager只支持以太网接口接口连接到网桥,不支持聚合接口


四、测试网络工具

  • 在命令行下测试网络的连通性
  • 显示主机名

    hostname

  • 测试网络连通性

    ping

    mtr(跟踪路由器,动态跟踪)

  • 显示正确的路由表

    ip route

  • 确定名称服务器使用:

    nslookup

    host

    dig

  • 跟踪路由

    traceroute

    tracepath



五、网络客户端工具

  • ftp,lftp(带颜色并且支持命令补全)

    子命令:

    get(下载指定的一个文件)

    mget(下载多个文件)

    put(是上传)

    ls(看的是ftp服务器里的文件)

    !ls(看的是本机的文件)

    lcd(切换目录)

    help

    ?(是查看所能使用的命令)

  • lftp [-p port] [-u user[,password]] SERVER
[[email protected]~]#yum install ftp lftp -y
[[email protected]~]#ftp 172.18.0.1
ftp>pwd
257 "/"              #这个是指ftp服务器文件所在的根,不是当前系统的根
ftp>ls     
ftp>mget ubu*        #可以下载多个文件       

#实现自动上传文件或者下载文件
[[email protected]~]#ftp -n <<EOF
>open 172.18.0.1
>user ftp
>password xxx
>get a
>EOF
  • lftpget URL
  • wget [option]... [URL]...

    -q: 静默模式

    -c: 断点续传

    -P:保存在指定目录

    -O: 保存为指定的文件名

    --limit-rate=: 指定传输速率,单位K,M等

  • links URL

    --dump(抓网页文字)

    --source(抓网页源码)

[[email protected]~]#yum install elinks

#可以下载不让转载的文字
[[email protected]~]#links 192.168.1.100 --dump > a.tx

原文地址:http://blog.51cto.com/exia00linux/2083048

时间: 2024-08-08 10:43:35

Linux学习之路-Centos7-nmcli命令及网桥【21】---20180127的相关文章

linux学习之路之sed命令使用

本章主要介绍sed的命令使用 sed(Stream Editor)是一种流编辑器,或者叫做行编辑器,以行为单位进行编辑处理,而后续会介绍的vi编辑器是一种全屏编辑器. sed的工作原理: 逐行读取文件中的每一行,并将其放在内存空间中,在对内存空间中的数据进行处理,将处理后的结果打印到屏幕上.而这种内存空间也叫做模式空间. 所谓模式空间:就是将放在内存空间的数据根据模式来匹配,匹配成功的数据进行相应的编辑处理,将处理后的数据打印到屏幕上去. 说明:sed命令默认将文件中所有的行打印到屏幕上去. s

linux 学习之路:ls命令使用

1.命令格式: Ls 显示指定工作目录下的目录内容 语法:ls [-alrtAFR] [name...] 2.命令参数: 3.命令功能: 显示列出目前工作目录所含之文件及子目录 4.命令范例: 列出根目录(\)下的所有目录: [[email protected] ~]# ls / a  bin   c     dev  etc?  lib    media  oldboy  opt?  root  sbin  sys  usr b  boot  data  etc  home  lib64  m

linux学习之路之文本的查找---find命令的使用

文本的查找可以使用两种方式来实现,即使用locate命令来查找和find命令来查找 那么这两种方式有什么区别呢? locate:是一种非实时查找,所谓非实时查找就是查找的不够实际,不够精确.因为locate查找是在 系统文件数据库中进行的,而数据库默认是一天更新一次,也就是说你查找的文件再数据库 更新之前查找的话,有可能找不到文件,因为那时数据库还没有去读取硬盘上的文件,所以 有些文件没有写入到数据库中. 可以收到更新数据库,使用命令updatedb 因为不上在硬盘上读取,因此速度快 locat

linux学习之路及文本查看和文本处理命令

这一篇主要介绍几个常用的文本查看命令和文本处理命令. 首先介绍文本查看命令 cat:用于连接文件并显示 说明:当只有一个文件时,则用于查看文件内容:当有多个文件时,cat命令会将这些文件连接起来,在一起显示出来 语法格式:cat [option] FILE... -n:显示内容的时候把行号显示出来 -E:显示每一行的结束符$符(默认不显示) tac:也是用于显示文件内容,只不过他是将文件的内容倒过来显示,与cat相反 -n:显示行号 -E:显示每一行结尾的结束符$ 分屏操作命令 more与les

linux学习之路之ACL的使用和查看系统上登录的用户的命令使用

我们知道文件的访问权限的是根据文件的属主.属组和其他用户这三种来设置,而ACL是提供这三种之外的更加细部的权限设定.ACL可以对单一用户和目录及文件来设置权限,这对于需要特殊的权限来说很有帮助.在之前谈到的SUID和SGID这些特殊权限,不过这些特殊权限和ACL相比,ACL可以对特定的用户来设定更加细部的权限,而SUID和SGID则是对于多个用户或者一组用户来说比较合适. 在谈ACL的使用之前,我们先一起来谈谈用户访问文件时的顺序是如何进行的?在这里暂时不讨论有关SElinux的使用. 在没有使

linux学习之路之LVM

试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来.等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小.虽然这种方法可行,但是效率低,比较复杂.不应该是我们首选的方法. 当然,我们可以这样做,将多个磁盘或者分区(PV)组合

linux学习之路之LVM的快照功能

我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照. 所谓系统快照就是将某一时刻文件系统中的信息记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里.而其他没有改变的数据,快照区和文件系统共享.所以刚建立快照时快照区内容和文件系统的内容一样. 由于我们知道只有改变的数据才会移动到快照区,因此快照区中保存的内容比较少. 快照区的原理图如下: 那么如何建立快照区呢? 使用lvcreate -s命令来创建快

linux学习之路之磁盘管理和文件系统三

ext3文件系统和ext2文件系统的区别? 在某些时候,某个用户在linux系统上写入数据,这时系统正好断电或者系统核心出现错误,写入的数据仅有inode table和datablock而已,可能会导致之前写过的数据没有保存在磁盘上.而当系统重启后,系统可能会对没有保存的数据进行数据恢复.但是,由于系统并不知道是哪个文件不完整,因此会遍历整个文件系统中inode,来查看block是否完整.不过,当某个文件的数据太大时,数据的恢复时间可能会比较长,而这对于服务器来说是不利的.所以在这种情况下,也就

linux学习之路之vim编辑器的使用

本章将介绍vim编辑器的使用 vim编辑器是vi编辑器的增强版 vim是一种全屏的编辑器,是一种模式化的编辑器,之所以称为模式化的编辑器,因为vim有多种模式. 接下来将介绍vim主要的三种模式: 编辑模式(也叫命令模式):在该模式下你可以完成字符串跳转,字符串删除,翻屏操作等操作 输入模式:在该模式下输入的任何字符都会保存在该文件中,作为文件的一部分 末行模式:在该模式下,可以实现字符串搜索,字符串替换等操作 vim编辑器的三种模式之间的相互转换 模式转换: 编辑模式-->输入模式 i:在当前

linux学习之路之目录管理和文件管理

我们知道linux文件系统是一个树型结构,在最上层是'/'目录,根目录的下面就是其他目录,而这些目录下面又可以有多个子目录,这样一层一层的就形成一个树型结构图.那是不是我们查找某一个文件必须要从根目录开始往下查找的呢?当然不是,在这里我将会介绍两种路径方式:相对路径和绝对路径. 什么是相对路径和绝对路径? 绝对路径:就是从'/'根目录开始往下一级一级的查找,直到目的所经过的线路. 相对路径:就是相对当前位置而言来找到目的地所经过的线路. 目录的创建 mkdir:用于创建目录 语法格式:mkdir