1

Я использую веб-сервер уже более года, и он внезапно стал недоступным для всех, кто находится за пределами моей домашней сети. Внутри моей сети все работает как всегда. Я могу обновить DNS и получить доступ к нему через обычный адрес, DNS указывает на правильный IP. Люди за пределами моей сети даже не могут получить к ней доступ через IP-адрес.

Это приложение JEE, работающее на Tomcat 6, порт 80 (Windows 7).

Я не знаю точно, когда началась проблема, потому что все выглядит хорошо внутри моей сети.

Недавние изменения:

  • Установлен WampServer (для не связанных Joomla! материал).

Что я пробовал:

  • Rebooting;
  • Изменение порта Tomcat на 8080;
  • Отключение брандмауэра Windows;
  • Проверка правил переадресации портов на странице роутера;
  • Запуск его на другой машине (Ubuntu) в той же сети. В Ubuntu я использовал порт 8080, и проблема была точно такой же;
  • Используя свежую копию Tomcat 6;
  • Разные браузеры.

И теперь у меня кончились идеи.

5 ответов5

7

Если вы находитесь в домашней сети, скорее всего, это является нарушением условий обслуживания вашего интернет-провайдера. Возможно, через год они наконец поняли, что вы это делаете, и заблокировали порт?

2

Вдобавок ко всему, я подозреваю, что ваш провайдер начал фильтровать входящий трафик. Поскольку это ваша домашняя сеть, вы, вероятно, нарушаете условия использования сайта.

Возможно, они начали использовать некоторые NAT, потому что они не хотят получать дополнительные IP-адреса.

Поскольку это ваша домашняя сеть, почему бы просто не подключить компьютер с Wireshark напрямую к модему и попросить кого-нибудь предпринять входящее соединение. Если вы не видите попытки подключения, ваш провайдер изменил что-то, чтобы заблокировать входящий трафик. Вам придется поработать с ними или найти альтернативного интернет-провайдера.

0

Еще один шаг - попытаться подключиться к серверу через этот порт с удаленного компьютера, чтобы узнать, проходит ли он или нет.

Например, из-за пределов вашей сети, запустите

telnet (ip address) 80 

просто посмотреть, сможете ли вы вообще добраться до веб-сервера. Затем попробуйте ту же команду на других пересылаемых портах. Это может дать вам представление о том, заблокирован ли ваш интернет-провайдер или нет.

0

Многие провайдеры теперь добавили блокирующие порты

  • 25 (стандартный порт SMTP / сервера электронной почты)
  • 80 (стандартный порт веб-сервера)

(и другие разные ...)

причина в том, что 99% домашних (некоммерческих) людей не нуждаются в настройке почтового сервера дома ИЛИ веб-сервере ... в то время как ряд злых троянов / вирусов фактически заканчивают тем, что используют эти порты для выполнения своих гнусная деятельность. Еще более важным является то, что в старые времена на некоторых домашних компьютерах одна или обе службы фактически устанавливались и активировались по умолчанию ... так что это стало легкой точкой вторжения для хакеров, использующих преимущества или ошибки в этих службах ... в то время как их владелец понятия не имел, что эти службы работают на их собственных компьютерах (что означает, что это не требуется ... но все же представляет угрозу безопасности).

Поэтому вам необходимо войти в свою учетную запись провайдера через главную веб-страницу провайдера и проверить, есть ли возможность разблокировать все / различные порты. Как правило, если интернет-провайдер блокирует порты, он дает пользователю возможность разблокировать эти порты ... но вам, как правило, нужно выбрать, чтобы разблокировать <- их перспектива лучше, чем потом сожалеть.

0

Вы могли бы сделать больше отладки. Вы не упомянули свою топологию сети - ваш компьютер с Windows 7, на котором запущен tomcat 6, за каким-то NAT? Вы упомянули несколько машин (окно Ubuntu), так что я бы предположил, что это так, если только у вас нет какого-то экзотического сценария, когда каждая отдельная машина имеет маршрутизируемый публичный IP-адрес (я видел, что некоторые поставщики aDSL делают это несколько раз здесь, для некоторая причина).

Первое, что я хотел бы проверить, если у вас есть NAT-маршрутизатор, будет ли IP-адрес вашего локального компьютера статическим, и если есть соответствующая запись переадресации порта для порта 80/8080 (вы упомянули, что пробовали оба), отправляющего весь трафик в соответствующий порт вашей локальной машины.

Во-вторых, я бы проверил netstat чтобы убедиться, что tomcat действительно прослушивает правильный локальный IP-адрес и порт на вашем локальном компьютере или 0.0.0.0 (inaddr_any), а не какой-то дополнительный вторичный IP-адрес, который у вас может быть, или только localhost (127.0.0.1). Соответствующие варианты будут:

netstat -abn

Который, если все в порядке, вернет вывод, содержащий что-то вроде:

TCP    [::]:80                [::]:0                 LISTENING
[java.exe]

Я видел этот сценарий несколько раз (хотя только в Linux, я почти никогда не запускал J2EE на своем рабочем столе Windows), где tomcat связывал бы свой сокет только с адресом ipv6 компьютера (ipv6 обычно включен по умолчанию в Windows 7 и большинстве современные операционные системы), а не ipv4.

Когда настроено прослушивать inaddr_any, это приводило к большой боли. В этом случае просто добавьте: -Djava.net.preferIPv4Stack=true к параметрам JVM в файлах конфигурации tomcat. Это могло появиться после обновления Java, но маловероятно, что tomcat6 обычно запускает полный JDK при правильной настройке. Это также маловероятно, так как я полагаю, что описанный выше сценарий Linux проистекает из "ошибки" glibc (или, скорее, неясного поведения), особенности которой меня избегают в данный момент - но это все же стоит проверить, просто чтобы убедиться.

Если ваш провайдер действительно отфильтровал порты 80 и 8080, я бы попробовал какой-нибудь случайный порт с высокой пропускной способностью, такой как 6508, просто чтобы посмотреть, работает ли он лучше. Во что бы то ни стало обновите свою конфигурацию переадресации порта (если применимо), чтобы отразить это.

Если вы не предоставите более подробную информацию о вашей настройке, я сомневаюсь, что мы сможем вам помочь, к сожалению :(

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .