Я разместил этот вопрос на stackoverflow и рекомендовалось задать здесь.
Я боролся с этой проблемой в течение последних двух дней и надеюсь, что кто-то здесь может мне помочь. У меня есть виртуальная машина под управлением сервера Ubuntu 14.04, на которой установлен tomcat7 (через apt-get). Я хочу, чтобы он был доступен для компьютеров вне моей локальной сети через мой публичный IP-адрес, но в настоящее время я не могу подключиться к нему таким образом. Однако я могу подключиться к нему в своей локальной сети через 192.168.1.120. Мой маршрутизатор (Western Digital My Net N600) настроен на пересылку запросов через порт 8080 на виртуальную машину, содержащую tomcat7.
На моей виртуальной машине я настроил iptables следующим образом:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http-alt
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Сам Tomcat работает нормально, я могу подключиться и посмотреть "Это работает!"msgstr "когда я получаю к нему доступ от 192.168.1.120:8080. После поиска в Google я подумал, что это может быть связано с запуском tomcat7 с использованием IPv6, поэтому я настроил его на использование IPv4 на основе ответов здесь, но все еще не мог подключиться.
У меня есть другой сервис (сервер Minecraft), размещенный на другой виртуальной машине с точно такими же настройками маршрутизатора /iptable (за исключением другого номера порта), который работает. Я просто не уверен, почему кот не работает.
Я пробовал другие порты, кроме 8080, на случай, если это было что-то с этим конкретным номером порта, но я все еще ничего не получаю. Я также запустил tcpdump для порта 8080 и могу видеть трафик, когда к нему обращаются через 192.168.1.120, но нет трафика, когда к нему обращаются через мой публичный ip. На данный момент я думаю, что я либо упустил что-то довольно простое, либо в tomcat есть какие-то настройки, которые мне нужно исправить / изменить, но я понятия не имею.