Linux版VMware使用DHCP为虚拟机分配固定IP及实现NAT网络端口转发

首先介绍一下环境:

1. Host(宿主计算机)的操作系统是Scientific Linux,内核版本2.6.18,主机名SPVM02,IP地址135.100.101.102,部署的是VMware Workstation 8。

2. Guest(虚拟机)这边安装的操作系统是Windows 7。

3. Guest使用vmnet8这块网卡,通过NAT协议实现上网。

需要实现的功能是Host网络中的其他计算机使用Microsoft Remote Desktop远程登录Guest桌面。所以探索如何通过配置VMware Workstation来实现NAT网络端口转发是本文的核心内容。

以下两个方法均可以实现我们需要的功能,其中第二种方法比较直接,需要解决问题的朋友可以直接往下翻。

先说第一种方法,通过修改VMware网络配置实现DHCP为Guest分配固定IP和让外网计算机访问Guest指定端口的功能。

这个配置在Windows版的VMware Workstation中可以通过图形界面完成,然而在Linux中我们目前只能通过修改配置文件的方式来实现。步骤如下:

1. 首先用“ps -ef”来找到DHCP和NAT服务的配置文件:

[[email protected] ~]# ps -ef | grep dhcpd

root     11080     1  0 09:58 ?        00:00:00 /usr/bin/vmnet-dhcpd -s 6 -cf
/etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8

[[email protected] ~]# ps -ef | grep natd

root     11054     1  0 09:58 ?        00:00:00 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet8/nat.mac -c/etc/vmware/vmnet8/nat/nat.conf

我们还可以通过“cat /proc/11080/cmdline”的方法找到,这里不多说了。

总之,我们找到了这两个服务的配置文件:“/etc/vmware/vmnet8/dhcpd/dhcpd.conf”和“/etc/vmware/vmnet8/nat/nat.conf”。

2. 修改DHCP配置文件,实现VMware为虚拟机分配固定IP的功能:

[[email protected] ~]# vi /etc/vmware/vmnet8/dhcpd/dhcpd.conf

......

####### VMNET DHCP Configuration. End of "DO NOT MODIFY SECTION" #######

host spvmwin7a {

hardware ethernet 00:0C:29:F1:5D:46;

fixed-address 192.168.187.200;

}

我们在配置文件的最后添加上述文本。

其中"spvmwin7a"是个主机名,其实随便填就好了,只要别跟配置文件里的其他host重名就成;

Guest网卡的MAC地址“00:0C:29:F1:5D:46”可以通过在Guest命令行中使用Windows命令“ipconfig /all”获得;

固定IP地址“192.168.187.200”即为所要分配给这台Guest网卡的IP地址。

3. 修改NAT配置文件,实现Host到Guest的端口转发:

[[email protected] ~]# vi /etc/vmware/vmnet8/nat/nat.conf

......

[incomingtcp]

# Use these with care - anyone can enter into your VM through these...

# The format and example are as follows:

#<external port number> = <VM‘s IP address>:<VM‘s port number>

#8080 = 172.16.3.128:80

9000 = 192.168.187.200:3389

我们在配置文件的[incomingtcp]这个section里添加上面这行文本。

它表示将发往Host 9000端口的TCP请求,转发到192.168.187.200(Guest)的3389端口。

注:3389为Microsoft Remote Desktop服务的默认监听端口。

4. 重启VMware的DHCP和NAT服务:

我们需要重启VMware的dhcpd和natd进程,刚才的改动才能生效。

坑爹的地方来了,我翻遍了互联网和官方的文档,也没找到如何重启这两个进程。

网上有文章说执行“/usr/lib/vmware/net-services.sh restart”来重启网络相关进程,但可能是因为VMware版本不太一样,我找了半天也没找到类似的脚本。

跟朋友商量后,还是用了kill命令然后手动运行的这两个进程,效果是没有问题的。

直到后来,我才试出了对应的命令:

[[email protected] ~]# /usr/bin/vmware-networks --stop

Stopped Bridged networking on vmnet0

Stopped DHCP service on vmnet8

Stopped NAT service on vmnet8

Disabled hostonly virtual adapter on vmnet8

Stopped all configured services on all networks

[[email protected] ~]# /usr/bin/vmware-networks --start

Started Bridge networking on vmnet0

Started NAT service on vmnet8

Enabled hostonly virtual adapter on vmnet8

Started DHCP service on vmnet8

Started Network detection service

Started all configured services on all networks

[[email protected] ~]# /usr/bin/vmware-networks --status

Bridge networking on vmnet0 is running

DHCP service on vmnet8 is running

NAT service on vmnet8 is running

Hostonly virtual adapter on vmnet8 is enabled

Network detection service is not running

All the services configured on all the networks are running

5. 验证配置:

首先我们来到Guest的命令行,使用“ipconfig /renew”来刷新网络连接,IP地址从“192.168.187.128”变成了“192.168.187.200”,说明我们对DHCP的更改生效了。

然后我们打开Windows的“远程访问”功能,赘述一下方法:右键“计算机”选择“属性”,点击左边“远程设置”,在弹出的对话框中“远程桌面”的地方选择允许远程计算机连接。

再在Host所在网络中,找一台Windows的主机,“开始”>"运行"中输入"mstsc"尝试连接一下“135.100.101.102:9000”,如果提示输入凭证以登陆Windows,就说明端口转发的设置生效了。

再说第二种方法,其实在Linux中端口转发是一件非常容易的事情。

我们可以简单地建立一个端口映射关系来解决这个问题,使用的时候只需要在Host执行一个命令即可搞定:

ssh -Nf -L 135.100.101.102:3390:192.168.187.200:3389 localhost

至于命令的含义,这里就不再赘述了,感兴趣的朋友请自行参阅“man ssh”。

下面说一些调试过程中可能会用上的技巧:

如果连不上Guest的远程桌面,首先在外网ping一下Host,在Host中ping一下Guest,然后再检查一下Windows防火墙。

在Guest检查服务是否正常,“开始”>"运行"中输入"mstsc"尝试连接一下自己“192.168.187.200:3389”,如果说是“正在运行一个会话”那么就说明服务是正常的,换个端口试下就知道连不通是怎么提示的了。

参考文献:

1. 《LINUX下的VMWARE的端口映射》 http://blog.chinaunix.net/uid-12290680-id-26867.html

2. <Using VMware Workstation - VMware Workstation 8> http://www.vmware.com/pdf/ws80-using.pdf

3. <BSD General Commands Manual - SSH(1)>

时间: 2024-08-11 07:42:04

Linux版VMware使用DHCP为虚拟机分配固定IP及实现NAT网络端口转发的相关文章

给一个运行在windows 7和NAT下的VMWARE虚拟机分配固定IP

