Позвольте мне сразу сказать, что я новичок в Linux и сетях, поэтому говорите медленно и используйте сложные слова.
У нас есть машина Red Hat с запущенным GNOME 2.16. Мы пытаемся запустить там веб-приложение. Из среды разработки Windows мы можем пинговать RH, но не можем подключиться к веб-контейнеру через telnet
Ошибка:
Подключение к нашему.ip.адресу.## ...Не удалось открыть соединение с хостом на порту 80##: Подключение не удалось
Что я проверил:
iptables не работает
Браузер на RH-боксе может видеть веб-приложение по адресу 127.0.0.1:80##
Веб-приложение по умолчанию включает IP-адрес 0.0.0.0, что должно сделать его общедоступным (верно?)
Маски одинаковые на обеих коробках.
Сервер RH также может пинговать сервер Subversion, но не может выполнять проверки.
Все, что я могу думать, это то, что между окнами и RH-боксом есть какой-то брандмауэр, но я не знаю, как это проверить. Я хотел убедиться, что попробовал все, что мог, прежде чем постучать в дверь IT.
Есть ли еще какие-то настройки или команды Linux, которые мне следует проверить?
Каков ваш диагноз?
решение1
Похоже, вы уже рассмотрели все, что можно сделать со стороны ОС. Теперь пора идти в ИТ-отдел и узнавать, что они скажут.
решение2
Я знаю, что этому вопросу уже около года, но я только что столкнулся с той же проблемой и хотел поделиться.
Оказывается, мой основной интерфейс (eth0) НЕ подключался автоматически при загрузке системы. Когда запускается tomcat, он привязывается ко всем известным интерфейсам, поэтому он никогда не привязывался к моему внешнему IP-адресу, только к 127.0.0.1. Позже, когда я запустил интерфейс и получил IP-адрес от DHCP-сервера, tomcat уже был запущен и не знал о новом IP.
Решение? Остановите tomcat, убедитесь, что все ваши интерфейсы подключены с допустимыми IP-адресами, а затем перезапустите tomcat.
решение3
запустите tcpdump, чтобы проверить, доходят ли пакеты до вашего сервера:
tcpdump -s 0 -X host x.x.x.x
Где xxxx — это IP-адрес вашего тестового компьютера Windows, который, как вы сказали, может пинговаться.
С этой машины Windows сначала выполните ping на сервер Linux и убедитесь, что вы видите эти пакеты ICMP в выводе tcpdump. Это подтверждает, что вы слушаете правильный интерфейс. Затем попробуйте попасть на порт 80XX.
Если вы не видите пакеты 80XX, скорее всего, что-то вне сервера блокирует соединения (внешний брандмауэр и т. д.).
Если вы видите пакеты, на вашем сервере необходимо что-то настроить.
Это не решение, но помогает сузить круг проблем.
решение4
На компьютере Red Hat выполните:
нк -л -п 80##
Затем на компьютере (или любом другом компьютере), к которому вы пытаетесь подключиться, выполните:
nc ваш.fancy.ip.адрес 80##
Затем попробуйте что-нибудь напечатать и нажать Enter. Это должно появиться на поле Red Hat.
Подробнее о netcat см.http://netcat.sourceforge.net/.
Это проверит наличие брандмауэров. Если это сработает, то ваш сервер приложений настроен неправильно.
Удачи.