stream浪的端口转发不起作用

在入门指南的末尾,我遇到了一个小问题。 我正在运行一个运行Apache2的CentOS basebox(通过Puppet进行configuration)。 我已经使用Vagrantfile的以下行设置了Web请求的端口转发:

  config.vm.forward_port "web", 80, 4567 

但是当我向那个港口提出要求时,他们就失败了。 Safari报告的错误是“Safari无法打开页面” http:// localhost:4567 / “,因为服务器意外地丢弃了连接。

我做了一个vagrant reload并看到“[默认] – networking:80 => 4567(适配器1)”在滚动,所以我应该在哪里开始排除故障? 谢谢。

我会做这个实际的答案,而不是更多的意见。

首先:在虚拟机中尝试curl 'http://localhost:80' 。 如果这不起作用,那绝对不是端口转发。

下一步:尝试从主机上curl -v 'http://localhost:4567/' 。 curl可能会给你一个比Safari更好的错误信息。

我会检查是否没有防火墙设置限制对端口80的访问。默认的Vagrant VM(Ubuntu)没有设置防火墙,但是你说你正在使用其他的东西,所以这可能是值得的去检查。

如果不是这样的话,可以尝试在端口80上列出Apache以外的其他东西。Python附带一个简单的HTTP服务器,你可以使用 – 到index.html文件夹下运行sudo python -m SimpleHTTPServer 80 ,然后用从两个盒子curl。 如果可行,那么这可能是一个Apacheconfiguration问题。 如果是这种情况,我没有足够的经验来帮助Apache(我使用nginx)。

我想添加一个附加说明,通常这是由VM中的服务器引起的,因为它绑定到127.0.0.1 ,这是回送。 您需要确保服务器绑定到0.0.0.0以便所有接口都可以访问它。

一些内置的应用程序服务器(如Django的开发服务器和一些Ruby服务器)默认默认为127.0.0.1 ,所以这是值得注意的。

除此之外,史蒂夫说的是真实的:确保它在虚拟机内部工作,并尝试其他一些简单的服务器,试图找出是否是configuration问题。

我在CentOS 6.3 w / NGINX上遇到了同样的问题,并且发现答案在stream浪盒子的iptables上。

从stream浪者箱子上的狂欢,请按照下列步骤操作:

首先列出当前的iptable规则

 iptables -L -v 

然后刷新当前规则:

 iptables -F 

在TCP端口22上允许SSH连接

 iptables -A INPUT -p tcp --dport 22 -j ACCEPT 

为INPUT,FORWARD和OUTPUT链设置默认策略

 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT 

设置本地主机的访问权限

 iptables -A INPUT -i lo -j ACCEPT 

接受属于已build立和相关连接的数据包

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

保存设置

 /sbin/service iptables save 

列出修改的规则

 iptables -L -v 

curl本地主机:[端口#]或从外部stream浪者在您的浏览器中打

有关CentOS iptableconfiguration的更多信息,请点击这里:

http://wiki.centos.org/HowTos/Network/IPTables

祝你好运。

对我来说更好的解决scheme是禁用防火墙

 service iptables stop chkconfig iptables off 

我还想添加另一个像Mitchell的笔记。 如果我的情况,我从80转发到6789

 $ curl -v http://localhost:6789 

我得到了

 <HTML> <HEAD><TITLE>Redirection</TITLE></HEAD> <BODY><H1>Redirect</H1></BODY> 

然后,我使用了IP地址,它得到了正确的html消息。