reverse proxy & wg split tunneling docs
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Pavel 2023-11-17 22:21:41 +03:00
parent 5dd5e287d0
commit 5bbd7c8b96

View File

@ -128,6 +128,52 @@ services:
См. [здесь](https://neur0tx.site/proxy_ru.html). Можно использовать как фолбэк если у вас есть доступ к этому сервису.
## Ускоряем реверс-прокси сайтов через ssh при работе через Wireguard VPN
Ускорение достигается за счет правки таблицы маршрутизации в момент подключения и отключения VPN. Мы пускаем все подключения к реверс-прокси не через VPN - это позволяет
сильно ускорить работу реверс-прокси. Инструкция подходит к любому прокси чей IP не меняется (актуально для моего прокси и `proxy.retailcrm.tech`). Выполняем следующее:
1. Отключаем свой VPN.
2. Выполняем команду:
```sh
ip route | grep default | awk '{print $3;}'
```
3. Копируем полученный IP.
4. Теперь подготавливаем записи `PreUp` и `PostDown`, которые будем указывать в нашем VPN-профиле. Используем следующий шаблон:
```ini
PreUp = ip route add IP_прокси/32 via IP_из_шага_2
PostDown = ip route del IP_прокси/32 via IP_из_шага_2
```
5. Если нужно добавить сразу несколько IP в список - дублируем команды через `;` вот так:
```ini
PreUp = ip route add IP_первого_прокси/32 via IP_из_шага_2; ip route add IP_второго_прокси/32 via IP_из_шага_2
PostDown = ip route del IP_первого_прокси/32 via IP_из_шага_2; ip route del IP_второго_прокси/32 via IP_из_шага_2
```
Пример с default gateway = `192.168.1.1` и настройкой для `proxy.retailcrm.tech` (IP `proxy.retailcrm.tech` может быть неактуален - проверяйте!):
```ini
PreUp = ip route add 136.243.39.221/32 via 192.168.1.1
PostDown = ip route del 136.243.39.221/32 via 192.168.1.1
```
6. Открываем профиль VPN (лежит в `/etc/wireguard` с расширением `conf`, для редактирования нужен рут) и добавляем `PreUp` и `PostDown` чтобы получилось примерно так:
```ini
[Interface]
PrivateKey = MTcwMDI0ODQxMXJnbGZya2puZnduamxyd2VscnJscmZrcmwsZgo=
Address = 10.2.3.4/32
DNS = 10.2.3.5
PreUp = ip route add 136.243.39.221/32 via 192.168.1.1
PostDown = ip route del 136.243.39.221/32 via 192.168.1.1
[Peer]
PublicKey = MTcwMDI0ODQyOHJnbGZya2puZnduamxyd2VscnJscmZrcmwsZgo=
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820
```
Настройка для IPv6 тоже возможна:
- Все команды `ip` для IPv6 требуют аргумента `-6`. Пример: `ip -6 route | grep default | awk '{print $3;}'`
- Размер IP в IPv6 - 128 бит. Поэтому в CIDR указываем размер блока не `/32`, а `/128`.
По идее этого должно быть достаточно, но я настройку для IPv6 не пробовал по причине отсутствия необходимости. Аналогичную конфигурацию без привязки к Linux и iproute2 можно реализовать с помощью [AllowedIPs Calculator](https://www.procustodibus.com/blog/2021/03/wireguard-allowedips-calculator/), но в моем случае попытка использования этого инструмента оканчивалась нерабочим Интернетом после правки профиля VPN.
## Обход блокировок сайтов
### Профиль Wireguard VPN под Linux