0) Мы будем выводить локальный http сервер, через VDS, в интернет
1) Берём вычислительное устройство с поднятым веб сервером
2) Устанавливаем клиент WireGuard
3) Оставляем греться на столе
4) Нам нужен абсолютно "любой" VDS, но только с белым IP, возможностью установить дистрибутив Ubuntu 20+, и не сильно дорогой... Берём у timeweb
5) Попадаем в панель управления похожую на эту
6) Для начала проходим в "Облачные серверы" и создаём там VDS с необходимыми параметрами
7) Раскрываем созданный VDS, идём в консоль и...
8) Для поднятия сервера WG используем рецепты из интернета, один из них, выполняем все шаги до готовности, должна получится настройка для клиента WireGuard нашего "сервера" и его IP адрес
8.1) Забираем файл настроек с VDS и загружаем его в клиент на нашем "сервере"
8.2) Подключаемся
9) Пока мы еще в консоли, воспользуемся встроенной оболочкой брандмауэра iptables под названием UFW, что бы перенаправить необходимый порт
9.0) Идём в настройки при помощи "sudo nano /etc/default/ufw" и меняем "DEFAULT_FORWARD_POLICY=”DROP”" на "DEFAULT_FORWARD_POLICY=”ACCEPT”"
9.1) Пишем "sudo nano /etc/ufw/sysctl.conf" и ищем строку "net/ipv4/ip_forward=1", перед ней не должно быть символа решетки "#"
9.2) Дальше пишем "sudo nano /etc/ufw/before.rules" и готовимся дополнить его необходимыми полями
9.3) Перед строчкой *filters добавляем
*nat
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport НАШ_ПОРТ -j DNAT --to-destination НАШ_АДРЕС
-A POSTROUTING -s ПОДСЕТЬ_WIREGUARD -j MASQUERADE
COMMIT
НАШ_ПОРТ - для примера используем порт 80 который подставляется при обращении по http
НАШ_АДРЕС - ip адрес нашего сервера в клиенте WireGuard
ПОДСЕТЬ_WIREGUARD - так же должна быть в файле настроек WireGuard и иметь вид похожий на "192.168.1.0/24"
9.4) Сохраняем нашу работу и перезагружаем uwf командой "ufw disable && ufw enable"
9.5) С этого момента можно пройти по публичному адресу VDS в браузере и попасть на локальный сервер
*Использование https и сертификатов безопасности не попали в эту статью
**Тут же можно заказать домен для VDS и переходить не по IP а по адресу домена
***В дальнейшем сеть WireGuard можно использовать для соединения других машин в одну сеть либо для подключения дополнительных серверов