虚拟机如何设置IP和宿主机的IP在同一网段内?

虚拟机如何设置IP和宿主机的IP在同一网段内?,第1张

关于桥接网络

]Host的物理网卡和Guest的网卡在VMnet0交换机上通过虚拟网桥进行桥接,这也就是说,我的物理网卡和Guest的虚拟网卡(注:这个虚拟网卡不等于VMwareNetworkAdapterVMnet1或者VMwareNetworkAdapterVMnet8)处于同等地位,此时的Guest就好像我的Host所在的一个网段上的另外一台机器。我的Host的物理网卡配置如下:IP地址为手工指定方式,网关为192.168.0.1,那么我的Guest就应该和我的Host处于同一个网段,它的配置可为:

Ethernetadapter本地连接:

Connection-specificDNSSuffix.:

Description...........:BroadcomNetXtreme57xxGigabitController

PhysicalAddress.........:00-1A-A0-A9-DC-1B

DhcpEnabled...........:No

IPAddress.............:192.168.0.2

SubnetMask...........:255.255.255.0

DefaultGateway.........:192.168.0.1

IP地址为手工指定方式,网关为192.168.0.1,那么我的Guest就应该和我的Host处于同一个网段,它的配置为:

EthernetadapterBridged:

Connection-specificDNSSuffix.:

Description...........:BroadcomNetXtreme57xxGigabitController

PhysicalAddress.........:00-1A-A0-A9-DC-1B

DhcpEnabled...........:No

IPAddress.............:192.168.0.10

SubnetMask...........:255.255.255.0

DefaultGateway.........:192.168.0.1

同样,IP地址也为手工指定方式,网关也为192.168.0.1,这样的话,IP地址为192.168.0.2的Host和IP地址为

192.168.0.10的Guest就可以互通了:

EthernetadapterBridged:

Connection-specificDNSSuffix.:

Description...........:BroadcomNetXtreme57xxGigabitController

PhysicalAddress.........:00-1A-A0-A9-DC-1B

DhcpEnabled...........:No

IPAddress.............:192.168.0.10

SubnetMask...........:255.255.255.0

DefaultGateway.........:192.168.0.1

Pinging192.168.100.10with32bytesofdata:

Replyfrom192.168.100.10:bytes=32timeReplyfrom192.168.100.10:bytes=32timeReplyfrom192.168.100.10:bytes=32timeReplyfrom192.168.100.10:bytes=32time

Pingstatisticsfor192.168.100.10:

Packets:Sent=4,Received=4,Lost=0(0%loss),

Approximateroundtriptimesinmilli-seconds:

Minimum=0ms,Maximum=0ms,Average=0ms

当然,Guest所配置的IP地址一定要在192.168.0网段没有被占用,而且我的网络管理员允许我来使用这个IP地址。如果在192.168.0网段,存在DHCP服务器,那么Host和Guest都可以把IP地址获取方式设置为DHCP方式。

关于NAT网络

在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMwareNetworkAdapterVMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信,但是VMwareNetworkAdapterVMnet8虚拟网卡仅仅是用于和VMnet8网段通信用的,它并不为VMnet8网段提供路由功能,处于虚拟NAT网络下的Guest是使用虚拟的NAT服务器来连接到Internet的。VMware功能非常强大,在NAT网络下,我们甚至可使用PortForwarding功能,来把Host的某一个TCP或者UDP端口映射到Guest上!我的VMwareNetworkAdapterVMnet8虚拟网卡的IP地址配置如下:Ethernetadapter本地连接:

EthernetadapterVMwareNetworkAdapterVMnet8:

Connection-specificDNSSuffix.:

Description...........:VMwareVirtualEthernetAdapterforVMnet8

PhysicalAddress.........:00-50-56-C0-00-08

DhcpEnabled...........:No

IPAddress............:192.168.153.1

SubnetMask...........:255.255.255.0

