无法连接到 Centos 6.3 上的 Ruby on Rails 开发服务器

无法连接到 Centos 6.3 上的 Ruby on Rails 开发服务器

我无法连接到我的 Ruby on Rails 开发服务器:

当我在另一个网络浏览器中输入 192.168.0.10:3000 时,连接超时。

我怀疑问题出在我的防火墙配置上,但我尝试打开所有内容,但似乎不起作用。

该服务器位于我的本地网络上,具有静态 IP 且配置正确 - 我可以通过 SSH 进入该框,它可以连接到互联网进行更新。它运行的是 CentOS 6.3,我按照以下说明安装了 rails:http://itekblog.com/ruby-on-rails-on-centos-6-3-is-easy/

服务器正在运行:我可以使用 wget localhost:3000 下载“欢迎登机”页面

我认为它应该监听所有接口:

[sandy@pops testproject4]$ rails server
=> Booting WEBrick
=> Rails 3.2.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-08-18 18:29:04] INFO  WEBrick 1.3.1
[2012-08-18 18:29:04] INFO  ruby 1.8.7 (2011-06-30) [i386-linux]
[2012-08-18 18:29:04] INFO  WEBrick::HTTPServer#start: pid=9881 port=3000

我认为我已经打开了所有端口

[sandy@pops testproject4]$ sudo 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     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
ACCEPT     all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

任何帮助解决这个问题都会非常感激

答案1

看起来问题是由于您在添加 open all 行时iptables -A INPUT ...将其添加到了 REJECT all 规则之后的 INPUT 链末尾而引起的。

由于 iptables 在第一次匹配时就起作用,因此您的所有接受规则永远不会匹配,因此端口 3000 被阻止。

您应该使用iptables -I...将规则插入到链中的特定位置或开头,例如

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

应该做你想做的事。

如果您希望保存规则,以便重启后一切正常,请执行以下操作:

service iptables save

相关内容