欢迎各位兄弟 发布技术文章
这里的技术是共享的
解决使用VMware克隆出来的新虚拟机无法联网的问题
一.背景
我们安装好了一个虚拟机,我想做分布式集群,想模拟几台服务器,这时就想直接复制已经有的安装好的虚拟机,这样比较省事,不要在重复的安装虚拟机并配置JAVA环境,省掉做同样的事情,这时直接复制,这样之前配置的JAVA环境都有了。
二.问题
这时我复制好的虚拟机,启动登陆进去(用户名和密码跟之前那台是一样的),修改好IPADDR,然后网卡重启出现问题?
#service network restart
出现问题:Error:No suitable device found: no device found for connection "System eth0" 如图所示:
#ifup eth0
出现: eth0: unknown interface: No such device 这样的问题,网卡都启动不了,出现问题.
三.解决问题
第一步:我们在界面点击Network Adapter Remove删除网卡,如图所示:
第二步:然后添加一个新的网卡,就是点击add,这时跟前面一台的MAC Address 就不一样,如图所示:
第三步: 重新启动虚拟机,然后进入到/etc/udev/rules.d/目录
#cat 70-persistent-net.rules
里面的信息跟我们Network Adapter的MAC Address地址一样,如图所示:
第四步:进入/etc/sysconfig/network-scripts/目录
#vi ifcfg-eth0
把HWADDR修改成Network Adapter的MAC Address地址一样,如图所示:
第五步:重启网卡,这时就能正常启动,如图所示:
NAT模式下 :VMware会自己虚拟出一个交换机出来,虚拟机里面有张网卡,window里面也会分配一个虚拟的网卡(VMnet8)吗,
那么window跟Linux就通过一个虚拟的交换机连接起来了,虚拟的交换机也可以通过window真实的网卡去连接外网,这样就实现了虚拟机联网
、查看并分配虚拟网络
我们首先要知道 VMware 三种网络模式的区别。
①、Bridged(桥接模式):就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如果需要联网,则网关与DNS需要与主机网卡一致。
②、NAT(网络地址转换模式):主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。
③、Host-Only(仅主机模式):其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
这里我们选择 NAT 模式。
通过VMWare -> Edit -> Virtual Network Editor打开如下对话框:
由上图可知:虚拟网卡VMnet8 的子网 IP 为 192.168.146.0,子网掩码为:255.255.255.0
点击上图的 NAT 设置:
由此我们可以得出:
子网ip:192.168.146.0
子网掩码:255.255.255.0
默认网关:192.168.146.2
那么我们可以得出:
hostname ipaddress subnet mask geteway
1、 master 192.168.146.200 255.255.255.0 192.168.146.2
2、 slave1 192.168.146.201 255.255.255.0 192.168.146.2
3、 slave2 192.168.146.202 255.255.255.0 192.168.146.2
后面的主机可以依次相加
注意:这里可以根据自己本机的 ip 进行虚拟机ip分配,主机名要不一样,ip地址要不一样
2、开启虚拟机服务
我的电脑----> 管理 ------>服务和应用程序------>服务
3、配置网络
以 root 用户登录 Linux 虚拟机,输入如下命令配置 ip
1 |
|
将下面内容添加到打开的文件中
1 2 3 |
|
最后显示结果为:
DEVICE=eth0【网卡名称】
HWADDR=00:07:E9:05:E8:B4 #对应的网卡网卡地址,即mac地址(文件里可以没有)
TYPE=Ethernet#表示网络类型是以太网
UUID:网卡的UUID(文件里可以没有)
ONBOOT=yes【开机加载】
BOOTPROTO=static【是否自动获取,static是静态地址】
IPADDR=192.168.146.200【配置你的本地IP】
NETMASK=255.255.255.0【子网掩码】
GATEWAY=192.168.146.2【默认网关】
输入完成后,按ESC 键,然后输入“:wq”,即保存退出
4、配置 DNS
1 |
|
输入:
1 |
|
输入完成后,按ESC 键,然后输入“:wq”,即保存退出
如果不进行 DNS 配置,那么只能和真实物理机通信, ping www.baidu.com 是不通的 我最近遇见的情况ping百度ping不通,原因是因为 我本机的网段是192.168.0.113,而 我在ifcfg-eth0里面设置的IPADD=192.168.31.77根本不是一个网段的,所以导致外网一直ping不通)
5、重启网卡,使得配置生效
1 |
|
6、关闭防火墙
如果你 ping 本机真实ip地址,不通,那么需要关闭防火墙
1 2 3 |
|
1 2 3 |
|
具体操作为:
service iptables stop
chkconfig iptables off
那么第一台虚拟机配置完成。接着可以利用 vmware 的克隆功能克隆出其他的虚拟机
第一步:关闭 虚拟机
1 |
|
第二步:克隆
利用 VMware 的克隆工具,右键 虚拟机名字---》管理----》克隆 。然后都是下一步下一步操作即可。
这里我们用 上面的虚拟机克隆出另外一台虚拟机 slave1
第三步:克隆完成后,开启虚拟机 slave1 。然后配置IP。
注意:完成以后启动克隆的虚拟机,用户名和密码都是被克隆的linux的用户名密码
①、由于是完全的克隆过来的 Linux 所以需要更改这几项:操作系统物理地址、IP地址、主机名
②、删除网卡中的UUID和物理地址HWADDR(这两行在Linux重启之后,操作系统会自动生成的)
1、以 root 用户登录 slave1 ,输入如下命令:
1 |
|
将 IP 改为 192.168.146.201,去掉 UUID 和 HWADDR 这两行
2、接下来修改主机名:在命令中输入
1 |
|
修改为:
3、删除Linux物理地址绑定的文件(该文件会在操作系统重启并生成物理地址以后将物理地址绑定到IP上);
输入如下命令:
1 |
|
4、输入 shutdown -r now 重启系统
然后我们输入 ifconfig 发现 IP 已经更改了
因此:我们可以克隆出 slave2,slave3 等虚拟机,在依次这样更改 IP 配置即可相互 ping 通。
来自 https://blog.csdn.net/sod5211314/article/details/81488154