DefaultGateway.........:

IP地址是手工填写的,但却不是由我来指定的,而是VMware在安装的时候自动随机指定的一个IP地址(注意,不要修改VMwareNetworkAdapterVMnet8虚拟网卡所在的网络ID,这样的话会造成Host和Guest无法通信)。那么,我的NAT网络的虚拟机的IP地址也为192.168.153.0这个网段,其IP地址配置为:

WindowsIPConfiguration

HostName............:Lineage

PrimaryDnsSuffix.......:

NodeType............:Unknown

IPRoutingEnabled........:no

WINSProxyEnabled........:No

EthernetadapterNAT:

Connection-specificDNSSuffix.:

Description...............:VMwarePCIEthernetAdapter

PhysicalAddress.............:00-50-56-C0-00-08

DhcpEnabled...............:Yes

AutoconfigurerationEnanble....:Yes

IPAddress................:192.168.153.10

SubnetMask...............:255.255.255.0

DefaultGateway.............:192.168.153.2

DHCPServer................:192.168.153.254.....................

可以看到,它的IP地址分是由DHCP服务器分配的的,DHCP服务器的地址为192.168.85.254,那为什么会有DHCP服务器存在呢?

这是因为VMware安装之后,会有一台虚拟的DHCP服务器为虚拟机来分配IP地址,这个DHCP服务器,你可以ping通它,但是无法进行访问,因为实际上它就是一个系统服务而已,在开始——>运行中输入services.msc,就会看到这个服务

此时可以看到,Guest的网卡和Host上的VMwareNetworkAdapterVMnet8虚拟网卡拥有相同的网络ID,这样的话,在Guest中,ping通Host就没有问题了:

Pinging192.168.153.1with32bytesofdata:

Replyfrom192.168.153.1:bytes=32timeReplyfrom192.168.153.1:bytes=32timeReplyfrom192.168.153.1:bytes=32timeReplyfrom192.168.153.1:bytes=32time

Pingstatisticsfor192.168.153.1:

Packets:Sent=4,Received=4,Lost=0(0%loss),

Approximateroundtriptimesinmilli-seconds:

Minimum=0ms,Maximum=0ms,Average=0ms

有一点需要说明的是,在NAT方式的网络中,Guest的Gateway都指向了192.168.X.2,在本例中,X=153,也就是那个虚拟的NAT服务器的地址,这个服务器是一台虚拟的NAT服务器,可以ping通它,但是却无法访问到这台虚拟机,因为这同样也是一个系统服务:这时候,我的Guest和Host就可以实现互访了,并且如果我的Host此时已经连接到了Internet,那么我的Guest也就可以连上Internet了。那么Host上的VMwareNetworkAdapterVMnet8虚拟网卡在这里扮演了一个什么角色呢?它仅仅是为Host和NAT虚拟网络提供了一个通信接口,所以,即便在Host中Disable掉这块虚拟网卡,Guest仍然是可以上网的,只是Host无法再访问VMnet8网段,也即是无法访问Guest而已。

关于Host-Only网络

在Host-Only网络中,Host-Only网络被用来设计成一个与外界隔绝的(isolated)网络,其实Host-Only网络和NAT网络非常相似,唯一不同的地方就是在Host-Only网络中,没有用到NAT服务,没有服务器为VMnet1网络做路由,它当然就没有办法访问Internet啦,可是如果此时我的Host要和Guest通信怎么办呢?当然就要用到VMwareNetworkAdapterVMnet1这块虚拟网卡了。

如下图,这是我的Host上的VMwareNetworkAdapterVMnet1虚拟网卡的配置,同样,VMware也为我自动随机分配好了它的IP:

EthernetadapterVMwareNetworkAdapterVMnet1:

Connection-specificDNSSuffix.:

Description...........:VMwareVirtualEthernetAdapterforVMnet1

PhysicalAddress.........:00-50-56-C0-00-01

