【问题标题】:How to connect socket via external IP (Mac )如何通过外部 IP 连接套接字(Mac)
【发布时间】:2012-02-23 05:26:24
【问题描述】:

我的问题是,如何连接到远程机器上的套接字? 我只能连接同一网络上的套接字..

我编写了一个简单的代码(在 c 中),它模拟了一个服务器(打开套接字并监听客户端)。在 Mac 中。

我正在尝试将此套接字作为客户端从 iPhone 连接(使用简单的 objectiv-c 代码)。

如果我在服务器和客户端上的互联网都在同一个网络 (WiFi) 上,并且在客户端我尝试连接到 192.168.1.x,它就可以正常工作。 但是,当我在客户端尝试通过外部 IP(具有相同端口)连接时,连接失败。

我以前从来没有这样做过。也许我错过了一些东西..我试图关闭我的防火墙。它没有帮助。

谢谢。

编辑:如果不清楚.. 我的 Mac 是通过路由器连接的。

【问题讨论】:

    标签: c sockets ip port external


    【解决方案1】:

    在这样的设置中,“外部 IP”通常是路由器的 IP。您很可能需要配置路由器以将相关端口转发到内部 IP 地址。

    也可能是为了使端口转发工作,请求必须进入外部 (WAN) 接口。这取决于路由器的配置方式。如果是这种情况,您需要确保您通过蜂窝网络访问外部 IP,而不是 iPhone 上的 Wi-Fi 连接。

    【讨论】:

      【解决方案2】:

      如果您通过本地 IP 地址连接到服务器(即,您通过委托的 DHCP 地址连接到同一本地路由器上的另一台计算机),那么您的问题出在网络上,而不是 IP-本地机器的堆栈。

      您需要检查您的路由器设置...许多路由器会阻止一些服务,尤其是自定义端口上的服务,以防止来自本地网络外部来源的恶意攻击。

      【讨论】:

      • 在我的路由器中,它被称为“转发”。
      猜你喜欢
      • 1970-01-01
      • 2016-05-02
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 2017-10-04
      • 2020-10-19
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多