
Я установилApache Tomcat-7.0.32наLinux Мандриваи я хочу сделать его доступным. для этого мне нужно открыть порты вiptables.
Я добавил следующие правила:
iptables -A INPUT -p tcp -m tcp --dport 8081 --syn -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8010 --syn -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8444 --syn -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 8006 --syn -j ACCEPT
затем сохраните и перезапустите iptables -
/etc/init.d/iptables save
/etc/init.d/iptables restart
проверьте, что порты открыты -
netstat -tulpn | less
Я выполняю команду -
netstat-ntpl | grep java
и посмотреть -
Когда я отключаю брандмауэр, я вижу стартовую страницу сервера по запросу -
http://server_ip:8081/
При включении - сервер недоступен извне.
В чем может быть причина? Буду очень благодарен за информацию!
Спасибо!
решение1
Эта проблема не связана с конфигурацией Tomcat. Убедитесь, что вы добавляете правила accept iptables перед правилами reject
решение2
Порты, используемые tomcat, должны быть в конфигурации tomcat. Однако, в случае сомнений, вы можете использовать утилиту lsof, чтобы узнать подробности о том, какие программы используют какие порты TCP или UDP, а также локальные сокеты.
lsof -Pni
lsof -Uni
Чтобы узнать, что именно происходит, какие программы пытаются получить доступ к каким портам и/или блокируются брандмауэром, вы также можете воспользоваться утилитой tcpdump.
tcpdump -i eth0
Вы можете выполнить grep вывода этих программ или использовать переключатели для фильтрации того, какая информация должна отображаться. Возможно, вы делаете ошибку, добавляя правила брандмауэра в конце конфигурации, в то время как конфигурация iptables (обработка пакетов брандмауэра) идет сверху/в начале - поэтому, когда вы добавляете ACCEPT, вероятно, имеет смысл добавить его в начале файла конфигурации iptables, а не в конце.
Этот вопрос, вероятно, следует перенести на superuser.com