DhcpEnabled...........:No

IPAddress............:192.168.201.1

SubnetMask...........:255.255.255.0

DefaultGateway.........:

那么如果我把Guest的网络设置成了Host-Only的话,把它的IP获取方式设置为DHCP,它会到虚拟的DHCP服务器上拿到IP,这个DHCP服务器仍然是一个虚拟的DHCP服务器(仅仅是一个系统服务而已),而且在下图中,可以看到,这个DHCP服务器的IP地址仍然是192.168.X.254,这里X=201,因为要和我的VMnet1的网络ID相同。所以,Guest所获得的IP和我的Host的VMwareNetworkAdapterVMnet1虚拟网卡的IP使用同一个网络ID:

WindowsIPConfiguration

HostName............:Lineage

PrimaryDnsSuffix.......:

NodeType............:Unknown

IPRoutingEnabled........:no

WINSProxyEnabled........:No

EthernetadapterHost-Only:

Connection-specificDNSSuffix.:

Description...............:VMwarePCIEthernetAdapter

PhysicalAddress.............:00-50-58-C0-50-0d

DhcpEnabled...............:Yes

AutoconfigurerationEnanble....:Yes

IPAddress................:192.168.201.10

SubnetMask...............:255.255.255.0

DefaultGateway.............:

DHCPServer................:192.168.153.254.....................

可以看到,在Host-Only网络下,Guest的DefaultGateway被设置为NULL,这是由于没有默认路由器为它到外部网络提供路由的缘故,也即是上边说到的Host-Only网络没有NAT服务器!如果使用routeadd命令加上某个地址做为它的路由器,它仍然不能访问Internet(实际上也没有地址可加)。这样,我的Guest虽然没有办法访问Internet,但是仍然可以和我的Host进行通信,这正是因为我的Host上的VMwareNetworkAdapterVMnet1虚拟网卡起到了作用,它负责和VMnet1网络相连,为我访问Host-Only网络下的Guest提供了通信接口。下图显示了在Host-Only网络中的Guest与我的Host的通信情况:

Pinging192.168.201.1with32bytesofdata:

Replyfrom192.168.201.1:bytes=32timeReplyfrom192.168.201.1:bytes=32timeReplyfrom192.168.201.1:bytes=32timeReplyfrom192.168.201.1:bytes=32time

Pingstatisticsfor192.168.201.1:

Packets:Sent=4,Received=4,Lost=0(0%loss),

Approximateroundtriptimesinmilli-seconds:

Minimum=0ms,Maximum=0ms,Average=0ms

至于为何要把Host-Only网络设置为没有DefaultGateway的方式,这是VMware的设计使然,它就是让我们建立一个与外界隔离(isolated)的网络时而使用的。事实上,如果我足够BT,也可以在Host上来为VMwareNetworkAdapterVMnet1虚拟网卡来做路由。比如,我可以用Windows2000的RRAS来做,这样的话,处于Host-Only网络下的Guest就又可以上网了,它们只需要使用routeadd命令把自己的DefaultGateway指向Host上的VMwareNetworkAdapterVMnet1虚拟网卡即可,不过这样做不推荐,也没有必要.

至此,VMware的3种网络,就应该可以理解可以看到,如果想要Guest上网,在3种网络模型中,

最为简单的方式就是NAT,因为它不需要任何的网卡设置,IP地址也可以从虚拟的DHCP服务器来获得,要做的仅仅就是把它的网络设置为NAT方式即可。

至于Bridged模式,则需要额外的IP地址,这有可能会实现不了,因为并不是每个ISP都那么大方。

如果是Host-Only,则又需要设置RRAS,没有几个人会愿意为了让虚拟机上网而换OS的,所以就用NAT最好了。

