Не удается подключиться к Ruby on Rails Development Server в 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/

Сервер работает: я могу загрузить страницу "Welcome Aboard" с помощью 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 ответ

Решение

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

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

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

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

должен делать то, что вы хотите.

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

service iptables save
Другие вопросы по тегам