宿主机访问虚拟机问题:
虚拟机可以 ping 通宿主 ip,也可以访问外网,但是 宿主机通过 虚拟机 ip + 端口号访问不了虚拟机上提供的服务:
针对 linux 系统不允许访问 80端口 解决方法:
虚拟机终端执行如下命令:
iptables -F
# 设置默认允许规则
iptables -P INPUT ACCEPT
linux 系统防火墙不允许访问 80 端口的解决办法:
在 /etc/sysconfig/iptables 添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
局域网其他主机访问虚拟机问题:
虚拟机 为了访问外网, 使用 NAT 模式 和 虚拟机 占用局域网内的同一个IP 地址(至于如何配置网上教程遍地都是),NAT 模式只是仅仅只是让你的虚拟机在你的机器上,通过你的网卡转发,才能访问网络。也就是说,你的网卡知道它,但是局域网内其他机子却不能直接看到它。对局域网机器来说,他们看到的只是你这台宿主机的ip、以及端口 。
为了让局域网内的其他机器访问你的 使用 NAT 方式联网的 虚拟机。可以通过宿主机 ip + 端口来访问; 我们只要在虚拟机里配置端口转发就可以;
如:
宿主机 ip : 10.10.133.236
虚拟机 ip :192.168.79.128,
虚拟机上的web服务占用端口 8070
那么对于局域网内的其他主机来说,192.168.79.128 这个ip 毫无意义,局域网只能识别宿主机的 ip ;故通过端口转发配置,让局域网其他机器可以访问虚拟机上的 web 服务;
配置步骤如下: 虚拟机[编辑] => [虚拟网络编辑器] => 选中 [VMnet8 NAT 模式] => [NAT 设置] => 端口转发下 点击 [添加] 配置用主机上的哪个端口映射虚拟机上的服务 的端口 =>一路点击[确定]配置就生效了=>此时我们就可以通过局域网的其他主机访问宿主机上虚拟机提供的服务了;
端口转发配置图片如: