1.使用场景
当我们在当我们的CentOS在虚拟机下运行,我们为虚拟机设置的网络连接方式是NAT,我们会发现,ip地址会时不时的变化,如果我们要连接虚拟机中的服务是,ip也要时不时的修改,这样重复的操作费时又费力。这个时候就需要把网络接口从DHCP改为静态IP地址配置,让CentOS的网络接口分配静态IP地址。
我虚拟机的网络是这样配置的。
我下面实现的方式是通过网络管理器。网络管理器(Network Manager)是一个动态网络的控制器与配置系统,它用于当网络设备可用时保持设备和连接开启并激活。默认情况下,CentOS7安装有网络管理器,并处于启用状态。
2.检查网络管理器状态
用systemctl status NetworkManager.service查看网络管理器状态:
[root@localhost ~]# systemctl status NetworkManager.service
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vend or preset: enabled)
Active: active (running) since Sun 2017-06-18 16:16:24 CST; 1h 28min ago
Docs: man:NetworkManager(8)
Main PID: 661 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
└─661 /usr/sbin/NetworkManager --no-daemon
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:24 localhost.localdomain NetworkManager[661]: <info> [149777378...
Jun 18 16:16:29 localhost.localdomain NetworkManager[661]: <info> [149777378...
Hint: Some lines were ellipsized, use -l to show in full.
用nmcli dev status检查受网络管理器管理的网络接口:
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
lo loopback unmanaged --
输出结果显示ens33(CONNECTION)已连接,这就是说该接口受网络管理器管理。我们可以为某个特定接口禁用网络管理器,以便你可以自己为它配置一个静态IP地址。
3.安装网络管理器UI
为了我们操作方便,我们安装一下网络管理器文本用户界面。
先进入网络配置文件目录,CentOS7下的位置:/etc/sysconfig/network-scripts/
[root@localhost network-scripts]# ls
ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
ifdown-post ifup-eth ifup-sit
之前我们查看到:
[root@localhost ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens33 ethernet connected ens33
lo loopback unmanaged --
ens33对应的是我们的网卡名称
所以我们对应的编辑ifcfg-ens33
vim ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO=none
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="53180aa1-8c05-46c6-9704-bcd6afe018b9"
DEVICE="ens33"
ONBOOT="yes"
NM_CONTROLLED=yes
PREFIX=32
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
添加或者修改:NM_CONTROLLED=yes(通过网络管理器管理)
安装网络管理器UI:
yum install NetworkManager-tui
4.配置网络
编辑我们刚刚查询出来的网卡ens33:
nmtui edit ens33
这两项配置需要修改,我本改成的ip是:192.168.128.128,对应的网关是:192.168.128.1。
在右下方有一个OK。
最后重启网络服务:
systemctl restart network.service
ifconfig查看ip,发现ip改过来了:
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.128.128 netmask 255.255.255.255 broadcast 192.168.128.128
inet6 fe80::c28c:a09b:2298:b9e1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d1:d9:4f txqueuelen 1000 (Ethernet)
RX packets 1008 bytes 83062 (81.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 702 bytes 174885 (170.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 2731 bytes 187733 (183.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2731 bytes 187733 (183.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
5.解决静态IP无法上网
首先查看自己的网关
修改网上配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
在最后修改或添加:
#自己的目标IP
IPADDR=192.168.128.134
#网关
NETMASK=255.255.255.0
#不通过网络控制器管理
NM_CONTROLLED=no
#前面查到的网关
GATEWAY=192.168.128.2
最后修改DNS域名解析的配置文件:
vim /etc/resolv.conf
把自己的网关地址添加进去就是,也可以添加可用的DNS服务器。网关会给我们找到离我们最近的DNS服务器,所以我们添加网关地址即可。
nameserver 192.168.128.2