从外部本地网络访问服务器

时间:2013-04-05 22:28:30

标签: java java-server

我有一个用Java编写的服务器,它基本上等待来自不同客户端的请求并提供他们的请求。我从Eclipse运行这个服务器。此服务器可在本地网络上访问,但我希望能够从本地网络外部访问此服务。请问有什么办法吗?

P.S。我是这些事情的真正初学者

3 个答案:

答案 0 :(得分:3)

您可以在路由器中打开一个指向服务器正在侦听的端口。然后,您连接到您的公共IP。此IP可以是found on

答案 1 :(得分:0)

您也可以下载Hamachi之类的东西,然后下载Hamachi并在其他PC和Mac(以及目前处于测试阶段的Linux)上登录您的网络。然后,您将希望能够访问您的服务器。

答案 2 :(得分:0)

正如@Java Player所说,问题是您的路由器(Nat)拒绝向您的本地网络传输任何数据包......简而言之,有很多解决方案:

  1. 第三方服务器:您必须在客户端/服务器程序之间拥有一个扮演中介角色的专用服务器。

    优点:

    • 完全解决与Nat。
    • 相关的问题

    缺点:

    • 除了您的客户端,您还必须编写另一个将数据包转发到所需目标的第三方。

    • BTW它有点沉重(浪费带宽)。

  2. Reversed connexion:服务器和客户端程序相反,这意味着客户端成为服务器,服务器成为客户端,大部分用户都使用木马 ...

    优点:

    • 很容易实现这种方法。

    缺点:

    • 您必须至少拥有一个已打开的端口。
  3. Udp hole punching:这种方法可能被所有peer2peer解决方案使用(例如:skype,utorrent ......)。

    优点:

    • 您不需要任何路由器配置。
    • 同行之间的直接联系。

    缺点:

    • 您还需要一个名为STUN server的第三方服务器来获取有关路由器的信息。
    • 并非所有使用udp打孔的路由器都必须考虑第一个解决方案。
    • 写一个打孔解决方案并非易事。