san*_*ott 5 iptables centos ruby-on-rails centos6 ruby-on-rails-3
我在连接到我的 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 下载“Welcome Aboard”页面
我认为它应该监听所有接口:
[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
Run Code Online (Sandbox Code Playgroud)
我想我已经打开了所有端口
[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
Run Code Online (Sandbox Code Playgroud)
任何帮助解决这个问题将不胜感激
沙
看起来这个问题是因为当你添加你使用的 open all 行时iptables -A INPUT ...,它在 REJECT all 规则之后尽职尽责地将它添加到 INPUT 链的末尾。
由于 iptables 在第一场比赛中获胜,因此您的接受所有规则永远不会匹配,因此端口 3000 被阻止。
您应该使用iptables -I...将规则插入链中的特定位置或开头,例如
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
应该做你想做的。
如果您想保存规则以便在重新启动后一切正常,请执行以下操作:
service iptables save
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7154 次 |
| 最近记录: |