一、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
配置不同的网卡配置文件环境
#查看由几个网卡 [root@Router~]#nmcli device DEVICE TYPE STATE CONNECTION ens32 ethernet connected ens33 ens33 ethernet connected ens34 lo loopback unmanaged -- #配置一个网卡环境 [root@Router~]#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. [root@Router~]#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 -- #切换网卡配置 [root@Router~]#nmcli connection up ens32-sc Connection successfully activated (D-Bus active path:/org/freedesktop/NetworkManager/ActiveConnection/5) #如果手动增加的配置文件,需要手动加载下配置文件 [root@Router~]#nmcli connection reload #逻辑上断开或连接网卡 [root@Router~]#nmcli device disconnect ens33 Device 'ens33' successfully disconnected [root@Router~]#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
[root@Router~]#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 [root@Router~]#nmcli connection add con-name bond0-slave0 type bond-slave ifname ens33 master bond0 [root@Router~]#nmcli connection add con-name bond0-slave1 type bond-slave ifname ens33 master bond0 [root@Router~]#nmcli connection up bond0-slave0 [root@Router~]#nmcli connection up bond0-slave1 [root@Router~]#cat /proc/net/bonding/bond0
#Centos6实现网卡别名
#实现在一块网卡上有两个ip地址,一个动态获取、一个静态地址,服务器重启地址不丢失 [root@VSservernetwork-scripts]#cp ifcfg-eth1{,:1} [root@VSservernetwork-scripts]#cp ifcfg-eth1{,:2} [root@VSservernetwork-scripts]#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 [root@VSservernetwork-scripts]#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 [root@VSservernetwork-scripts]#vim ifcfg-eth1 DEVICE=eth1 BOOTPROTO=dhcp GATEWAY=172.18.0.1 DNS1=114.114.114.114 DOMAIN=magedu.com [root@VSservernetwork-scripts]#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
实验:创建网络组
[root@Router~]#ip link [root@Router~]#nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}' [root@Router~]#nmcli con mod team0 ipv4.addresses '172.18.0.123/16' [root@Router~]#nmcli con mod team0 ipv4.method manual [root@Router~]#nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0 [root@Router~]#nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0 [root@Router~]#nmcli con up team0-port1 [root@Router~]#nmcli con up team0-port2 [root@Router~]#ping -I team0 172.18.68.100 #-I 是指定从哪个网卡往出ping [root@Router~]#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 [root@VSservernetwork-scripts]#nmcli connection delete team0 [root@VSservernetwork-scripts]#nmcli connection delete team0-slave0 [root@VSservernetwork-scripts]#nmcli connection delete team0-slave1
4、管理网络组配置文件
[root@Router~]#/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 [root@Router~]#/etc/sysconfig/network-scripts/ifcfg-team0-eth1 DEVICE=eth1 DEVICETYPE=TeamPort TEAM_MASTER=team0 NAME=team0-eth1 ONBOOT=yes
5、删除网络组
[root@Router~]#nmcli connection down team0 [root@Router~]#teamdctl team0 state [root@Router~]#nmcli connection show [root@Router~]#nmcli connectioni delete team0-eth0 [root@Router~]#nmcli connectioni delete team0-eth1 [root@Router~]#nmcli connection show
6、网桥
桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。
主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D。
#创建软件网桥 [root@Router~]#nmcli con add type bridge con-name br0 ifname br0 [root@Router~]#nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall [root@Router~]#nmcli con add type bridge-slave con-name br0-port0 ifname eth0 master br0 #查看网桥 [root@Router~]#cat /etc/sysconfig/network-scripts/ifcfg-br0 [root@Router~]#cat /etc/sysconfig/network-scripts/ifcfg-br0-port0 [root@Router~]#brctl show #删除网桥 [root@Router~]#brctl delbr br0 #删除网桥中网卡 [root@Router~]#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
[root@Router~]#yum install ftp lftp -y [root@Router~]#ftp 172.18.0.1 ftp>pwd 257 "/" #这个是指ftp服务器文件所在的根,不是当前系统的根 ftp>ls ftp>mget ubu* #可以下载多个文件 #实现自动上传文件或者下载文件 [root@Router~]#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(抓网页源码)
[root@Router~]#yum install elinks #可以下载不让转载的文字 [root@Router~]#links 192.168.1.100 --dump > a.tx
Linux学习之路-Centos7-nmcli命令及网桥【21】---20180127
原文地址:http://blog.51cto.com/exia00linux/2083048