Перейти к основному содержимому

Маршрутизация сайтов через VPN или другой интерфейс

Сет в режиме Сетевой интерфейс отправляет трафик своих сайтов через интерфейс роутера, например туннель WireGuard или OpenVPN или второй аплинк. Всё остальное идёт обычным маршрутом.

Требования​

  • Поднятый интерфейс на роутере: VPN-клиент, настроенный вне b4, например WireGuard или OpenVPN, или второй аплинк.
  • Команда ip и backend файрвола: nftables или iptables с командой ipset.
  • Сет с доменами сайтов или с их IP-адресами, диапазонами CIDR, категориями GeoIP или ASN. См. Добавление сайтов в сет.

Настройка​

  1. Откройте Сеты и откройте сет или нажмите Создать сет и добавьте сайты на вкладке Цели.
  2. Откройте вкладку DNS & Маршрутизация, затем Маршрутизация трафика.
  3. Включите Включить маршрутизацию.
  4. В Режим маршрутизации выберите Сетевой интерфейс.
  5. В Выходной интерфейс выберите интерфейс VPN, например wg0.
  6. Включите Аварийное отключение, если сайты сета никогда не должны идти через обычный аплинк.
  7. Нажмите Сохранить или Создать сет для нового сета.

Поля описаны в разделе Сетевой интерфейс.

Чтобы отправить через VPN весь трафик устройства, выберите устройство в Цели > Исходные устройства и включите Любой IP-адрес в Цели > IP обхода.

Проверка результата​

  1. Добавьте ipinfo.io в домены сета на время проверки.
  2. На устройстве откройте https://ipinfo.io/ip или выполните curl -s https://ipinfo.io/ip. Показанный адрес - выходной адрес VPN, а не роутера.

Такая проверка надёжнее, чем открыть обычный сайт: веб-страница подгружает части с других хостов и может выглядеть сломанной, хотя маршрутизация работает.

Если выходной интерфейс - туннель, соединения сета на странице Логи заканчиваются пометкой [routed->wg0]. Кнопка Информация о системе в Настройки > Система > Сервис показывает число установленных сетов маршрутизации в строке Сеты маршрутизации раздела Firewall.

Аварийное отключение и трафик роутера​

Если Аварийное отключение выключено, трафик сета, пока VPN не работает, уходит через обычный аплинк с настоящим адресом роутера. С ним этот трафик отбрасывается, пока интерфейс не вернётся.

Трафик самого роутера определяет, идут ли за сетом соединения, которые открывает сам роутер. Обычно подходит Автоматически. Схема с Xray, sing-box или другим прокси, который читает TUN-устройство, разобрана в разделе b4 вместе с Xray или XrayUI.

Сайты через VPN на другом устройстве​

VPN может работать на другом устройстве в сети роутера, например на Raspberry Pi или втором роутере. Тогда сет отправляет свои сайты на это устройство, а оно пересылает их в свой VPN.

  1. Выполните шаги 1-4 из раздела Настройка.
  2. В Выходной интерфейс выберите интерфейс, который ведёт к этому устройству, например мост LAN.
  3. В Шлюз (необязательно) укажите адрес устройства в этой сети, например 192.168.1.10.
  4. Нажмите Сохранить или Создать сет для нового сета.

Устройства этой сети идут за сетом по IPv4, а собственный трафик устройства-шлюза идёт обычным маршрутом. IPv6-трафик из этой сети за сетом не идёт никогда. Если шлюз IPv4, а Поддержка IPv6 включена, IPv6-трафик сета уходит через выходной интерфейс по собственному маршруту этого интерфейса, как без шлюза.

Шлюз вне сети выходного интерфейса b4 не использует и пишет причину в лог. Если после указания шлюза сайты перестали открываться, по адресу в Шлюз (необязательно) нет устройства, которое пересылает трафик, или VPN на устройстве не работает. Ошибки в логе при этом нет: пакеты уходят, а ответа нет. См. Шлюз.

Если не работает​

  • Сет ничего не маршрутизирует. Маршрутизация сопоставляет адреса назначения, и вкладка предупреждает, если в сете нет доменов, IP и ASN. Исходные устройства сами по себе трафик не выбирают.
  • Выходной интерфейс помечен как недоступный. VPN не работает или его интерфейс теперь называется иначе. Маршрутизация возобновится, когда интерфейс вернётся.
  • Устройство использует шифрованный DNS. b4 не видит DNS-ответов этого устройства, и первое соединение к новому адресу может пойти обычным маршрутом. Помогает отключить защищённый DNS в браузере или «Частный DNS» на Android. См. DNS.
  • Трафик раньше забирает другой сервис. VPN- и прокси-сервисы добавляют свои записи ip rule, и правило с меньшим приоритетом забирает пакеты раньше правила b4. См. b4 вместе с Xray или XrayUI.
  • Строка «Сеты маршрутизации» показывает ошибку. Файрвол отверг правила. Причины перечислены в разделе Если правила не ставятся.