地址配置工具
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { general | networking | radio | connection | device | agent }
OPTIONS := {
-t[erse]
-p[retty]
-m[mode] tabular | multiline
-f[ields]
-e[scape] yes | no
-n[ocheck]
-a[sk]
-w[ait]
-v[ersion]
-h[elp]
}
nmcli device 命令
Usage: nmcli device { COMMAND | help }
COMMAND := { status | show | connect | disconnect | delete | wifi }
- nmcli device show eth1 #查看eth1网卡的信息
- nmcli device status #查看所有网卡信息
- nmcli device connect eth1 #使网卡eth1连接
- nmcli device disconnect eth1 #使网卡eth1断开
- nmcli device delete bond0 #删除虚拟网卡,不可以删除物理网卡
nmcli connection 命令
查看命令帮助 : nmcli connetcion help
- Usage: nmcli connection { COMMAND | help }
-
- COMMAND := { show | up | down | add | modify | edit | delete | reload | load }
比如修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ; ipv4.gateway ; ipv4.dns1; ipv4.method [manual | dhcp]
修改配置文件执行生效:
systemctl restart network 或 nmcli connetcion reload
nmcli命令生效:
nmcli con down eth0 ;nmcli con up eth0 (connection 可简写为con)
网络接口配置tui工具 : nmtui
使用nmcli 配置网络
NetworkManager 是管理和监控网络设置的守护进程
设备即网络接口,连接是对网络接口的配置,一个网络接口可有多个连接配置,但同时只有一个连接配置生效
- 显示所有连接(包括不活动的连接)
- nmcli connection show
- 显示网络连接配置
- nmcli connection show "System bond0"
- 显示设备状态
- nmcli device status
- 显示网络接口属性
- nmcli dev show eth1
- 创建新连接 conn1 ,IP通过自动dhcp获取
- nmcli connection add con-name conn1 type Ethernet ifname eth1
- 删除连接
- nmcli connection delete conn1
- 创建新连接 conn2 指定静态IP,不自动连接
- nmcli connection add con-name conn2 ifname eth1 autoconnect no type Ethernet ip4 10.1.1.1/16 gw4 10.1.1.254
- 启用 conn2连接配置
- nmcli connetcion up conn2
- 查看帮助
- nmcli connection add help
修改连接设置:
- nmcli connection modify "eno16777736" connection.autoconnect no
- nmcli connection modify "eno16777736" ipv4.addresses 10.1.1.100/16
- nmcli connection modify "eno16777736" ipv4.dns 10.1.0.1
- nmcli connection modify "eno16777736" +ipv4.dns 10.1.0.1
- nmcli connection modify "eno16777736" -ipv4.dns 10.1.0.1
| Command | Use |
| nmcli dev status | List all devices |
| nmcli con show | List all connetcions |
| nmcli con del " | Delete a connetcion |
| nmcli con up " | Activate a connetcion |
| nmcli con down " | Deactivate a connetction.The connetcion will restart if autoconnect is yes |
| nmcli dev dis | Bring down an interface and temporarily disable autoconnect |
| nmcli net off | Disable all managed interfaces |
| nmcli con add … | Add a new connetcion |
| nmcli con mod " | Modify a connection |
| nmcli con del " | Delete a connetcion |
| 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.254 |
| 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= . . . |
设备文件保存到文本文件中: /etc/sysconfig/network-scripts/ifcfg-
帮助文档列出完整选项列表: /usr/share/doc/initscripts-*/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命令修改连接配置后,需要重新加载配置
nmcli con reload
图形工具
nm-connection-editor
网络组 Network Teaming
网络组:是将多块网卡聚合在一起的方法,从而实现容错和提高吞吐量
网络组不同于旧版中bonding技术,它能提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现
有多种方式:
runner
broadcast
roundrobin
activebackup
loadbalance
lacp
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口不会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入
创建网络组接口格式如下:
- 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
创建port接口格式如下:
- nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
-
- CNAME :连接名
-
- INAME :网络接口名
-
- TEAM :网络组接口名
若连接名不指定,则默认为team-slave-IFACE
nmcli con up CNAME(网络组接口名或port接口)
nmcli dev dis INAME(设备名)
- # 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 teamslave ifname eth1 master team0
- # nmcli con add con-name team0-eth2 type teamslave 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
实验:创建一个网络组主备自动切换的网络组
- nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
- nmcli connection modify team0 ipv4.method auto
- nmcli connection add con-name team-eth0 type team-slave ifname eno16777736 master team0
- nmcli connection add con-name team-eth1 type team-slave ifname eno33554960 master team0
- nmcli connection add con-name team-eth2 type team-slave ifname eno50332184 master team0
- nmcli connection add con-name team-eth3 type team-slave ifname eno67109408 master team0
- nmcli connection up team0
- nmcli connection up team-eth1
- nmcli connection up team-eth2
- nmcli connection up team-eth3
- nmcli connection up team-eth0
- watch -n1 'teamdctl team0 state'



管理网络组配置文件:
- # /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
- # /etc/sysconfig/network-scripts/ifcfg-team0-eth1
- DEVICE=eth1
- DEVICETYPE=TeamPort
- TEAM_MASTER=team0
- NAME=team0-eth1
- ONBOOT=yes
使用nmcli配置主机名
rhel6之前主机名配置文件:/etc/sysconfig/network
rhel7.0主机名配置文件:/etc/hostname,默认没有这个文件,通过DNS反向解析获取主机名,主机名默认为: localhost.localdomain
显示主机名信息
- hostname
-
- hostnamectl status
创建并修改文件并生效
hostnamectl set-hostname desktopX.example.com
删除文件,恢复主机名localhost.localdomain
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设置,不自动获取。等价于下面命令:
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
在命令行下测试网络的连通性
显示主机名
hostname
测试网络连通性
- ping
- mtr
显示正确的路由表
ip route
确定名称服务器使用:
- nslookup
-
- host
-
- dig
跟踪路由
- traceroute
-
- Tracepath
lftp, ftp, lftpget, wget
lftp [-p port] [-u user[,password]] SERVER
子命令:
get、 mget、ls、help
# lftpget URL
# ftp
# wget
wget [option]... [URL]...
-q: 静默模式
-c: 断点续传
-O: 保存位置
--limit-rates=: 指定传输速率