无法在CentOS Virtualbox中访问Apache

我正在用CentOS设置一个VirtualBox,这样我就可以在Linux机器上testing所有的代码,而不是用于开发的Windows。

我只是得到了SSH工作(我SSH到本地主机:2222,它的端口转发到虚拟机端口22)。

它使用NAT,因为由于某种原因,它拒绝以桥接适配器开始。

我正在尝试与Apache做同样的事情,以使Web服务器正常运行。

我已经将本地端口8888端口转发到我的CentOS Virtualbox的端口80,但我似乎无法访问我的浏览器中的localhost:8888任何东西?

Apache也正在运行:

 ps -e |  grep httpd
 2108?  00:00:00 httpd
 2110?  00:00:00 httpd
 2111?  00:00:00 httpd
 2112?  00:00:00 httpd
 2113?  00:00:00 httpd
 2114?  00:00:00 httpd
 2115?  00:00:00 httpd
 2116?  00:00:00 httpd
 2117?  00:00:00 httpd

iptables的:

 #由iptables-save v1.4.7生成2012年1月27日星期五18:26:36
 *过滤
 :input接受[0:0]
 :FORWARD ACCEPT [0:0]
 :OUTPUT ACCEPT [32:2278]
 -Ainput-m状态 - 状态RELATED,ESTABLISHED -j接受
 -Ainput-p icmp -j ACCEPT
 -Ainput-i lo -j接受
 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
 -INPUT -J REJECT --reject-with icmp-host-prohibited
 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
 -I INPUT -p tcp --dport 80 -m状态--state新build,ESTABLISHED -j接受
 -I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
 -I INPUT -p tcp --dport 443 -m状态 - 状态NEW,ESTABLISHED -j ACCEPT
 -I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
承诺
 #2012年1月27日星期五18:26:36完成

我也停止了iptables,所以这不是干涉。 我尝试从我的CentOS虚拟机telnet到端口80,看它是否工作,127.0.0.1或[vm ip]都不能用于telnet到端口80.它connecting to [ip] ,然后说connection closed by foreign host 。 对于我的httpd.conf中的listen行,它说listen 0.0.0.0:80

netstat -tlnp |的输出 grep http

 netstat -tlnp |  grep http
 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2032 / httpd
 tcp 0 0 ::: 443 ::: * LISTEN 2032 / httpd

当我nmap本地主机 ,我得到

 [root @ CentOS conf]#nmap localhost

从Nmap 5.21开始(http://nmap.org)于2012-01-28 00:58 WST
本地主机的Nmap扫描报告(127.0.0.1)
主机已启动(延迟0.0000090s)。
主机名localhostparsing为3个IP。 只扫描127.0.0.1
未显示:993个closures的端口
港口国服务
 22 / tcp打开ssh
 23 / tcp打开telnet
 25 / tcp打开smtp
 80 / tcp打开http
 111 / tcp打开rpcbind
 443 / tcp打开https
 631 / tcp打开ipp

你有复制粘贴iptables规则? 如果是的话,那么就有一个错误:

  _I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 

连字符的下划线。

首先,您必须确保apache正在侦听以太网接口(来自VM的接口)或所有地址。 对于这个运行:

 sudo netstat -tlnp|grep http 

如果它没有监听外部接口(而不是回送一个),那么你必须在apacheconfiguration中更改Listen指令并重新启动apache(不重新加载)。

在virtualbox中,尝试将networking设置更改为Bridge Adapter而不是NAT,然后select要使用的适当接口(有线或无线)。 启动CentOS,然后重新检查您的以太网地址(运行ifconfig)。

从那里检查你现在是否可以使用新的以太网地址访问Apache。

关于ssh的centos,你必须确保编辑sshd_config并取消注释如下:

 Port 22 PermitRootLogin No 

另外创build另一个用户,然后在sshd_config中添加该用户:

 AllowUsers username