networking - 如何从外部访问我的 PC 上运行的 Java servlet?

标签 networking servlets routing ip-address localhost

我用Netbeans6.7写了一个servlet,当它运行时,它会打开一个浏览器窗口,地址是:http://localhost:8080/My_App/Test_Servlet ,我用我的 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、端口转发后,我可以从 Paypal 的测试 IPN 页面发送一条消息,当我尝试发送第二条消息时它无法通过,所以我停止启动我的 servlet,然后我可以发送另一个 ONE,消息,第二次再次失败,为什么? 弗兰克

最佳答案

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

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

允许从外部世界调用您的 PC:

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

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

关于networking - 如何从外部访问我的 PC 上运行的 Java servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2539461/

相关文章:

java - H2 数据库 Java Servlet 连接路径问题

ruby-on-rails - 在 rails 中查找 Action 的 HTML 动词

codeigniter - 如何检测匹配路由的 Codeigniter url?

sockets - 将 Windows 上的端口从环回重定向到外部

ios - 在调用函数之前等待 for 循环中的许多 Web 请求返回

java - 在不使用数据源的情况下以 SmartGWT 的动态形式上传文件时从 GWT 中的 Servlet 获取回调

java - 配置@PathVariable类型不匹配的错误页面

asp.net webforms 路由 : optional parameters

unit-testing - 在 go 中测试连接的正确方法

android - 是否可以从同一网络上的另一台设备访问部署在 Android 手机上的 HTTP 服务器?