虚拟机上装了个oracle服务器,每次vmware重启或者resume时总要分配新的IP地址,这样就得修改windows下的客户端配置,所以需要想办法把IP地址固定住. DHCP服务在客户端请求IP时可以根据mac地址给予"固定"的IP.  第一步:修改DHCP服务器配置文件: 在C:\ProgramData\VMware下的vmnetdhcp.conf,在最后加上如下行: host THEL6_64 { hardware ethernet 00:0C:29:08:C5:7F; fix

给一个执行在windows 7和NAT下的VMWARE虚拟机分配固定IP

虚拟机上装了个oracleserver,每次vmware重新启动或者resume时总要分配新的IP地址,这样就得改动windows下的client配置,所以须要想办法把IP地址固定住. DHCP服务在client请求IP时能够依据mac地址给予"固定"的IP.  第一步:改动DHCPserver配置文件: 在C:\ProgramData\VMware下的vmnetdhcp.conf.在最后加上例如以下行: host THEL6_64 { hardware ethernet 00:0C:

GNS3中,给Vmware虚拟机分配固定IP

因为楼主是VMWARE小白,所以这么个小问题就把我拦住不少时间,是了N多方法,最后回到起点才发现如此简单 话不多说,方法如下: 一.打开VM,启动虚拟机 二.等虚拟机启动,输入用户名root 密码cisco (图1) 三.输入 nano /etc/network/interfaces进入nano 四.iface eth0 inet dhcp改为iface eth0 inet static 五.输入address +ip地址,回车,在输入netmask +掩码   (图2) 六.按CTRL+O保存

简单粗暴的在vmware虚拟机中固定ip

虚拟机对于很多做测试的或者在学习测试中的人来说是位常客,经常会用到,但是虚拟机重启之后,很多人遇到虚拟机ip变化,很是头痛,我在学习过程中也遇到了这个问题,百度了很多办法,有些办法对于网络知识小白来说难度有点大,还有一些分享的经验都没有奏效,经过尝试,总结了两种简单粗暴,亲测有效的办法,共享出来,遇到的人可以做个参考,尤其是对小白,可以快速解决这个问题,不至于在这种小问题上浪费太多时间,大神可忽略. 首先,首先确定你在.NAT模式下,这时由VM8虚拟网卡提供虚拟机的IP分配,相当于一个小型的DH

Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)

虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是NAT的上网方式默认是DHCP动态分配IP的,这意味着你每次重启虚拟机都 有不一样的IP地址,这对一般用户没任何问题.但是如果你的机子有特殊用处,比如作为服务器,需要IP地址信息,亦或者像我一样,作为一个云计算的节点, 其IP都是在配置文件里配置好的,如果每次重启系统都要跑过去修改下配置文件里的IP,那简直是不可取的做法,因此为虚拟机设置固定IP上网非常的有必 要! 设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:brid

[转载]Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)

虚拟机里设置上网方式为NAT最方便,因为无需手动设置即可上网,但是NAT的上 网方式默认是DHCP动态分配IP的,这意味着你每次重启虚拟机都 有不一样的IP地址,这对一般用户没任何问题.但是如果你的机子有特殊用处,比如作为服务器,需要IP地址信息,亦或者像我一样,作为一个云计算的节点, 其IP都是在配置文件里配置好的,如果每次重启系统都要跑过去修改下配置文件里的IP,那简直是不可取的做法,因此为虚拟机设置固定IP上网非常的有必 要! 设置固定IP的方法很多,大家都知道虚拟机上网有三种模式:bri

[例子]Ubuntu虚拟机设置固定IP上网

宿主机器     win7 linux            Ubuntu 14.04 LTS 参考: Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP.网关.DNS.防止resolv.conf被重写) 1  win7 设置虚拟网卡8 2 设置虚拟机 进入后, 先恢复默认设置. 在着呢对VMnet8进行设置 3 进入linux 通过ifconfig查看当前网卡 在linux中通过ifconfig可以看到的当前linux的网卡.(默认好像是从0开始排序) 在虚拟机中的eth0应该就是我

为centos虚拟机配置固定ip

在virtual上安装centos虚拟机以后,发现虚拟机没有ip,无法联网 将虚拟机的网络适配器改为桥接模式,桥接到物理机的无线网卡 为虚拟机配置固定IP(vi /etc/sysconfig/network-scripts/ifcfg-enp0s3), 子网掩码和网关设置成和物理机一样的值 重启网络 ( systemctl restart network ),查看IP 成功联网 原文地址:https://www.cnblogs.com/darrenlou/p/10667262.html

Linux版VMware vCenter Server Appliance的安装

安装环境 母机:Windows Server 2012 R2 标准版 IE11浏览器 ESXI:VMware ESXi6.0 u2 vCenter:VMware vCenter Server 6.0 Update 2 Appliance 安装过程 关闭2012 R2系统自带IE11浏览器的增强安全配置以免影响安装程序无法正常弹出. 点击任务栏上的"服务器管理器"图标 点击弹出的服务器管理器-仪表板左边"本地服务器"标签 右侧的"IE增强的安全配置"