LINUX.ORG.RU

Сообщения Dmitro_94

 

Double VPN на Marzban/gozargah и Wireguard, маршрутизация трафика

Форум — Admin

Итак, ради интереса и расширения знаний решил организовать Double VPN.

Общий принцип работы: Есть 2 VPS в европейских датацентрах, будем называть их VPS1 и VPS2. На VPS1 поднят Marzban/gozargah, через него домашний компьютер, находящийся внутри границ России, связывается с VPS1 по VLESS. Между VPS1 и VPS2 поднят Wireguard туннель. По логике работы Double VPN российский IP-адрес моего домашнего компьютера должен подменяться IP-адресом VPS2, однако, не работает.

Подробности: На VPS1 Marzban/gozargah работает в контейнере с серым IP-адресом 172.17.0.1. На том же VPS1 без контейнера работает WG сконфигурированный как клиент с серым IP-адресом 10.6.0.2. По команде ifconfig выдаются интерфейсы «docker0», «wg0» и «eth0»

На VPS2 без контейнера работает WG сконфигурированный как сервер с серым IP-адресом 10.6.0.1 и включён NAT.

IPv4 forwarding на обоих VPS включён. Wireguard-туннель поднимается, по команде «wg show» оба VPS показывают признаки установленного соединения. С VPS1 нормально пингуется адрес 10.6.0.1, а с VPS2 - адрес 10.6.0.2.

Российский IP-адрес моего домашнего компьютера подменяется IP-адресом VPS1, то есть VPS2 как-бы пока не при делах. Я логически понимаю, что трафик из контейнера с Marzban/gozargah на VPS1 сейчас отправляется прямо в интернет через eth0, а нужно, чтобы он отправлялся в туннель wg0, но мне не хватает знаний и умений, чтобы это прописать.

Что было попробовано:

  1. На VPS1 в конфигурационном файле Wireguard прописан AllowedIPs=0.0.0.0/0. Результат - упал SSH, VLESS-клиент на домашнем компьютере начал отсыпать Errorы.
  2. На VPS1 в конфигурационном файле Wireguard прописан AllowedIPs=172.17.0.0/24. Результат - перестаёт пинговаться 10.6.0.1, IP-адрес моего домашнего компьютера продолжает подменяться IP-адресом VPS1, то есть трафик из контейнера идёт в eth0.
  3. На VPS1 в конфигурационном файле Wireguard прописаны AllowedIPs=10.6.0.1, 172.17.0.0/24. Результат - 10.6.0.1 нормально пингуется, IP-адрес моего домашнего компьютера продолжает подменяться IP-адресом VPS1, то есть трафик из контейнера идёт в eth0.
  4. На VPS1 в ip route прописано перенаправление всего трафика на 10.6.0.2, результат ожидаемо аналогичен первому.

/

  1. Правильно ли я понимаю, что для правильной работы этой конструкции нужно на VPS1 перенаправлять трафик из интерфейса docker0 в интерфейс wg0?
  2. Нужно ли прописать аналогичное перенаправление из wg0 в docker0, чтобы «на приём» трафик шёл по тому же пути?
  3. Если 1 и 2 да, то как правильно это прописать?
  4. Нужно ли что-либо дополнительно настраивать на VPS2?

То, что удаётся находить по теме с помощью гугла, в том числе, на этом форуме, рассчитано на людей с уверенными знаниями, а я крайне не силён в iptables и маршрутизации. Тем не менее, новую информацию усваиваю быстро.

Прошу помощи у знающих людей. Если для полного понимания будет нужно содержимое конфигурационных файлов и.т.п. - предоставлю.

 ,

Dmitro_94
()

RSS подписка на новые темы