Não é possível conectar-se ao servidor de desenvolvimento Ruby on Rails no Centos 6.3

5

Estou com problemas para me conectar ao servidor de desenvolvimento do Ruby on Rails:

Quando eu digito 192.168.0.10:3000 em um navegador da Web em um diferente, a conexão acaba.

Suspeito que o problema esteja na minha configuração de firewall, mas tentei abrir tudo e parece que não funciona.

O servidor está na minha rede local, com um IP estático e está configurado corretamente - posso conectar o SSH à caixa e conectar-se à Internet para atualizações. Ele está rodando o CentOS 6.3, e eu instalei o rails seguindo estas instruções: link

O servidor está em execução: posso fazer o download da página "Bem-vindo a bordo" com o wget localhost: 3000

Eu acho que deveria estar escutando em todas as interfaces:

[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

e acho que abri todas as portas

[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    

Qualquer ajuda para consertar isso seria muito apreciada

Sandy

    
por sandyscott 18.08.2012 / 18:46

1 resposta

7

Parece que o problema foi causado porque, quando você adicionou a linha aberta, usou iptables -A INPUT ... , que a adicionou ao final da cadeia de entrada logo após a regra REJECT all.

Como o iptables funciona na primeira partida, vence sua regra de aceitar que todas as regras nunca são correspondidas, então a porta 3000 está bloqueada.

Você deve usar iptables -I... para inserir regras em um lugar específico na cadeia ou no começo, então algo como

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

deve fazer o que quiser.

Se você quiser que as regras sejam salvas, então, após a reinicialização, tudo ficará bem, faça:

service iptables save
    
por 18.08.2012 / 19:33