Вопрос или проблема
Я установил виртуальную машину для использования ERP через веб-сервер.
Я настроил сеть как NAT.
Все мои компьютеры, подключенные к локальной сети, могут получить доступ к веб-серверу, введя IP-адрес сервера, за которым следует порт: 192.168.8.1:8080
Как мне получить доступ к веб-серверу через Интернет извне локальной сети?
Да, вы можете сделать это, перенаправив порт 8080 на вашем маршрутизаторе на локальный адрес вашей виртуальной машины (192.168.8.1). Вам нужно знать ваш WAN (интернет) IP-адрес, который вы можете найти в маршрутизаторе или (обычно) поиском в Google по запросу ‘найти мой IP’ с компьютера в вашей локальной сети. И не оставляйте это в таком состоянии на долгое время, если вы не знаете, что делаете, и не уверены, что ваш веб-сервер безопасен.
Если ваш брандмауэр основан на Linux, вы сделаете это:
iptables -t nat -I PREROUTING -d <ваш_публичный_ip> -p tcp --dport 8080 -j DNAT --to <приватный_ip_сервера>
iptables -I FORWARD -d <приватный_ip_сервера> -p tcp --dport 8080 -j ACCEPT
Вы также можете иметь разные внутренние/внешние порты:
iptables -t nat -I PREROUTING -d <ваш_публичный_ip> -p tcp --dport 8888 -j DNAT --to <приватный_ip_сервера>:8080
iptables -I FORWARD -d <приватный_ip_сервера> -p tcp --dport 8888 -j ACCEPT
В зависимости от ваших нужд, правило FORWARD
может быть недостаточно ограничительным, так как оно открыто для мира.
Ответ или решение
Для доступа к веб-серверу на виртуальной машине из внешней сети необходимо выполнить несколько шагов. В данной статье мы рассмотрим ключевые аспекты, начиная с настройки маршрутизатора и заканчивая вопросами безопасности.
Общая настройка
-
Определение IP-адреса вашей виртуальной машины: Убедитесь, что ваша виртуальная машина (ВМ) имеет выделенный внутренний IP-адрес, например 192.168.8.1, на который вы можете направить запросы.
-
Понимание особенностей NAT: NAT (Network Address Translation) позволяет виртуальной машине использовать частный IP-адрес. Это значит, что для доступа к серверу из внешней сети вам понадобятся дополнительные настройки на роутере.
Проброс порта на роутере
Для доступа к вашему веб-серверу вам необходимо настроить проброс порта на вашем маршрутизаторе. Это позволяет направлять запросы, приходящие на внешний IP-адрес вашего роутера, к IP-адресу виртуальной машины.
- Войдите в интерфейс маршрутизатора: Откройте браузер и введите IP-адрес вашего роутера (обычно это 192.168.1.1 или 192.168.0.1).
- Настройка проброса портов (Port Forwarding):
- Найдите раздел, отвечающий за проброс портов (часто называется "Port Forwarding" или "Virtual Server").
- Добавьте новое правило:
- Внешний порт: 8080 (или другой, если хотите использовать нестандартный).
- Внутренний IP: 192.168.8.1.
- Внутренний порт: 8080.
- Протокол: TCP.
- Сохраните настройки.
Получение WAN IP-адреса
Определите ваш внешний (WAN) IP-адрес. Это можно сделать, например, выполнив поиск в Google по запросу "найти мой IP". Запишите этот адрес, так как он понадобится для доступа к веб-серверу.
Настройка брандмауэра
Если ваш веб-сервер работает на базе Linux, важно настроить брандмауэр (например, с помощью iptables) для разрешения внешних запросов:
iptables -t nat -I PREROUTING -d <ваш_публичный_ip> -p tcp --dport 8080 -j DNAT --to <внутренний_ip_сервера>
iptables -I FORWARD -d <внутренний_ip_сервера> -p tcp --dport 8080 -j ACCEPT
Альтернативный проброс порта
Если необходимо использовать разные порты для внешних и внутренних соединений, например, перенаправление с порта 8888 на 8080, используйте следующий набор команд:
iptables -t nat -I PREROUTING -d <ваш_публичный_ip> -p tcp --dport 8888 -j DNAT --to <внутренний_ip_сервера>:8080
iptables -I FORWARD -d <внутренний_ip_сервера> -p tcp --dport 8888 -j ACCEPT
Безопасность
Не забывайте о безопасности вашего сервера. Открытие портов для внешнего доступа может увеличить риск атак. Рекомендуется:
- Использовать сложные пароли для доступа к вашему ERP.
- Обновлять программное обеспечение и системы безопасности.
- Рассмотреть использование VPN для защиты соединения.
Заключение
Теперь, имея внешний IP-адрес и проброшенный порт, вы сможете получить доступ к своему веб-серверу, используя адрес http://<ваш_публичный_ip>:8080
. Обратите внимание на вопросы безопасности и используйте эти настройки с осторожностью, чтобы обеспечить безопасность вашего сервиса.