
У меня установлен Tomcat, и я хочу получить к нему доступ через интернет. Я могу получить к нему доступ локально через localhost:8080/appname
, но не из интернета через
http://externalip:8080/appname
.
Я настроил свой маршрутизатор D-LINK DIR-524 на сквозной порт 8080, как показано ниже. Я также отключил брандмауэр Windows и антивирус, но проблема осталась прежней.
Есть идеи?
решение1
Некоторые маршрутизаторы запрещают петлевые соединения в качестве функции безопасности. Большинство маршрутизаторов потребительского класса не имеют никаких запретов на это, это просто не работает.
Причина, по которой это не работает, заключается в том, что маршрутизатор реализует алгоритмы запрос-ответ, поэтому не запрограммирован на обработку случая, когда ответом на самом деле является другой запрос. Другими словами, маршрутизатор реализует алгоритм запрос-ответ, а не запрос-запрос-ответ-ответ.
Я предлагаю попробовать сделать это вне вашей сети, чтобы увидеть, получаете ли вы те же результаты.
решение2
Откройте tomcat/conf/server.xml и найдите свой Connector. Должно быть что-то похожее на это
<Connector
port="8080"
protocol="HTTP/1.1"
address="127.0.0.1"
connectionTimeout="20000"
/>
Попробуйте изменить адрес на свой внешний IP-адрес, а затем перезапустите Tomcat-Service.