在这里要强调的一点是,如果设置了Host-Only网络,非要为VMnet1做路由,一定要用RRAS,而不要用WindowsXP或者2000的ICS,因为它会自动把内网的接口地址改为192.168.0.1。你在安装虚拟机的时候,VMware不会正好给你的VMwareNetworkAdapterVMnet1虚拟网卡分配为192.168.0.1的地址吧?这样的话会造成VMwareNetworkAdapterVMnet1虚拟网卡和VMnet1网段的网络ID不一致,自然,你的Guest就没有办法和Host通信了!

实际上经常还会遇到这样的情况:比如VMware为我分配的网络ID在将来会被我用到,或者嫌VMware为你分配的网络不好(比如它给你分了个192.168.148.0的网络ID),那么可以到这里来修改:

单击VMware的“Host”菜单,选择“VirtualNetworkSettings...”

选择“HostVirtualNetworkMapping”中,VMnet1所在的虚拟网络,单击后边的按钮,选择“Subnet”菜单,即可以调整你的网络ID。

可以的。在虚拟机中,你可以设置多个网络适配器,并将它们连接到不同的网络。例如,你可以将一个适配器连接到本地网络(如家庭或办公室网络),另一个适配器连接到互联网。

要设置虚拟机中的多个适配器,请按照以下步骤 *** 作:

1. 打开虚拟机管理软件(如VMware Workstation、VirtualBox等)。

2. 选择要配置的虚拟机并打开其设置。

3. 在“硬件”选项卡下,选择“添加”按钮以添加新的网络适配器。

4. 配置新的网络适配器并将其连接到所需的网络。

注意:为了使两个不同网段之间能够通信,你需要进行一些额外配置。例如,在路由器上创建静态路由或使用VPN等技术来实现跨越不同网段之间的通信。

1.打开VMware软件,开启要设置的虚拟机,用root用户登录;

2.点击VMware软件菜单栏上“虚拟机”—>“设置”—>“网络适配器”,选择“桥接模式”(默认是“NAT模式”);

3.进入Linux虚拟机修改网卡设置:

方法一,使用图形界面修改

1 . 桌面右击“open in terminal”,输入setup命令后回车;

2 . 通过键盘上下键选择“Network Configuration”,Tab到Run tool后回车;

3 . “Device Configuration”高亮回车,选择要设置的网卡(一般虚拟机只有一个网卡)后回车,进入ip设置界面;

4 . 默认情况下“Use DHCP”是自动获取,图形界面上展示为*,下面的静态IP不能进行设置。如下图:

5 . 将光标移动到“Use DHCP”的[*]上,点击空格键,即可开始设置下面的静态IP;

6 . 查看本机(连到路由器上的网络而非虚拟网络)的ip设置,将虚拟客户机Linux设置成一样即可(除IP外,IP设置到同一网段);如下图:

7 . Tab到“Save”、“Save&Quit”保存本次设置;

方法二,修改网卡配置文件

1 . 桌面右击“open in terminal”,输入setup命令后回车;

2 . 一般虚拟机网卡是eth0,修改文件vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0

BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址

BROADCAST=192.168.0.255 #对应的子网广播地址

HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址

IPADDR=192.168.14.120 #如果设置网卡获得ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址

IPV6INIT=no

IPV6_AUTOCONF=no

NETMASK=255.255.255.0 #网卡对应的网络掩码

NETWORK=192.168.0.0 #网卡对应的网络地址

ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备

3 . 修改对应网卡的网关的配置文件vi /etc/sysconfig/network

NETWORKING=yes #系统是否使用网络(一般设置为yes。如果设为no,则不能使用网络,而且很多系统服务程序将无法启)

HOSTNAME=localhost #本机的主机名(这里设置的主机名要和/etc/hosts中设置的主机名对应)

GATEWAY=192.168.14.1 #本机连接的网关IP地址

4 . 重启网卡或重启机器以应用上述修改。

重启网卡方式

(以eth0为例):先关闭(命令:ifdown eth0),再开启(命令:ifup eth0)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7748174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存