局域网虚拟机端口映射访问apache
如果我们在虚拟机内搭建好服务器后,希望可以在局域网内的设备上都能访问到这个虚拟服务器,就可以参照以下步骤来操作。其中包括了很多遇到的坑。先说说我的环境是
宿主机:windows 8.1
虚拟机:vmware+linux centos6.5
服务器:nginx
1.搭建局域网
我是利用笔记本wifi热点搭建的局域网。win7及以下版本应该有搭建临时无线网络的功能可以直接用这个功能,而win8开始这个功能就被隐藏了,可以在命令行输入netsh wlan set hostednetwork mode=allow ssid=热点名称 key=密码(8位及以上) 然后netsh wlan start hostednetwork 开启。
或者直接用connectify。我用上面这个方式不知道为什么手机连热点的时候获取不到ip地址,用connectify就可以。
无论用哪个方法都会多出一个这样的托管网络虚拟适配器的本地连接
如果不打算连接互联网在connectify的设置>NAT选项把无Internet时暂停连接的选项取消选中就好。
2.虚拟机设置
虚拟机的网络连接方式大致是三种,(1)桥接模式,在这种模式下,虚拟机相当于与所在物理机同一IP段的独立计算机,与局域网内的其他计算机是没有区别的;(2)NAT模式,这种模式下,虚拟机与所在的物理机单独组成了一个新的局域网,他们共享接入物理机的IP段;(3)host—only模式,在这种模式下物理机下所属的所有虚拟机共同组成一个局域网,他们与物理机之间是断开的,也就是说物理机和虚拟机之间是无法访问的。
如果局域网想要访问虚拟机的服务怎么办呢?这时候基本上有两种思路,一种是将虚拟机的网络连接设置成桥接模式,因为这时候虚拟机相当于所在物理机同一IP段的独立计算机,这时候其他的局域网内的计算机当然可以访问虚拟机内的服务,一般在虚拟机的设置里面找到网络设置,将其设置为桥接模式,借助虚拟机的IP就可以实现访问,但是这么做访问速度会非常慢。另外一种比较好的方式就是将虚拟机的网络连接设置成NAT模式,注意,直接这么设置局域网内的其他计算机是无法访问虚拟机中的服务的,因为局域网内的其他计算机相对于虚拟机和物理机新组的局域网来说属于外网,这时候还需要在物理机中对其进行端口映射,这个与局域网中利用路由器对其中某个IP端口进行映射的原理是一样的,通过这种也可以实现局域网访问虚拟机内的服务。(来源http://blog.csdn.net/jiangdianqin/article/details/50365988)
我们这里选用的是NAT模式。
①我们发现宿主机网络连接里有一个VMnet8
查看它的IP(直接在属性里查看或者ipconfig都行)
这个ip就是在宿主机在以后新建出来的虚拟机与宿主机之间的局域网里的ip地址。记住这个ip地址。
②打开虚拟机>编辑>虚拟网络编辑器
选择VMnet8那个选项,最下面子网ip改成和刚刚那个ip处于同一网段内。
比如我这里是192.168.139.1 就把虚拟机的改成192.168.139.0
DHCP设置里还可以设置分配给虚拟机的开始和结束ip
③点击 NAT设置
网关ip设为①里看的那个ip地址
④确定 然后回到虚拟机系统里查看虚拟机的ip地址(记得联网 我用的是linux的centos6.5 网络连接里只有eth0我就连了这个)
linux可以输入ifconfig查看ip地址
我这里就是192.168.139.128
确定在虚拟机里服务器可以访问,确定端口(我的是nginx服务器直接设在80端口)
⑤关闭虚拟机防火墙!!
我之前各种配置都设置好了也可以ping的通然而在宿主机里就是访问不了虚拟机的服务器,最后发现就是防火墙的锅。
centos6.5
防火墙(Iptables)重启系统生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
防火墙(Iptables) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
windows可以添加出入站规则什么的,可以自己去百度。
⑥添加端口转发
这是为了可以让局域网里的其他设备访问的到虚拟机
编辑>虚拟网络编辑器>vmnet8>nat设置>端口转发 添加
主机端口填的是你希望在宿主机访问哪个端口就可以访问到虚拟机
这里是8080 我在宿主机输入 localhost:8080 或者http://192.168.139.1:8080/都可以访问到虚拟机
虚拟机ip地址和端口就是上上一步看的那个
这样就可以在宿主机器访问虚拟机服务器了
在宿主机器里输入虚拟机的ip地址也可以访问。
3.宿主机配置
现在宿主机可以访问虚拟机服务器了,但局域网里其他设备还不可以。
①共享VMnet8
打开那个托管网络虚拟适配器的本地连接的属性
勾选这两个选项,家庭网络连接里选择虚拟机VMnet8那个网络连接
如果这里没有选项可以选择,可以先连接互联网。然后点开这个连接的属性里的共享标签,勾选两个选项之后选择VMNET8.
然后再去看托管网络虚拟适配器的本地连接的属性的共享里就会出现VMNET8了
②其他设备连接上局域网,查看本机在局域网里的ip
如果是用connectify开出来的热点可以在软件里看到连接的设备在局域网里的ip
查看宿主机在这个宿主机-其他设备的局域网里的ip可以用类似第2步的方法,查看托管网络虚拟适配器的本地连接的属性,或者ipconfig。
我这里就是192.168.141.1
③设置宿主机防火墙入站规则!!!
这也是我遇到的坑
局域网里的设备可以ping通宿主机的ip但是就是访问不了服务器。
我们在 控制面板>(系统安全)>windows防火墙>左边入站规则>右边新建规则
选择端口
特定本地端口里输入3.6里你设置的那个端口,我这里是8080
设置好之后就可以访问了,在其他设备输入宿主机在宿主机-其他设备局域网的地址:端口
我这里是192.168.141.1:8080
就可以了
作者:江湖游医黄半仙
链接:http://www.jianshu.com/p/db488f0ae3c0
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
局域网虚拟机端口映射访问apache的更多相关文章
- 用端口映射在Apache中对每个项目分配端口,实现一个端口访问一个网站
映口映射的功能主要就是实际互联网可以访问当前进行映射的电脑,首先我们要进行路由器的端口映射,常见的开放端口有80,21,3389等,80是网站常用端口,21是FTP服务器常用端口,3389是远程桌面连 ...
- Windows10环境配置nat123端口映射访问mysql
背景:因工作需要,在宽带路由器内部设置一个台式机(可上网),配置成数据库服务器.分散各处的多台外网机可以通过jdbc连接该数据库服务器进行开发.要进行端口映射. 环境: 宽带通 Windows10企业 ...
- Python 3 虚拟机端口映射 VMware
编程语言(以Python 3 为例子) 编程语言最开始就是机器语言(低级语言,计算机能认识:0101... 最底层的指令代码),学习很困难.现在用机器语言的很少,芯片厂商的技术人员来编程之外:发展下来 ...
- 配置多层NAT和端口映射实现外网访问内网
配置多层NAT和端口映射实现外网访问内网 背景和原理 通过配置NAT可以实现内网中不能直接访问外网的主机通过NAT代理访问内网,配置方法这里不再赘述(前文有介绍).本文以两层的NAT代理做模拟,通过端 ...
- VMware NAT端口映射 外网可以访问内网虚拟机
我想尝试的是利用本机的ip+port来访问虚拟机上的web服务器,因为这样的话,我就能够将我的web服务器部署成为一个能让外网访问的服务器了,首先说下我的环境: 主机:系统win7,ip地址172.1 ...
- 外网主机访问虚拟机下的web服务器(NAT端口转发)-----端口映射
主机:系统win7,ip地址172.18.186.210 虚拟机:VMware Workstation 7,虚拟机下安装了Centos操作系统,ip地址是192.168.202.128,部署了LAMP ...
- internet访问局域网内部方法之----------路由器端口映射
很多人每天都问为什么要端口映射?例如:通过路由器上网的,网站自己可以访问,但是别人就不能:输入127.0.0.1可以访问,别人还是看不到:输入localhost可以看到,但是别人就是看不到,气人啊-没 ...
- VMware NAT端口映射外网访问虚拟机linux
本文目的: 一. SSH连接 二. 访问HTTP VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了. ...
- NAT ------ 为什么手动设置NAT端口映射(转发)不成功,导致访问不了局域网服务器
手动设置端口映射成功的条件是路由器WAN口接的是外网IP,而不是网络提供商的路由器NAT之后的IP.假如有个外网的客户端,连的服务器IP一定要是外网IP(假设IP_A),如果自己的路由器WAN口接的是 ...
随机推荐
- 题解报告:hdu 2141 Can you find it?(二分)
Problem Description Give you three sequences of numbers A, B, C, then we give you a number X. Now yo ...
- WIN2003 IIS相关错误解决方案
我碰到的主要问题是:“Server Application Unavailable 错误”.“无法显示网页”: 1.如果你的.NET版本是2.0及以上的话,那要注意了:win2003是默认安装1.1的 ...
- Azure ARMTemplate模板,VM扩展命令
Azure ARM模板中,给虚拟机安装扩展脚本的命令 "resources": [ { "apiVersion": "[variables('apiV ...
- sc服务查询
sc query lanmanse2rver |find /i "state" |find /i "running" || ( echo 该服务没有运行时,要执 ...
- UVA 10288 Coupons 彩票 (数学期望)
题意:一种刮刮卡一共有n种图案,每张可刮出一个图案,收集n种就有奖,问平均情况下买多少张才能中奖?用最简的分数形式表示答案.n<=33. 思路:这题实在好人,n<=33.用longlong ...
- Windows Server 启用匿名共享
1.开始 → 运行 → gpedit.msc,打开组策略编辑器: 2.依次展开"计算机配置" → "windows设置" → "安全设置" ...
- vs2010 在函数级别设置优化
平时开发的时候,为了方便调试,visual studio 的Configuration 设置成Release. 同时为了事后调试,Optimization总是设置成Disabled.这样做是方便查看变 ...
- 职业生涯手记——记人生中第一次经历的产品上线——内测篇Day11
2017/08/21 产品内测期Day11 说出来可能你不信,原定于9月15号结束的内测活动,今天居然被甲方投诉导致强制停止,原因是这个内测活动没有经过批准,并且有用户打了甲方所在公司的客服部门,增加 ...
- How To Build Kubernetes Platform (构建Kubernetes平台方案参考)
Architecture Architecture Diagram Non-Prod Environment Prod Environment Cluster Networking Container ...
- Asp.Net Core 入门(四)—— Model、View、Controller
和我们学习Asp.Net MVC一样,Asp.Net Core MVC的Model.View.Controller也和我们熟悉的Asp.Net MVC中的相似.不同的是我们在使用Asp.Net Cor ...