【问题标题】:How to access Java servlet running on my PC from outside?如何从外部访问我的 PC 上运行的 Java servlet?
【发布时间】:2011-02-02 03:00:59
【问题描述】:

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

【问题讨论】:

    标签: networking servlets routing ip-address localhost


    【解决方案1】:

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

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

    要允许从外界呼叫您的 PC:

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

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

    【讨论】:

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

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

    portfward.com

    【讨论】:

      【解决方案3】:

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

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-07-19
        • 2011-05-09
        • 2011-09-03
        • 1970-01-01
        • 2011-01-22
        • 2014-02-06
        • 1970-01-01
        相关资源
        最近更新 更多