VMware Centos7 Network Setup

VMware Centos7 Network Setup

背景

没想到搞虚拟机搞了这么久,终于配置成功了,不过踩坑也是难免的,记录一下。

目前要做的是搭建 Hadoop 集群环境,但是在配置多台 linux 虚拟机时网络一直没有弄好,远程无法访问,出现各种问题。主要原因是自己这块基础不牢,网上的资料也太杂。

更重要的是,我使用的是带 GUI 的 CentOS,导致了有两套 Network 管理,所以冲突了,尴尬。

环境

  • VMWare 12
  • CentOS7
  • 主机 Win10
  • NAT 模式

NAT 模式

因为采用 NAT 模式对虚拟机进行网络配置,所以需要将主机网络共享给虚拟机 NAT 网卡,如下:

2019-01-09-VMLinuxNetworkSetup.01.jpg

启用之后, 则 VMnet8 网卡的配置要如下所示,固定 ip 网段为 192.168.137.*

2019-01-09-VMLinuxNetworkSetup.02.jpg

CentOS7 网络配置

下面以克隆的一台机子为例(被克隆的机子为 hadoop00/192.168.137.100),配置新的网络。

Mac Address

当刚克隆的时候,机子的 Mac 地址也是一样的,所以要在启动前先重新生成(00:50:56:24:A9:10 就是新生成的 mac 地址):

2019-01-09-VMLinuxNetworkSetup.03.jpg

hostname

原来机器的 hostname 是 hadoop00,所以我们需要使用hostnamectl set-hostname hadoop01将名字改成hadoop01

/etc/hosts

下面是增加 hosts 配置,在之后建立集群时,需要将多台机子的 ip,hostname 信息都要添加进来。

1
2
3
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 hadoop01
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.101 hadoop01

修改网卡配置

首先我们可以使用ifconfig先查看一下网卡信息(这是我已经配置好了),
我们可以看到网卡的名字为eno16777736, Mac 地址和我们生成的是一致的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@hadoop01 ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.101 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::250:56ff:fe24:a910 prefixlen 64 scopeid 0x20<link>
ether 00:50:56:24:a9:10 txqueuelen 1000 (Ethernet)
RX packets 405 bytes 45790 (44.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 245 bytes 42636 (41.6 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 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:d8:7c:eb txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

所以我们需要配置/etc/sysconfig/network-scripts/ifcfg-eno16777736文件,这里便是核心的配置。

内容如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DVICEE=eno16777736
NAME=eno16777736
TYPE=Ethernet
IPADDR=192.168.137.101 # ip地址
PREFIX=24
NETMASK=255.255.255.0 # 子网掩码
NETWORK=192.168.137.0 # ip段
GATEWAY=192.168.137.2 # 网关地址
BROADCAST=192.168.137.255 # 广播地址, 网关地址最后一位换成255
DEFROUTE=yes
ONBOOT=yes
USERCTL=yes
BOOTPROTO=static
IPV4_FAILURE_FATAL=yes
HWADDR=00:50:56:24:A9:10 # 这里填执行ifconfig命令后, ens33(这里名称可能不同)的mac地址
IPV6INIT=no
DNS1=8.8.8.8
DNS2=114.114.114.114

之后有一些资料中说要删除/etc/udev/rules.d/70-persistent-ipoib.rules,但我查看过,里面是空的,可能是我使用的系统关系,想来不删除也没有关系的。

重启网卡服务

在这里,一般使用:

1
systemctl restart network.service

也可以用:

1
2
service network stop
service network start

而我像开头说的,因为带了GUI,所以我这边还需要停掉一个NetworkManager服务,使用:

1
2
service NetworkManager stop
chkconfig NetworkManager off

此外,为了方便,防火墙可以关闭掉:

1
2
3
4
//临时关闭
systemctl stop firewalld
//禁止开机启动
systemctl disable firewalld

这样子的话,下次开机,就能直接通过ssh访问了。

最后

主要是自己不熟悉一些概念,所以遇到问题没有办法找到根源,只能有时间再好好啃啃鸟哥的私房菜了。

参考:

Author

BF

Posted on

2019-01-09

Updated on

2024-03-31

Licensed under