VMware NAT端口映射外网访问虚拟机linux
本文目的:
一. SSH连接
二. 访问HTTP
VMware Workstation提供了两种虚拟机上网方式,一种bridge,一种NAT,bridge可以获得公网地址,而NAT只能是内网地址了。
NAT相当于把主机当成了一个NAT转换器,我们可以添加端口映射,使得外网可以访问利用NAT上网的虚拟机。
主机环境: Win7
公网IP: 128.206.82.47
虚拟机版本: VMware Workstation 10
虚拟机系统: CentOS 6.5
虚拟机IP: 192.168.111.129
当前情况: 本机安装虚拟机系统后, 通过虚拟机IP可以在本地win7使用SSH连接, 但是外网不能通过SSH连接虚拟机。
一. SSH连接
1.首先关掉防火墙
/etc/init.d/iptables stop
打开VMware Network Editor,找到这个虚拟机使用的网卡。 选择Type类型为NAT方式的网卡(VMnet8)
2.点击NAT setting...
3.点击Add (你可以看到我已经添加好了的端口)
Host port: 你打算用本地win7 的哪一个端口作监听端口
Virtual machine IP address : 你的linux 的IP未多少,你就填多少
Virtual machine port: 你打算用监听端口映射到虚拟机linux哪个端口, 22未SSH端口, 80未HTTP端口
4.关闭本地Win7防火墙
由于咱们之前关闭了虚拟机linux的防火墙, 但是没有关闭本机Win7对应的监听端口防火墙,所以也得设置一下Win7的防火墙。
如果 Windows 防火墙阻止某一程序,而您希望允许该程序通过防火墙进行通信,通常可以通过在 Windows 防火墙允许的程序列表(也称为“例外列表”)中选中该程序来实现。若要了解如何进行此操作。
但是,如果没有列出该程序,则可能需要打开一个端口。例如,当您与朋友联机进行多人游戏时,可能需要为该游戏打开一个端口,这样防火墙才能允许游戏信息到达您的计算机。端口始终保持打开状态,因此请确保关闭不需要打开的端口。
-
通过单击「开始」按钮 ,然后单击“控制面板”,打开“Windows 防火墙”。 在搜索框中,键入防火墙,然后单击“Windows 防火墙”。
-
在左窗格中,单击“高级设置”。 如果系统提示您输入管理员密码或进行确认,请键入该密码或提供确认。
-
在“高级安全 Windows 防火墙”对话框的左窗格中,单击“入站规则”,然后在右窗格中,单击“新建规则”。
-
按照新建入站规则向导中的说明进行操作。
5.连接测试
因为咱们是通过映射的方式从外网连接到虚拟机的linux,
所以host name 就是本机Win7的IP地址, Port 为 Win7 刚刚设置的监听端口 5022, User name 就是你自己的Linux 用户名。
然后就大功告成了。
二.连接HTTP
1. 安装HTTP
yum install httpd
启动HTTP服务
/etc/init.d/httpd start
做完这步在虚拟机Linux上打开浏览器 输入127.0.0.1 或者 本地Win7 输入 虚拟机Linux IP地址 192.168.111.129
就可以看到HTTP的效果, 但是外网不可以访问网页,因为要设置端口映射。
2. 设置端口映射
不多说了, 看上面SSH连接的1、2、3、4 步方法来设置端口映射就好, 只要报映射端口改为80就行, 注意别把监听端口搞冲突了。
3.访问测试
远程机器上使用本地Win7 IP地址访问, 再加上监听端口, 格式为 http://Win7 IP:Port
Win7 IP: 128.206.82.47
Port: 5080
所以我的测试时是 http://128.206.82.47:5080/
我所遇到的问题:
1. 设置监听端口是不知道为什么我设置成10022或10080虚拟机Linux就马上不能上网。
2. 之前没有关闭本地Win7的防火墙, 所以一直连接不上SSH
一些建议:
1. 在设置外网连接虚拟机Linux之前, 请确定外网能ping同本地Win7的IP。(可以当废话)
2. 不确定下次重启后虚拟机Linux IP会不会动态变化, 为虚拟机Linux设置个静态IP就好。