Не удается подключиться к 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