从外网访问VMware虚拟机的Web服务
2015-12-01 17:21
351 查看
主机上安装了VMware,VMware上安装了Linux或windows虚拟机。我想让虚拟机向外提供Web服务,于是在它上面打开了IIS(Windows)。本文讲解如何让我的主机和外网用户可以访问IIS的网站。
我的情景是这样的:主机(windows 7)位于局域网内,要在主机上VMware安装windows 7虚拟机;虚拟机上安装Team Foundation Server2010,并向局域网其他用户提供TFS网站的访问。这里分解成几个步骤。
网络拓扑
原理说明
VMware的NAT设置
端口转发(Port Forwarding)
路由器和防火墙设置
网络测试
网络拓扑
该前提下的网络拓扑有3种主要类型:家庭ADSL、公司局域网和托管机房公网。我的情景是第二种。
原理说明
有了拓扑之后,需要了解 VMware的三种网络连接模式 ,区分桥接(bridged)、NAT和Host-only。桥接模式,可以看成主机与虚拟机用Hub相连接。NAT是局域网的重要技术,详细解释可以看百科。NAT模式,可看成主机是关口,虚拟机在网络内部,所有与虚拟机的通信均要经过关口。Host-only模式,看成主机与虚拟机是用双绞线相连的,它们可分别处于独立的网段。
公司局域网采用域管理,即虚拟机没有(申请)在域内,而主机在域内。所以我只能采用NAT模式,否则虚拟机没有访问网络(或被访问)的权限。
VMware的NAT设置
右键点击虚拟机,选择“setting”;
在左边栏的Hardware选项卡内选择Network Adapter;
在右边栏选择NAT,如下图:
端口转发(Port Forwarding)
在完成NAT设置之后,虚拟机便可以访问外部网络(局域网其他用户和Internet)了。但是,从外部网络不能访问虚拟机。这是因为NAT对外是屏蔽内部网络细节的。为了实现从外部访问虚拟机,则需要设置端口转发。
查看虚拟机的IP地址
在VMware的菜单项Edit下选择Vitual Network Editor;在上方选定NAT网络,在下方选择NAT(shared host's IP address with VMs),点击NAT Settings;
点击Add添加端口转发;
Host Port是主机的端口,即从外网访问主机该端口的请求,均转发至虚拟机;
Type指定传输协议,这里添加了TCP和UDP(Http一般只使用TCP);
Vitual Machine IP Address填写虚拟机的IP地址和端口;由于这里需提供Web服务,所以应该填写Web端口(在windows IIS的网站中设定);
路由器和防火墙设置
在外部网络与主机间若有路由器,则需设置端口映射;我的情景下没有;
关闭主机上的防火墙,或者设置防火墙的端口允许规则;
网络测试
TFS的IIS网站已经搭建好;
在局域网其他用户的计算机上打开浏览器,访问http://<host's IP address>:host port;
假设主机的IP为10.1.1.1,则在浏览器访问http://10.1.1.1:8080。正常情况下,访问请求会转发至虚拟机,即该请求实际访问的是http://192.168.75.134:8080。
若正常打开Web网站,则测试通过。
最重要: 若在主机上无法ping通 虚拟机的IP地址,则注意虚拟机的防火墙是否开启
linux关闭防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
我的情景是这样的:主机(windows 7)位于局域网内,要在主机上VMware安装windows 7虚拟机;虚拟机上安装Team Foundation Server2010,并向局域网其他用户提供TFS网站的访问。这里分解成几个步骤。
网络拓扑
原理说明
VMware的NAT设置
端口转发(Port Forwarding)
路由器和防火墙设置
网络测试
网络拓扑
该前提下的网络拓扑有3种主要类型:家庭ADSL、公司局域网和托管机房公网。我的情景是第二种。
原理说明
有了拓扑之后,需要了解 VMware的三种网络连接模式 ,区分桥接(bridged)、NAT和Host-only。桥接模式,可以看成主机与虚拟机用Hub相连接。NAT是局域网的重要技术,详细解释可以看百科。NAT模式,可看成主机是关口,虚拟机在网络内部,所有与虚拟机的通信均要经过关口。Host-only模式,看成主机与虚拟机是用双绞线相连的,它们可分别处于独立的网段。
公司局域网采用域管理,即虚拟机没有(申请)在域内,而主机在域内。所以我只能采用NAT模式,否则虚拟机没有访问网络(或被访问)的权限。
VMware的NAT设置
右键点击虚拟机,选择“setting”;
在左边栏的Hardware选项卡内选择Network Adapter;
在右边栏选择NAT,如下图:
端口转发(Port Forwarding)
在完成NAT设置之后,虚拟机便可以访问外部网络(局域网其他用户和Internet)了。但是,从外部网络不能访问虚拟机。这是因为NAT对外是屏蔽内部网络细节的。为了实现从外部访问虚拟机,则需要设置端口转发。
查看虚拟机的IP地址
在VMware的菜单项Edit下选择Vitual Network Editor;在上方选定NAT网络,在下方选择NAT(shared host's IP address with VMs),点击NAT Settings;
点击Add添加端口转发;
Host Port是主机的端口,即从外网访问主机该端口的请求,均转发至虚拟机;
Type指定传输协议,这里添加了TCP和UDP(Http一般只使用TCP);
Vitual Machine IP Address填写虚拟机的IP地址和端口;由于这里需提供Web服务,所以应该填写Web端口(在windows IIS的网站中设定);
路由器和防火墙设置
在外部网络与主机间若有路由器,则需设置端口映射;我的情景下没有;
关闭主机上的防火墙,或者设置防火墙的端口允许规则;
网络测试
TFS的IIS网站已经搭建好;
在局域网其他用户的计算机上打开浏览器,访问http://<host's IP address>:host port;
假设主机的IP为10.1.1.1,则在浏览器访问http://10.1.1.1:8080。正常情况下,访问请求会转发至虚拟机,即该请求实际访问的是http://192.168.75.134:8080。
若正常打开Web网站,则测试通过。
最重要: 若在主机上无法ping通 虚拟机的IP地址,则注意虚拟机的防火墙是否开启
linux关闭防火墙:
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
相关文章推荐
- Swift中的HTTP请求
- Java图形用户界面布局控制Layout练习
- android中hotpatch
- OpenCV - findContours函数使用
- msyql中find_in_set用法
- C#创建Windows Service
- C语言基础(五--1)
- <Android>初识一:令人头疼的R文件缺失问题
- 在POI中,数字转换的问题
- 二进制开关实现
- 文件、描述符与索引节点总结
- webpack练手项目之easySlide(二):代码分割
- 每天一个linux命令(15):tail 命令
- QT手动moc问题:virtual struct QMetaObject const * __thiscall Widget::metaObject
- struts2配置文件详解一
- Leetcode #217 Contains Duplicate
- 实习整理(十五)
- 【学习笔记javascript设计模式与开发实践(策略模式)----5】
- Maven的生命周期和插件
- 九度OJ 1354:和为S的连续正数序列 (整除)