一、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 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
"static" ipv4.dns 172.25.X.254
"static"
"static"
"static"
"static"
- DNS设置,存放在/etc/resolv.conf文件中PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下面命令:
"system eth0"
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
"system eth0"
"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
转载于:https://blog.51cto.com/exia00linux/2083048