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)

Стандартные вопросы: что, где, зачем, когда и почему? Описание мягко говоря ни о чем не сказало.

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

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

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

Entmatix
()
Последнее исправление: Entmatix (всего исправлений: 1)
Ответ на: комментарий от sheoi1944

ну продолжайте наблюдения и держите нас в курсе.

anc ★★★★★
()

сервер 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 ★★★★★
()

Надо на сервере с публичным интерфейсом установить и настроить reverse proxy. Apache httpd, nginx, haproxy, envoy — что-то из этого.

vbr ★★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

Ну это можно попробовать, но оно не подходит под мои задачи. Мне еще нужно обходить ограничения «опсосов»

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

Получается подключаться по прокси и выходить по прокси? Просто я хочу использовать VPN как файло обменик

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

ip дан к примеру, что-бы не публиковать свой

sheoi1944
() автор топика
Ответ на: комментарий от 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 ★★★★
()

У меня не пингуется локальный веб-сервер (192.168.30.2) оказывается, скорее всего отсюда вытекают все проблемы. Но так не должно быть WireGuard настроен без NAT и клиент должен быть доступен

sheoi1944
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.