Доступ к серверу из-за пределов локальной сети

У меня есть сервер, написанный на Java, который в основном ожидает запросы от разных клиентов и обслуживает их запросы. Я запускаю этот сервер из Eclipse. Этот сервер доступен в локальной сети, но я хочу иметь возможность доступа к этой службе за пределами локальной сети. Есть ли способ сделать это, пожалуйста?

PS Я настоящий новичок в этих вещах

3 ответа

Решение

Вы можете открыть порт в маршрутизаторе, который ведет к тому, который слушает сервер. Затем вы подключаетесь к общедоступному IP-адресу. Этот ip можно найти на

Как сказал @Java Player, проблема в том, что ваш маршрутизатор (Nat) отклонил любой входящий пакет в вашу локальную сеть... вкратце, есть много решений для этого:

  1. Сторонний сервер: у вас должен быть выделенный сервер, который играет роль посредника между вашими клиент-серверными программами.

    Плюсы:

    • Решить полностью проблему, связанную с Нац.

    Минусы:

    • В дополнение к вашему клиенту вы должны закодировать еще одну третью сторону, которая пересылает пакет в желаемое место назначения.

    • Кстати, он становится немного тяжелым (трата пропускной способности).

  2. Обратная связь: сервер и клиентская программа меняются местами, то есть клиент становится сервером, а сервер становится клиентом, "используемым большинством троянов...

    Плюсы:

    • Очень легко реализовать этот подход.

    минусы:

    • У вас должен быть хотя бы открытый порт.
  3. Пробивание дырок Udp: этот подход используется, возможно, всеми решениями peer2peer (например, skype, utorrent...).

    Плюсы:

    • Вам не нужно никакой конфигурации маршрутизатора.
    • Прямая связь между сверстниками.

    Минусы:

    • Вам также нужен сторонний сервер под названием STUN server чтобы получить информацию о вашем роутере.
    • Не все роутеры, которые работают с дыроколом udp, вы должны рассмотреть и первое решение.
    • Написание решения для пробивки отверстий - непростая задача.

Вы также можете загрузить что-то вроде Hamachi, а затем загрузить Hamachi и войти в свою сеть на других ПК и Mac (и Linux... который в настоящее время находится в бета-версии). Тогда вы захотите получить доступ к вашему серверу.

Другие вопросы по тегам