通过互联网连接本地服务器

通过互联网连接本地服务器

我有一个 MikroTik 路由器,带有动态 IP。我还有一台通过电缆连接到该路由器的 PC。该机器上运行着一个 TCP 套接字服务器程序。以前,我通过从同一 LAN 中的另一台机器连接来测试服务器。现在我想通过互联网从任何 PC 连接到服务器。我试过教程。我仍然无法连接到服务器。我目前尝试在 Windows 10 上进行所有设置。我仔细检查了客户端和服务器计算机上的防火墙。当客户端尝试连接(通过 Wi-Fi)时,套接字失败并出现错误:

由于目标机器主动拒绝,因此无法建立连接。

该错误是 API 特定的(在本例中使用 boost.asio),因此可能每个其他网络 API 都会发出一些不同的错误。

我做了什么:

  1. 登录我的路由器。
  2. IP->防火墙->Nat->添加新:

一般的:

在此处输入图片描述

行动:

在此处输入图片描述

“操作”面板中的 IP 来自 ipconfig -> 默认网关。但我还尝试了 IPv4 地址行中的 IP,因为我不完全确定应该使用哪一个。

基本上就是这样。客户端使用路由器的互联网 IP,我将其输入到“Dst.Address”字段中。在这里,我还尝试用 WAN IP(通过http://wanip.info/)替换,这与路由器的互联网 IP 不同。同样,我不确定应该使用哪一个。我的理由告诉我,WAN IP 不是我应该在客户端程序上使用的 IP,因为它不会带我到路由器。也许我错了。任何帮助使此设置正常工作的帮助都将不胜感激。

答案1

首先,主要原因是您的 WAN 地址仍然是 10.0.0.0/8 子网中的私有地址,无法在公共互联网上路由 - 原因是存在运营商级 NAT继续,基本上客户端会获得私有 IP 地址,ISP 会进行 NAT,就像路由器一样,只是规模要大得多。如果您希望它公开访问,也许您可​​以与您的 ISP 讨论获取静态公共 IP 地址,但如果他们愿意,他们可能会希望您为此付费。

其次,在执行 dst-nat 时,您必须将目标计算机(装有服务器软件的 PC)地址放在“收件人地址”字段中 - 想法是在“常规”部分中定义要匹配的连接,在“操作”部分中定义如何处理它们(在本例中,将它们发送到哪里)。

相关内容