Я хотел бы предоставить доступ к веб-серверу, доступному в интрасети (локальный IP-адрес за брандмауэром + NAT), другому клиенту в Интернете или другой локальной сети.

Поскольку я ничего не могу сделать на брандмауэре (например, переадресация портов), мое единственное решение - это NAT-to-NAT, как описано в UltraVNC.

Кто-нибудь знает об облегченном решении для выставления веб-сервера таким образом?

2 ответа2

1

Допустим, ваш сервер находится в NetworkWithHttp, а клиент - в NetworkWithClient.

Если маршрутизатор между этими двумя делает NAT для пакетов, перемещающихся из NetworkWithHttp в NetworkWithClient, то NetworkWithClient ничего не знает о NetworkWithHttp: весь NetworkWithHttp выглядит как ОДИН хост (маршрутизатор) с его точки зрения.

Самый простой способ здесь - это настроить переадресацию портов (также называется nat, DNAT), но у вас нет доступа к маршрутизатору, верно?

Если NetworkWithClient не находится за NAT - вы можете создать там VPN-сервер (любая современная операционная система ПК и многие аппаратные маршрутизаторы поддерживают это) и подключить сервер из NetworkWithHttp к этому VPN-серверу.

В другом случае вам нужен VPN-сервер где-то на третьем месте, где обе сети имели доступ.

NH является примером такой услуги. Это не VPN, но он может пересылать трафик между клиентом и сервером.

0

Похоже, вы хотите представить службу из (например) сети 10.0.0.0/8 в другую сеть 10.0.0.0/8 через Интернет, с NAT, работающим на обоих концах.

Если ваш сетевой администратор не перенаправил определенные порты на ваш внутренний IP-адрес, вы не сможете получать входящие соединения от хостов за пределами локальной сети. Ваш хост должен инициировать все соединения за пределами локальной сети, чтобы любая связь происходила за пределами локальной сети. Так как это верно для обеих сторон, вы оба довольно застряли в этом отношении.

Есть одно исключение: если и вы, и другая сторона подключаетесь к сторонней службе VPN, которая будет туннелировать ваши подключения, тогда она может работать. OpenVPN может быть настроен таким образом на VPS или другом доступном месте - и ваш хост, и удаленный хост будут подключаться к экземпляру OpenVPN. Поскольку соединение, инициированное обоими узлами, существует с сервером VPN, и сервер VPN будет пересылать трафик между узлами (действующими в качестве маршрутизатора) в туннеле, вы можете затем принимать входящие соединения над туннельной, "виртуальной" сетью.

OpenVPN довольно легок, но требует определенных знаний для настройки (особенно если вы хотите использовать шифрование) и, очевидно, должен работать в отдельном месте, доступном для обоих хостов. Я не уверен, что что-то "под ключ", как Hamachi VPN, будет работать так же.

Я предлагаю OpenVPN, потому что он использует TCP или UDP, по вашему выбору. Также можно использовать сервер Windows (или Linux) с запущенными службами PPTP, если ни один из маршрутизаторов не блокирует исходящий трафик GRE. Не уверен, насколько важна настройка PPTP-сервера в Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .