为什么不能通过公共IP访问服务器

时间:2016-04-15 11:45:05

标签: java

我在Java上使用简单的客户端 - 服务器应用程序。 我有2台电脑。第一个(服务器)在ubuntu上,第二个是windows8(客户端)。 两台机器都连接到同一个网络,同一个路由器。 当我通过“短”ip在客户端创建套接字时 - 像这样

            socket = new Socket(InetAddress.getByName("192.168.1.7"),4444);

效果很好 - 没问题。但是,当我尝试这样做时 -

        socket = new Socket(InetAddress.getByName("95.188.199.188"),4444);

使用公共IP(据我所知)。后者 - 不起作用。 防火墙 - 关闭。 有什么问题?

3 个答案:

答案 0 :(得分:4)

因为如果您在内部网络中,则无法使用公共IP。

这通常是由于路由器的默认配置。 路由器不会使用公共IP来解析“内部”请求。

答案 1 :(得分:2)

无论防火墙如何,互联网都会始终看到您的路由器,而不是本地机器;您必须配置路由器以将所需端口转发到正确的本地计算机。

答案 2 :(得分:0)

尝试0.0.0.0。它的所有可用接口。