问题#1-VM网络类型
共有三种联网模式:
- NAT
- 仅主机
- 桥接的
设置细节
什么时候使用每个?
- #1:用于开发其他服务器上的Facebook / Web应用程序
- #2:如果要构建自己的应用程序,并从VirtualBox主机(而不仅仅是访客VM)进行测试
- #3:如果您要构建应用程序并从LAN上的其他系统进行测试
问题2-防火墙阻止?
根据您使用的发行版,防火墙可能会阻止Web浏览器访问Apache实例。鉴于您能够ping系统,但无法通过端口80(Apache正在监听的端口)访问它,这将很有意义。
暂时禁用它
在CentOS上,您可以使用此命令将其禁用。
$ /etc/init.d/iptables stop
检查Apache的监听
您还可以确认它正在此端口上侦听。
$ netstat -antp | grep :80 | head -1 | column -t
tcp 0 0 :::80 :::* LISTEN 3790/httpd
确认防火墙关闭
可以确认防火墙是完全开放的。
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
如果这解决了您的问题,则可以永久添加一条规则,该规则允许通过TCP端口80进行通信。
为TCP端口80添加规则
$ /etc/init.d/iptables restart
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ /etc/init.d/iptables save
注意:这将使规则在重新引导之间持续存在。
防火墙正在接受TCP端口80
打开端口80的系统如下所示:
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8834
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
问题#3-Apache监听?
在以上问题中,我们看到Apache正在侦听,但有时配置错误,因此它仅侦听1个IP地址,或者侦听其他网络接口。该命令netstat
可用于仔细检查以及查看Apache配置文件。
$ netstat -anpt | grep :80 | column -t
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1750/httpd
这表明Apache正在所有接口(IP 0.0.0.0)上侦听。
我不会在这里重复@ Lekensteyn的答案,该答案涵盖了此特定问题。
参考文献
:::80
,则Apache仅在侦听IPv6连接。您是否尝试过检查Listen
指令?