Доступ к серверу из-за пределов локальной сети
У меня есть сервер, написанный на Java, который в основном ожидает запросы от разных клиентов и обслуживает их запросы. Я запускаю этот сервер из Eclipse. Этот сервер доступен в локальной сети, но я хочу иметь возможность доступа к этой службе за пределами локальной сети. Есть ли способ сделать это, пожалуйста?
PS Я настоящий новичок в этих вещах
3 ответа
Вы можете открыть порт в маршрутизаторе, который ведет к тому, который слушает сервер. Затем вы подключаетесь к общедоступному IP-адресу. Этот ip можно найти на
Как сказал @Java Player, проблема в том, что ваш маршрутизатор (Nat) отклонил любой входящий пакет в вашу локальную сеть... вкратце, есть много решений для этого:
Сторонний сервер: у вас должен быть выделенный сервер, который играет роль посредника между вашими клиент-серверными программами.
Плюсы:
- Решить полностью проблему, связанную с Нац.
Минусы:
В дополнение к вашему клиенту вы должны закодировать еще одну третью сторону, которая пересылает пакет в желаемое место назначения.
Кстати, он становится немного тяжелым (трата пропускной способности).
Обратная связь: сервер и клиентская программа меняются местами, то есть клиент становится сервером, а сервер становится клиентом, "используемым большинством троянов...
Плюсы:
- Очень легко реализовать этот подход.
минусы:
- У вас должен быть хотя бы открытый порт.
Пробивание дырок Udp: этот подход используется, возможно, всеми решениями peer2peer (например, skype, utorrent...).
Плюсы:
- Вам не нужно никакой конфигурации маршрутизатора.
- Прямая связь между сверстниками.
Минусы:
- Вам также нужен сторонний сервер под названием
STUN server
чтобы получить информацию о вашем роутере. - Не все роутеры, которые работают с дыроколом udp, вы должны рассмотреть и первое решение.
- Написание решения для пробивки отверстий - непростая задача.
Вы также можете загрузить что-то вроде Hamachi, а затем загрузить Hamachi и войти в свою сеть на других ПК и Mac (и Linux... который в настоящее время находится в бета-версии). Тогда вы захотите получить доступ к вашему серверу.