2009-08-06 50 views
3

我想连接到路由器后面的系统。我知道路由器的公共地址以及系统的私有IP(总是固定的)。我如何建立与私有IP的套接字连接?连接到私有IP

+0

它被称为“私人”的原因... – skaffman 2009-08-06 16:52:24

回答

4

这就是为什么有些人说他们在路由器后面的“防火墙”后面。互联网的邪恶病毒不能利用路由器后面的计算机上的任何软件(假设路由器管理员没有以有趣的方式配置它,例如通过启用DMZ)。

你还有一些选项:

  • 聊到路由器的后台管理,让他转发端口为您
  • 采取路由器,并把你的“目标”的计算机,其中您的路由器是,或启用DMZ(这只有在路由器后面只有一台计算机时才有意义)。 Warrning:先在目标计算机上安装防火墙!
  • 将插座旋转180度。做一个路由器后面的计算机建立具有公网IP地址
  • 使用类似UPnP,如果你的路由器支持它与服务器的连接
  • 获取您的计算机的专用IP地址,并配置路由器的所有流量切换到这个IP地址到您的计算机(这与DMZ类似,但是如果您在路由器后面有多台计算机,则可以工作)。 Warrning:先在目标计算机上安装防火墙!
  • 使用NAT遍历。有关该主题here的非常好的文章。简化版本是客户端建立到某个远程服务器的连接。服务器可以在客户端的路由器上看到打开的端口号,并将该端口分配给客户端计算机,因此它(或共享此信息的其他计算机)可能建立到该端口的连接并到达客户端的应用程序。 Warrning:这不适用于所有路由器。有些路由器不会让这种情况发生。
+3

只是一个说明。如上所述的“NAT穿透”通常被称为NAT遍历:) http://en.wikipedia.org/wiki/NAT_traversal – 2009-08-06 17:16:18

1

这是更多的配置路由器的问题,而不是你的实际程序。如果路由器未配置为将流量转发至专用系统,则无法强制其将其连接至您 - 相反,专用系统必须自行打开连接。

1

严格地说,对你的问题的答案是“你不能”。但是,您可以在路由器上启用DNAT(目标网络地址转换)。您连接到路由器上的某个端口,并将连接转发给内部IP。内部IP(和端口)在路由器设置中配置,并且连接客户端不知道。