LINUX.ORG.RU
решено ФорумAdmin

Форвардинг портов через VPN (WireGuard)

 , , ,


0

0

Имею сервер WireGuard, К нему подключается клиент - 192.168.30.2, Выходной интерфейс (интернет) - ens3 (1.1.1.1), Интерфейс WireGuard - wg0 (192.168.30.0)

VPN работает, всё отлично. Но я хочу что-бы веб-сервер из локали был виден извне, порт форвардинг. Но всё что я нашёл в интернете мне не помогло.



Последнее исправление: sheoi1944 (всего исправлений: 3)

Ответ на: комментарий от sheoi1944

Где поправил? Я не увидел. Никакого описания, где что должно быть, что как подключается и прочее. Если тебе понятно, другим не обязательно. Рисуй понятную схему.

И не забудь описать все способы, которые «пробовал но толку ноль».

Entmatix
()
Последнее исправление: Entmatix (всего исправлений: 1)

сервер WireGuard

У WireGuard нет понятия "сервер" или "клиент", все пиры равноправны.

Выходной интерфейс

На "клиенте", или на "сервере"? Да и какое это имеет отношение к вопросу?

Надо что-бы веб-сервер был виден извне.

Веб-сервер на выходном пире ("сервере"), в режиме прокси.

mord0d ★★★★★
()

Собственно от wireguard ничего не требуется, достаточно на условном «сервере wireguard» настроить port forwarding, сделать это можно по любой инструкции по nft или iptables.

Нужна команда типа: nft add rule ip nat prerouting iif ens3 tcp dport 443 dnat to 192.168.30.0

anarquista ★★★★★
()

Если для компа на который ты пробрасываешь порт Wireguard сервер является шлюзом, но достаточно сделать DNAT - перенаправление входного пакета с сетевого интерфейса wireguard на IP адрес компа.

Если у компа шлюз другой, то нужно либо на wireguard сервере ещё делать и SNAT.

Либо можно сделать первым способом, но ещё и проложить маршрут на компе куда пробрасывается порт до сети за Wireguard сервером.

kostik87 ★★★★★
()
Ответ на: комментарий от sheoi1944

Посмотрите здесь раздел Destination NAT: https://wiki.nftables.org/wiki-nftables/index.php/Performing_Network_Address_Translation_(NAT)

Настраивать нужно на VPS. Сам wireguard уже настраивает NAT, вам нужно добавить туда команду dnat примерно такую, как я написал в посте выше.

anarquista ★★★★★
()
Ответ на: комментарий от sheoi1944

Ты ставишь nginx на свой VPS 1.1.1.1. Браузер подключается к нему. nginx пытается соединиться с твоим сервером на 192.168.30.2 и пробрасывает соединение браузера на него, проксируя его и ответы.

Единственное, что тебе в этой схеме надо настроить, что может казаться не очевидным - у твоего внутреннего компьютера 192.168.30.2 нужно в настройках wireguard прописать persistent keepalive на 25 секунд.

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

vbr ★★★
()