Как сделать сервер доступным через интернет

2

Я написал чат-клиент и сервер на Java. Это работает, но, как я выяснил, только локально. Цель состоит в том, чтобы заставить его функционировать через Интернет.

Я много чего перепробовал и могу уточнить при необходимости. Абсолютно новичок в этом, так что, полагаю, я сильно страдаю от "Не знаю, чего я не знаю" здесь.

Это то, что я сделал до сих пор:

  • Включена переадресация портов на моем роутере.
  • Гарантирован статический локальный IP-адрес.
  • Добавлен сервис в моей сети, с соответствующим портом.
  • Добавил правило для входящих подключений, которое разрешает его через брандмауэр Windows, и хотя я не уверен, что это было необходимо, для покрытия моих баз я также добавил соответствующее правило для исходящих сообщений.
  • Использовал http://www.canyouseeme.org/, чтобы убедиться, что мой сервис доступен.

Был такой же вопрос на SO, но он касается веб-сервера и касается .

Легато
источник
В вашем клиенте вы положили IP для подключения к? Я знаю меньше Java, или ему нужна веб-страница для запуска плагина Java? Я спрашиваю в случае, если он нужен веб-сервер на сервере слишком открытым
yagmoth555
Да, я установил IPv6 моего маршрутизатора, который настроен для перенаправления порта на другой компьютер, который я использую в качестве сервера. Когда я использовал его локально, я использовал IP-адрес серверного компьютера напрямую, который не работал по сети. Я не уверен, имеет ли значение тот факт, что это на Java, но добавил это на всякий случай. Он не использует веб-запуск. Клиент является исполняемым файлом.
ваш провайдер поддерживает ipv6? удаленный клиент может иметь проблемы с подключением к вам
yagmoth555
Я верю в это, у него было поле для IPv6 маршрутизатора, я также предоставил IPv4. Я заполнил эту форму заявки.
Можете ли вы telnet к вашему сервисному порту, чтобы проверить, правильно ли он открыт? Если telnet может, это означает, что у клиента возникла проблема. Если это невозможно, это может быть проблема с брандмауэром (брандмауэр на сервере)
yagmoth555

Ответы:

3

Вы должны убедиться, что путь маршрутизации от интернет-машин до вашего рабочего стола завершен. Чтобы это работало, вам необходимо удалить все блоки портов (брандмауэры) для портов, которые вы хотите показать, а также убедиться, что трафик направляется с вашего публичного IP-адреса на IP-адрес сервера (если сервер является частным).

Обычно все это выполняется на домашнем маршрутизаторе / Wi-Fi / модеме, который выполняет службу трансляции сетевых адресов (NAT) для вашей домашней сети (притворяется вашими внутренними компьютерами, когда ваши компьютеры общаются с Интернетом).

Итак, вам необходимо:

  • в маршрутизаторе настройте брандмауэр, чтобы разрешить использование определенного порта вашим сервером (скажем, порт 4321).
  • в маршрутизаторе настройте переадресацию порта для порта 4321 на внутренний IP-адрес вашего фактического сервера, а также на порт 4321.
  • на вашем сервере убедитесь, что ваш брандмауэр разрешает подключения к порту 4321

Проверьте, что клиенты чата работают внутри вашей сети (без участия NAT). Затем проверьте работу удаленных клиентов, подключившись к общедоступному IP-адресу порта, который вы перенаправили.

rolfl
источник