Как получить доступ к сервлету Java, запущенному на моем компьютере, снаружи? - PullRequest
3 голосов
/ 29 марта 2010

Я использовал Netbeans6.7 для написания сервлета, при запуске он открывает окно браузера с этим адресом: http://localhost:8080/My_App/Test_Servlet, Я заменил «localhost» своим IP-адресом, теперь он выглядит так: http://192. ???. 1.??:8080/My_App/Test_Servlet, но я попытался получить к нему доступ с другого компьютера за пределами моего дома, он ничего не может прочитать, интересно, нужно ли мне изменить Настройка брандмауэра Windows для пропуска внешнего трафика, это приложение Paypal IPN, поэтому я позвонил в Paypal, и они сказали, что у них нет доступа: http://192. ???. 1.??:8080/My_App/Test_Servlet

Что мне делать, чтобы трафик с "paypal.com" получал доступ к "My_App / Test_Servlet"?


Частичный успех! После прочтения статей, настройки статического IP-адреса и перенаправления портов я могу отправить одно сообщение с тестовой страницы IPN Paypal, когда я попытался отправить вторую, но не смог пройти через нее, поэтому я перестал запускать свой сервлет, затем я смог отправить еще один, сообщение, снова не удалось на 2-й, почему? Frank

Ответы [ 3 ]

5 голосов
/ 29 марта 2010

Я не мог решить, стоит ли голосовать за это на serverfault.com или superuser.com, так что, черт возьми, я отвечаю здесь:

IP-адрес, который вы указали, выглядит как локальный адрес (например, 192.168.x.x - это один из локальных диапазонов), поэтому этот адрес никогда не будет доступен за пределами вашей сети. Это адрес, который назначил вам ваш маршрутизатор (или модем).

Чтобы разрешить вызов из внешнего мира на ваш ПК:

  • Ваш компьютер должен быть включен в любое время, когда вы ожидаете один из вызовов (и если это IPN PayPal, это почти всегда)
  • Вы должны иметь статический IP-адрес для подключения к Интернету или использовать динамический DNS сервис
  • Вы должны указать PayPal статический IP-адрес вашего интернет-соединения (не внутреннего ПК) или DNS-имя, которое вы установили с помощью динамической службы
  • Вам необходимо настроить маршрутизатор для пересылки запросов на ваш статический общедоступный адрес на ваш компьютер (поскольку ваш маршрутизатор, вероятно, поддерживает несколько компьютеров и должен знать, какой именно из них должен обрабатывать запрос)
  • Если вы используете программный брандмауэр, такой как брандмауэр Windows, вам придется сообщить ему, что он может принимать запросы на этот порт.

Не позволяйте этому показаться пугающим. Это нетривиально, но не сложно. Однако учтите, что как только вы скажете маршрутизатору переадресовать вам порт, вы обойдете большую часть или всю защиту, которую ваш маршрутизатор может обеспечить от атак на ваш компьютер (на этот порт, и обычно злоумышленники просматривают порт) , Возможно, он не обеспечивает, но может предоставлять некоторые.

1 голос
/ 29 марта 2010

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

Лучшее объяснение (от http://portforward.com/help/portforwarding.htm):

1.) Каждое устройство в Интернете имеет хотя бы один IP-адрес. IP адрес это число, которое используется для идентифицировать устройство. Для большего Информация о IP-адресах относится к страница «Что такое IP-адрес»?

2.) Каждый IP-адрес разделен на множество портов. Когда один компьютер отправляет данные на другой компьютер, это отправляет его из порта по ip адресу в порт по ip адресу.

3.) Порт может одновременно использоваться только одной программой.

Единственное решение, которое может вам помочь - это Port Forward . См. здесь , чтобы перенести порт вашего маршрутизатора.

0 голосов
/ 29 марта 2010

Вы должны будете настроить маршрутизатор для перенаправления порта 8080 на ваш ПК и использовать внешний IP-адрес маршрутизатора в URL-адресе, который вы даете Paypal.

См. portfward.com .

...