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
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.