在RHEL7/CentOS7中有多种配置IP地址及网络的方法。这里我们对这些方法进行一个统一的介绍和演示。
1,nmtui
2,nmcli
3,nm-connection-editor
4,ip 命令
5,编辑网络接口配置文件
6,修改网络接口名称
nmtui
nmtui全称是”NetworkManage Text User Interface”。
1,启动nmtui
[root@localhost ~]# nmtui
2,进入图形界面
2,在nmtui图形界面中,有三个配置选项:配置网卡,激活网卡配置,修改主机hostname
3,配置网卡:选择”Edit a connection”,然后选择要编辑的网卡,比如这里是”ens192”
4,nmtui的配置界面简单明了,按需求配置就可以了。需要注意的是,配置ip地址的时候需要加上掩码,
使用CIDR格式,如下图:172.16.60.100/16
5,为网卡配置连接文件,比如配置网卡绑定,选择”Add” – “Bond”
编辑bonding,点击”Add”添加需要做绑定的网卡,点击”Mode”修改绑定模式
6,使用nmtui配置完网卡后,重启网络服务
systemctl restart network
nmcli
nmcli全称是”NetworkManage CommandLine Interface”
1,查看网络配置
[root@localhost ~]# nmcli device show
GENERAL.DEVICE: ens192
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:F9:50:91
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens192
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/4
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 172.16.60.100/16
IP4.GATEWAY: 172.16.0.1
IP4.ROUTE[1]: dst = 172.16.0.0/16, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 172.16.0.1, mt = 100
IP4.DNS[1]: 172.16.0.1
IP6.ADDRESS[1]: fe80::20c:29ff:fef9:5091/64
IP6.GATEWAY: –
IP6.ROUTE[1]: dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[2]: dst = fe80::/64, nh = ::, mt = 256
IP6.ROUTE[3]: dst = fe80::/64, nh = ::, mt = 100
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: –
GENERAL.CON-PATH: –
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: –
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: –
2,查看网络连接
nmcli con show
NAME UUID TYPE DEVICE
ens192 24924819-2321-42ba-a8e4-451374314555 ethernet ens192
或
nmcli connection show
NAME UUID TYPE DEVICE
ens192 24924819-2321-42ba-a8e4-451374314555 ethernet ens192
3,查看设备状态
nmcli dev status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged –
4,创建网络会话,允许用户在多个配置文件中快速切换,比如服务器需要在不同的网络间切换,或者服务器
经常需要在不同的机房中搬迁。使用网络会话配置可以快速实现IP地址等网络配置的变更
[root@localhost ~]# nmcli connection add con-name datacenter-daxing ifname ens192 autoconnect no type ethernet ip4 172.16.60.100/16 gw4 172.16.0.1
Connection ‘datacenter-daxing’ (0caa5b1d-e3af-4818-ae1a-7557da8ebd15) successfully added.
[root@localhost ~]# nmcli connection add con-name datacenter-fangshan ifname ens192 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
Connection ‘datacenter-fangshan’ (54e18a08-0d7e-46fc-bc9d-49ead8842aa1) successfully added.
5,查看网络会话
[root@localhost ~]# nmcli con show
NAME UUID TYPE DEVICE
ens192 24924819-2321-42ba-a8e4-451374314555 ethernet ens192
datacenter-daxing 0caa5b1d-e3af-4818-ae1a-7557da8ebd15 ethernet –
datacenter-fangshan 54e18a08-0d7e-46fc-bc9d-49ead8842aa1 ethernet –
6,使用 nmcli 命令配置过的网络会话是永久生效的,系统重启不会失效,切换会话使用以下命令:
nmcli connection up datacenter-daxing
7,删除网络会话配置
nmcli connection delete datacenter-daxing
8,修改连接配置,示例如下:
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.16.0.1
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
9,配置修改后,需要重新加载配置使之生效
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活
10,使用nmcli配置VLAN
[root@localhost ~]# nmcli con add type vlan con-name vlan-ens192.100 ifname ens192.100 dev ens192 id 100 ip4 192.168.60.100/24
Connection ‘vlan-ens192.100’ (1dd4629b-2c4a-43dc-a80c-3fbf5c0c7253) successfully added.
11,查看编辑后的配置
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
ens192.100 vlan connected vlan-ens192.100
lo loopback unmanaged –
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens192 24924819-2321-42ba-a8e4-451374314555 ethernet ens192
vlan-ens192.100 1dd4629b-2c4a-43dc-a80c-3fbf5c0c7253 vlan ens192.100
datacenter-daxing 0caa5b1d-e3af-4818-ae1a-7557da8ebd15 ethernet –
datacenter-fangshan 54e18a08-0d7e-46fc-bc9d-49ead8842aa1 ethernet –
nm-connection-editor
使用nm-connection-editor需要在系统图形界面下进行,如果系统为最小化安装,将不支持此操作。
在图表界面下配置网卡这里就不详细介绍了。
ip命令实用程序
使用ip命令显示接口的状态、配置网络属性或调试或调优网络。ip命令替换了ifconfig命令,ifconfig将
逐渐被废弃。ip实用程序的语法如下:
ip [OPTIONS] OBJECT {COMMAND help}
1,显示当前网络配置
[root@localhost ~]# ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:f9:50:91 brd ff:ff:ff:ff:ff:ff
inet 172.16.60.100/16 brd 172.16.255.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fef9:5091/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens192.100@ens192: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:f9:50:91 brd ff:ff:ff:ff:ff:ff
inet 192.168.60.100/24 brd 192.168.60.255 scope global noprefixroute ens192.100
valid_lft forever preferred_lft forever
inet6 fe80::e875:5b3b:f64a:8ea6/64 scope link noprefixroute
valid_lft forever preferred_lft forever
2,添加IP地址
ip addr add 172.31.29.90/20 dev eth0
3,删除IP地址
ip addr del 172.31.29.90/20 dev eth0
4,清除一个接口的所有配置。注意:如果你是远程登录到服务器,请慎用此命令,因为执行此命令后,
你的ssh连接也会断开
ip addr flush dev eth0
5,检查网络设备的状态
ip link show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens192: mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:f9:50:91 brd ff:ff:ff:ff:ff:ff
3: ens192.100@ens192: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:f9:50:91 brd ff:ff:ff:ff:ff:ff
6,开启/关闭网络接口
ip link set ens192 up
ip link set ens192 down
7,修改MTU
ip link set ens192 mtu 1000
8,使用“ip neigh”命令显示ARP表、删除ARP条目或向表中添加条目。ip neigh命令替换了arp命令,
arp命令将逐渐被废弃
查看ARP表:
ip neigh
172.16.10.1 dev ens192 lladdr 00:50:56:b6:c1:8f REACHABLE
172.16.0.1 dev ens192 lladdr 00:50:56:b6:44:b5 STALE
清除ARP表:
ip -s -s neigh flush all
172.16.10.1 dev ens192 lladdr 00:50:56:b6:c1:8f ref 1 used 9/0/9 probes 1 REACHABLE
172.16.0.1 dev ens192 lladdr 00:50:56:b6:44:b5 used 124/119/98 probes 1 STALE
*** Round 1, deleting 2 entries ***
*** Flush is complete after 1 round ***
清除指定接口的ARP表
ip neigh flush dev ens192
9,ip路由实用程序显示或操纵ip路由表。它的主要用途是通过网络接口建立到特定主机或网络的静态路由。
查看路由表:
ip route
default via 172.16.0.1 dev ens192 proto static metric 100
172.16.0.0/16 dev ens192 proto kernel scope link src 172.16.60.100 metric 100
192.168.60.0/24 dev ens192.100 proto kernel scope link src 192.168.60.100 metric 400
此命令等同于netstat
netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default pfSense.localdo 0.0.0.0 UG 0 0 0 ens192
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens192
192.168.60.0 0.0.0.0 255.255.255.0 U 0 0 0 ens192.100
添加路由:
ip route add default via 172.11.60.1 dev eth0 proto static
ip route add 192.168.2.1 via 10.10.10.1 dev eth0
删除路由:
ip route delete default via 172.16.0.1
ip route delete 192.168.2.1
配置永久静态路由:
通过使用ip路由对路由表所做的任何更改不会在系统重新引导时持续存在。要使静态路由成为永久性的,
需要编辑网络接口配置文件。静态路由配置存储在/etc/sysconfig/network-scripts/route-interface
文件中。例如,ens192接口的静态路由配置存储在 /etc/sysconfig/network-scripts/route-eth192
文件中。
路由接口文件有两种格式:
IP命令参数(IP command arguments):
x.x.x.x/x via x.x.x.x dev interface
198.168.2.0/24 via 10.10.10.1 dev ens192
网络/子网掩码指令(Network/netmask directives):
ADDRESS0=X.X.X.X NETMASK0=X.X.X.X GATEWAY0=X.X.X.X
ADDRESS0=198.168.2.0
NETMASK0=255.255.255.0
GATEWAY0=10.10.10.1
编辑网络接口配置文件
每个物理网络设备都有一个关联的网络接口配置文件。网络接口配置文件位于/etc/sysconfig/network-
scripts目录中。红色字体为经常需要编辑的部份。
编辑配置文件:
vi ifcfg-ens192
# Generated by dracut initrd
NAME=ens192
DEVICE=ens192
ONBOOT=yes
NETBOOT=yes
UUID=24924819-2321-42ba-a8e4-451374314555
IPV6INIT=yes
BOOTPROTO=none
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
IPADDR=172.16.60.100
PREFIX=16
GATEWAY=172.16.0.1
DNS1=172.16.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
修改网络接口名称
CentOS/RHEL7引入了新的网络接口名称:
eno1 :代表由主板 BIOS 內建的网卡
ens1 :代表由主板 BIOS 內建的 PCI-E 界面的网卡
enp2s0 :代表 PCI-E 界面的独立网卡,可能有多个网卡接口,因此会有 s0, s1… 的编号
1,编辑内核引导参数
编辑文件/etc/default/grub 在GRUB_CMDLINE_LINUX行添加net.ifnames=0 biosdevname=0 例如:
GRUB_CMDLINE_LINUX=” crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet”
2,重新生成一个GRUB配置文件并覆盖现有文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
3,将ifcfg文件中的名称和设备参数编辑为新的网络接口名称
cat /etc/sysconfig/network-scripts/ifcfg-ens192
……
NAME=eth0
DEVICE=eth0
……
4,修改配置文件名称
mv /etc/sysconfig/network-scripts/ifcfg-ens192 /etc/sysconfig/network-scripts/ifcfg-eth0
5,禁用NetworkManager,因为它可能在重新引导或重新启动时将配置改回原来的配置
systemctl disable NetworkManager
rm ‘/etc/systemd/system/multi-user.target.wants/NetworkManager.service’
rm ‘/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service’
rm ‘/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service’
6,重启系统
7,验证修改生效
ip addr show