Networking 如何从外部访问PC上运行的Java servlet?

Networking 如何从外部访问PC上运行的Java servlet?,networking,servlets,routing,ip-address,localhost,Networking,Servlets,Routing,Ip Address,Localhost,我用Netbeans6.7编写了一个servlet,当它运行时,它会打开一个带有以下地址的浏览器窗口:,我用我的IP地址替换了“localhost”,现在看起来是这样的:,但我试图从我家外面的另一台计算机访问它,它什么都看不见,我想知道是否需要更改Windows防火墙设置以允许外部通信,这是Paypal IPN应用程序,所以我打电话给Paypal,他们说他们无法访问: 我该怎么做才能允许来自“paypal.com”的流量访问“my_App/Test_Servlet” 部分成功!在我阅读文章,设

我用Netbeans6.7编写了一个servlet,当它运行时,它会打开一个带有以下地址的浏览器窗口:,我用我的IP地址替换了“localhost”,现在看起来是这样的:,但我试图从我家外面的另一台计算机访问它,它什么都看不见,我想知道是否需要更改Windows防火墙设置以允许外部通信,这是Paypal IPN应用程序,所以我打电话给Paypal,他们说他们无法访问:

我该怎么做才能允许来自“paypal.com”的流量访问“my_App/Test_Servlet”


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

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

更好的解释(来自):

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

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

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


唯一能帮助你的解决办法是。请参阅端口转发您的路由器。

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


请参阅。

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

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

要允许从外部世界呼叫您的电脑,请执行以下操作:

  • 你的电脑需要在任何时候打开,你期待一个电话(如果是PayPal IPN,几乎总是这样)
  • 您必须有一个用于internet连接的静态IP地址,或者使用服务
  • 您必须向PayPal提供您的internet连接的静态IP地址(不是您电脑的内部地址)或您使用动态服务设置的DNS名称
  • 您必须将路由器配置为将请求转发到您的静态公共地址到您的计算机(因为您的路由器可能支持多台计算机,并且需要知道哪台计算机应该处理该请求)
  • 如果您使用Windows防火墙等软件防火墙,则必须告诉它可以接受该端口上的请求

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

如何知道我是否有“静态IP地址”,如果没有,如何“使用动态DNS服务”?我必须为“端口转发”服务付费吗?@Frank:你的ISP可以告诉你是否有静态IP地址(如果你必须问我们,你这样做的几率很低)。大多数ISP都提供这种服务,但价格更高。您在动态DNS方面的最佳选择是阅读我和“精英绅士”链接的文章和相关资料。端口转发几乎肯定是路由器或调制解调器的一项功能;这不是ISP的功能,因此没有(嗯,在我见过的任何设置中)额外的成本。