У меня проблемы с подключением к моему серверу разработки 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