Назад | Перейти на главную страницу

Не удается подключиться к серверу разработки Ruby on Rails на Centos 6.3

У меня проблемы с подключением к моему серверу разработки Ruby on Rails:

Когда я набираю 192.168.0.10:3000 в другом браузере, соединение просто прерывается.

Я подозреваю, что проблема в конфигурации моего брандмауэра, но я попытался открыть все, но, похоже, это не сработало.

Сервер находится в моей локальной сети, со статическим IP-адресом и правильно настроен - я могу подключиться к серверу по SSH, и он может подключаться к Интернету для получения обновлений. Он работает под управлением CentOS 6.3, и я установил рельсы, следуя этим инструкциям: 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    

Любая помощь в исправлении этого будет очень оценена

Сэнди

Похоже, проблема вызвана тем, что, когда вы добавили свою открытую всю строку, которую вы использовали iptables -A INPUT ... который послушно добавил его в конец цепочки INPUT сразу после правила REJECT all.

Поскольку iptables работает при первом совпадении, ваше правило accept all никогда не выполняется, поэтому порт 3000 заблокирован.

Вы должны использовать iptables -I... чтобы вставить правила в определенное место в цепочке или в начало, например,

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

должен делать то, что хочешь.

Если вы хотите сохранить правила, чтобы после перезагрузки все было в порядке, выполните:

service iptables save