Подключение к локальному серверу из Интернета

У меня есть маршрутизатор MikroTik с динамическим IP. У меня также есть один из компьютеров, подключенных к этому маршрутизатору через кабель. На этой машине работает программа сервера сокетов TCP. Раньше я тестировал сервер, подключаясь с другой машины в той же локальной сети. Теперь я хочу подключиться к серверу с любого ПК через Интернет. Я пробовал это и это учебные пособия. Я все еще не могу подключиться к серверу. В настоящее время я пытаюсь настроить все это на Windows 10. Я дважды проверил брандмауэры как на клиентских, так и на серверных машинах. Когда клиент пытается подключиться (через Wi-Fi), сокет выходит из строя с ошибкой:

Не удалось установить соединение, потому что целевая машина активно отказался.

Ошибка специфична для API (в данном случае используется boost.asio), поэтому, вероятно, любой другой API-интерфейс netwokring выдает другую ошибку.

Что я сделал:

  1. Войдите в мой маршрутизатор.
  2. ] IP -> Брандмауэр -> Nat-> Добавить:

Общее:

enter image description here

Действие:

enter image description here

IP-адрес в панели «Действия» поступает из ipconfig -> Шлюз по умолчанию. Но я также попробовал использовать IP из адресной строки IPv4, так как не совсем уверен, какой из них следует использовать.

Вот и все. Клиент использует IP-адрес маршрутизатора в Интернете, который я ввел в поле «Dst.Address». И здесь я также попытался заменить IP-адресом WAN (через http://wanip.info/ ), который отличается от IP-адреса маршрутизатора в Интернете. Опять же, я не уверен, какой из них следует использовать. Моя причина подсказывает мне, что IP-адрес WAN - это не то, что я должен использовать в клиентской программе, поскольку он не ведет меня к маршрутизатору. Может я ошибаюсь. Мы будем очень благодарны за любую помощь в настройке этой установки.

0
задан 27 October 2017 в 22:57
1 ответ

Прежде всего, основная причина в том, что ваш WAN-адрес все еще является частным адресом в 10.0 Подсеть .0.0 / 8, которая не маршрутизируется в общедоступном Интернете - причина в том, что существует NAT операторского уровня , и в основном клиенты получают частные IP-адреса, а ISP выполняет NAT, просто как и ваш маршрутизатор, только в гораздо большем масштабе. Если вы хотите, чтобы он был общедоступным, возможно, вы можете поговорить со своим интернет-провайдером о получении статического общедоступного IP-адреса, хотя, если они открыты для него, они, вероятно, захотят, чтобы вы заплатили за него.

Во-вторых, при выполнении dst- nat, вы должны указать адрес целевого компьютера (ПК с серверным программным обеспечением) в поле «К адресам» - идея состоит в том, что в разделе «Общие» вы определяете, какие подключения должны соответствовать, а в разделе «Действие» вы определяете, что с ними делать (в данном случае, куда их отправлять).

0
ответ дан 5 December 2019 в 07:28

Теги

Похожие вопросы