如何从外部访问在我的电脑上运行的Java servlet?

时间:2010-03-29 16:12:25

标签: networking servlets routing ip-address localhost

我使用Netbeans6.7编写一个servlet,当它运行时,它打开一个浏览器窗口,其地址为:http://localhost:8080/My_App/Test_Servlet,我用我的IP地址替换了“localhost”,现在它看起来像这样:{ {3}},但我试图从家外的另一台电脑访问它,它无法读取任何内容,我想知道是否需要更改Windows Fire Wall设置以允许外部流量,这是一个Paypal IPN应用程序,所以我打电话Paypal,他们说他们无法访问:http://192.???.1.??:8080/My_App/Test_Servlet

我应该做些什么来允许来自“paypal.com”的流量访问“My_App / Test_Servlet”?


部分成功!在我阅读文章后,设置静态IP,端口转发,我可以从Paypal的测试IPN页面发送一条消息,当我尝试发送第二个消息时,它无法通过,所以我停止启动我的servlet,然后我可以发送另一个消息,第二个消息再次失败,为什么? 弗兰克

3 个答案:

答案 0 :(得分:5)

我无法决定是否将此投票给serverfault.com或superuser.com,所以哎呀,我在这里回答:

您引用的IP地址看起来像本地地址(例如,192.168.x.x是本地范围之一),因此永远无法从网络外部访问该地址。这是您的路由器(或调制解调器)分配给您的地址。

允许来自外部世界的电话到您的电脑:

  • 您的电脑需要在您预期其中一个电话时(如果它是PayPal IPN,那几乎总是如此)
  • 您必须拥有互联网连接的静态IP地址,或使用dynamic DNS服务
  • 您必须向PayPal提供您的互联网连接的静态IP地址(不是您的PC内部连接)或您使用动态服务设置的DNS名称
  • 您必须将路由器配置为将请求转发到您的计算机的静态公共地址(因为您的路由器可能支持多台计算机,并且需要知道应该处理请求的特定计算机)。
  • 如果您使用Windows防火墙等软件防火墙,则必须告诉它它可以接受该端口上的请求。

不要让这看起来令人生畏。这不是微不足道的,但并不难。但请注意,只要您告诉路由器将端口转发给您,您就可以绕过路由器可能提供的大部分或全部保护,以防止对您计算机的攻击(在该端口上;通常是攻击者端口扫描) 。它可能没有提供任何,但它可能提供一些。

答案 1 :(得分:1)

无法从外部访问您的应用程序到本地PC。首先,您的IP地址不是静态的。当它到达您的服务提供商到Internet云时,您将拥有另一个IP地址。

更好的解释(来自http://portforward.com/help/portforwarding.htm):

  

1。)互联网上的每台设备至少有一个IP地址。知识产权   地址是一个用于的数字   识别设备。更多   有关ip地址的信息,请参阅   我们什么是IP地址页面。

     

2.)每个IP地址分为多个端口。当一台电脑   它将数据发送到另一台计算机   从IP地址的端口发送它   到IP地址的端口。

     

3。)一个端口一次只能由一个程序使用。

唯一可以帮助您的解决方案是Port Forward。请参阅here以转发您的路由器。

答案 2 :(得分:0)

您必须将您的路由器配置为将端口8080移植到您的PC,并在您为Paypal提供的URL中使用路由器的外部IP地址。

请参阅portfward.com