一、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