从互联网连接本地服务器

我有一个具有dynamicIP的MikroTik路由器。 我也有一台电脑通过电缆连接到路由器。 该机器上运行的TCP套接字服务器程序。 以前,我是通过从同一局域网中的另一台机器连接来testing服务器的。 现在我想通过互联网从任何PC连接到服务器。 我试过这个和这个教程。 我仍然无法连接到服务器。 我目前尝试在Windows 10上设置它。我在客户端和服务器上都检查了防火墙。 当客户端尝试连接(通过Wi-Fi)时,套接字失败并出现错误:

由于目标机器主动拒绝,所以不能build立连接。

错误是API特定的(在这种情况下使用boost.asio),所以可能每个其他的networkingAPI都会发出一些不同的错误。

我做了什么:

  1. login到我的路由器。
  2. IP – >防火墙 – > Nat-> Add New:

一般:

在这里输入图像说明

行动:

在这里输入图像说明

“操作”面板中的IP来自ipconfig – >默认网关。 但是我也尝试了IPv4地址线的IP,因为我不完全确定哪些应该被使用。

基本上就是这样。 客户端使用路由器的互联网IP,我把它放在“Dst.Address”字段中。 在这里我也尝试用WAN IP替代(通过http://wanip.info/ ),这与路由器的互联网IP不同。 再次,我不确定应该使用哪一个。 我的理由告诉我,广域网IP不是我应该使用的客户端程序,因为它不把我带到路由器。 也许我错了。 任何帮助得到这个设置工作将高度赞赏。

首先,主要原因是你的广域网地址仍然是10.0.0.0/8子网中的私有地址,在公网上不能路由 – 原因是有一个电信级的NAT正在进行,基本上客户端可以使用私有IP地址与ISP进行NAT,就像您的路由器一样,规模更大。 如果你想让它公开访问,也许你可以和你的ISP谈谈获得一个静态的公有IP地址,但是如果他们愿意的话,他们可能会要你付钱。

其次,在做dst-nat的时候,你必须把目标计算机(带有服务器软件的PC)的地址放在“To addresses”字段中 – 这个想法是在“General”部分定义要匹配的连接,在“操作”部分中,您可以定义如何处理它们(在这种情况下,将它们发送到哪里)。