首页 > 技术文章 > 虚拟机设置静态ip

freedesert 2014-07-18 10:09 原文

首先看看三种网络连接的原理:

一 VMware网络设置的三种方式

1 Host-only连接方式
  让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于同一网段。最终结果是新建了一个由所有虚机与宿主主机所构成的局域网,但该局域网与宿主主机本身所处的现有局域网是相互独立的,如果不做额外路由设置,这两个局域网之间不会连通,因此新建的局域网可以认为是一个单独从属于当前宿主主机的私有网络,其成员为当前宿主主机和相关的所有虚机,这也是Host-only命名的由来。
     从网络技术上相当于为宿主主机增添了一个虚拟网卡,让宿主主机变成一台双网卡主机(宿主网卡+虚拟网卡)。同时在宿主主机后端加设一个虚拟交换机,让宿主主机和所有虚机构成另一个虚拟的局域网。由于具备双网卡,宿主主机可同时参与两个局域网(现有的宿主局域网+新建的虚拟局域网),只不过缺省情况下两个局域网不连通。

2 Bridge(桥接)连接方式
    让虚机具有与宿主机不同的各自独立IP地址,但与宿主机保持在同一网段,最终结果是所有虚机都加入宿主主机所在的局域网,这与在该局域网中添加入其他宿主主机在效果上没什么区别。
   从网络技术上相当于在宿主主机前端加设了一个虚拟交换机,然后宿主主机和所有虚机共享这个交换机;或者干脆理解成在宿主主机上作点增强,使其兼具一个交换机(当然是虚拟的)功能,供该宿主主机和网段内其他虚机使用。

3 NAT连接方式
    虽然从表面现象看,虚机无自己的IP地址,而是共享宿主主机的IP地址,但技术本质上却是基于Host-only方式的(即,虚机还是有自己独立IP地址的,只不过实际中不投入使用),与Host-only方式一样,宿主主机成为双网卡主机,同时参与现有的宿主局域网和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚机在对外访问时,完全“冒用”宿主主机的IP地址,这样从外部网络来看,只能看到宿主主机,完全看不到新建的虚拟局域网。

 

二 总结

 =========================
(1)Bridged方式
用这种方式,虚拟系统的IP可设置成与本机系统在同一网段,虚拟系统相当于网络内的一台.独立的机器,与本机共同插在一个Hub上,网络内其他机器可访问虚拟系统,虚拟系统也可访问网络内其他机器,当然与本机系统的双向访问也不成问题.
(2)NAT方式
这种方式也可以实现本机系统与虚拟系统的双向访问.但网络内其他机器不能访问虚拟系统,虚拟系统可通过本机系统用NAT协议访问网络内其他机器.
NAT方式的IP地址配置方法:虚拟系统先用DHCP自动获得IP地址,本机系统里的ware services会为虚拟系统分配一个IP,之后如果想每次启动都用固定IP的话,在虚拟系统里直接设定这个IP即可.
(3)host-only方式
顾名思义这种方式只能进行虚拟机和主机之间的网络通信,既网络内其他机器不能访问虚拟系统,虚拟系统也不能访问其他机器.

 

三 实例

 

1、Bridge模式(一切都跟host一样,只有ip不能与host相同)

ip 192.168.39.222
netmask:255.255.252.0
gateway:192.168.39.254
Primary nameserve:192.168.39.252

2、NAT模式
首先在host中查看VMnet8的IP(e.g. 192.168.255.1).启动VMware,点Edit下Virtual Network Setting… ,弹出Virtual network Editor对话框;查看NAT选项卡,记录NAT的
Gateway IP address:192.168.255.2
在config中,填写:ip:192.168.255.5(与192.168.255.1在同一个网段的不同地址)
netmask:255.255.255.0(与92.168.255.1的隐码相同)
Gateway IP:填写VMware中的NAT网关192.168.255.2
Primary nameserver:填写与主机中一样的网关192.168.39.252,这样就可以上网冲浪了.如果填写192.168.255.1,则不能连上外网.这里也可以不停,总之不能写错误的地址

3、hostonly模式
(1)查看你的连接外网的网卡的属性,选择“高级”标签,设置成允许共享,并设定允许的网络接口为VMNET1

(2)再插看一下你的VMnet1 的属性,看一下TCP/IP协议的设置,你发现已经被自动设置为:192.168.0.1/255.255.255.0,

(3)windows下的设置完成,转入到跑linux的虚拟机.将你的eth0的ip地址设置为静态的(如果安装时没有选静态的话) .
按红帽子图标->系统设置->网络(或其它你了解的方法)
ip: 192.168.0.2(或其它在此网段上的地址)
netmask: 255.255.255.0
default gateway: 192.168.0.1 (VMnet1的地址)
dns:输入你自己的DNS (host中用的DNS)
保存设置.如果你还没有设置好主机名称:

cd /etc/sysconfig
vi network

编辑HOSTNAME

cd /etc
vi hosts

加入:

192.168.0.2 yourhostname

重新启动服务

su
/sbin/service network restart

(4)测试一下
网关: ping 192.168.0.1
dns: ping dnsserver


 

参考:

宿主机为linux、windows分别实现VMware三种方式上网:http://linuxme.blog.51cto.com/1850814/389691

虚拟机中linux上网设置: http://linuxme.blog.51cto.com/1850814/346514

vmware四种网络连接:http://www.linuxany.com/archives/369.html

 

完!


作者:iTech
出处:http://itech.cnblogs.com/ 
 
 
 
 
 

在自己电脑的虚拟机中搭建环境,但是发现之前VMware设置的是DHCP,所以每次重新resume后虚拟机中IP都变了,导致之前已经搭建好的集群环境老是出问题又要重新搭建很麻烦,所以设置一下静态静态IP,步骤很简单:

首先关闭VMware的DHCP

Edit->Virtual Network Editor

选择VMnet8,去掉Use local DHCP service to distribute IP address to VMs选项。点击NAT Settings查看一下GATEWAY地址:

点击OK就可以了。

 

设置CentOS静态IP:

涉及到三个配置文件,分别是:

/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/resolv.conf

 首先修改/etc/sysconfig/network如下:

NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.129.2

指定网关地址(似乎也可以不指定这个网关地址)。

然后修改/etc/sysconfig/network-scripts/ifcfg-eth0:

复制代码
DEVICE="eth0"
#BOOTPROTO="dhcp"
BOOTPROTO="static"
IPADDR=192.168.129.129
NETMASK=255.255.255.0
HWADDR="00:0C:29:56:8F:AD"
IPV6INIT="no"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ba48a4c0-f33d-4e05-98bd-248b01691c20"
DNS1=192.168.129.2
复制代码

注意:这里DNS1是必须要设置的否则无法进行域名解析。(如果虚拟机不能上网,这里的DNS要设置成物理机的DNS服务器才可以)

最后配置下/etc/resolv.conf:

nameserver 192.168.129.2

其实这一步可以省掉,上面设置了DNS Server的地址后系统会自动修改这个配置文件。

但是如果发现resolv.conf文件总是自动生成并且没有生成nameserver为物理机的DNS域名,则可以手动添加nameserver为物理机的DNS,并改变该resolv.conf文件的权限,使之只有root用户可以更改。改变命令如下:

可以用chmod +i /etc/resolv.conf 锁定它,貌似bsd系统是另一个命令,如果想修改可以用chmod -i解除

 

这样很简单几个步骤后虚拟机的IP就一直是192.168.129.129了。

 

重启网络服务:service network restart

推荐阅读