Рецепт

Удаление прежней настройки ForestVPN на MikroTik

Удалите старую настройку с контейнером qproxy и интерфейсом WireGuard fvpn0 вместе с её kill switch и правилами mangle, чтобы приложение ForestVPN встало на чистое место.

Обновлено 20 октября 2026 г.

На этой странице (7)

Как рецепт пока не проверено на реальном оборудовании. Команды удаления выполнялись на трёх роутерах hAP ax² 2026-10-20. На тестовом роутере cAP ax (RouterOS 7.24.5) 2026-10-21 обнаружение нашло остатки прежней настройки, а отказ без fvREMOVEOLD ничего не изменил; удаление в том виде, как оно вставляется здесь, на роутере не запускалось.

Что вы получите

Прежняя настройка ForestVPN удалена: контейнер qproxy, интерфейс WireGuard fvpn0, список адресов under_fvpn, таблица маршрутизации fvpn с правилом «ForestVPN Kill Switch» и их правила mangle. Если их оставить, этот kill switch и эти правила mangle продолжают направлять вашу сеть в туннель, которого больше нет. Новое приложение устанавливается той же вставкой.

Перед началом

  • Устройство: MikroTik, на котором ещё осталась прежняя настройка ForestVPN.
  • Прошивка: RouterOS 7.21 или новее, с пакетом container и включённым режимом устройства для контейнеров.
  • Время: пять минут.
  • Что может пойти не так: между удалением и подключением нового контейнера у сети нет туннеля. Аккаунт прежней настройки не переносится: привяжите роутер заново по коду (код сопряжения появится в /log).
  • Без вставки ниже установка откажется и ничего не изменит, сообщив, что нашла.

Шаги

  1. Вставьте эту строку, при желании следом :global fvLAN "all", чтобы отправить через новый туннель всю локальную сеть с kill switch, а затем блок установки со страницы Получить приложение, Роутер.

    Просит установку сначала удалить прежнюю настройку

    :global fvREMOVEOLD "yes"

    Установка сохраняет вашу конфигурацию в forestvpn-before-removal.rsc, удаляет ровно перечисленные выше объекты, оставляет мост containers, которым пользуются другие контейнеры (вместе с его адресом и маскарадингом 172.17.0.0/24, которые создаёт и собственная инструкция MikroTik по контейнерам), проверяет, что ничего не осталось, и продолжает.

  2. Чтобы очистить роутер без установки, вставьте вместо этого блок ниже. Это то же удаление, одной вставкой.

    Удаляет прежнюю настройку ForestVPN

    {
    # The ForestVPN router setup before this app: a qproxy container on a "containers" bridge
    # (172.17.0.0/24), a WireGuard interface fvpn0 in the WAN list, the address list under_fvpn, a
    # routing table fvpn with the "ForestVPN Kill Switch" rule, and their mangles. Left in place, its
    # kill switch and mangles keep steering the LAN into a tunnel that no longer exists.
    :local old [:toarray ""]
    :if ([:len [/container/find where name~"qproxy"]] > 0) do={ :set old ($old , "the qproxy container") }
    :if ([:len [/interface/wireguard/find where name="fvpn0"]] > 0) do={ :set old ($old , "WireGuard interface fvpn0") }
    :if ([:len [/ip/firewall/address-list/find where list="under_fvpn"]] > 0) do={ :set old ($old , "address list under_fvpn") }
    :if ([:len [/routing/table/find where name="fvpn"]] > 0) do={ :set old ($old , "routing table fvpn") }
    :if ([:len [/routing/rule/find where table="fvpn" or comment~"ForestVPN Kill Switch"]] > 0) do={ :set old ($old , "the ForestVPN Kill Switch rule") }
    :if ([:len [/ip/firewall/mangle/find where src-address-list="under_fvpn" or connection-mark="under_fvpn" or out-interface="fvpn0" or in-interface="fvpn0"]] > 0) do={ :set old ($old , "its mangle rules") }
    :if ([:len [/interface/list/member/find where interface="fvpn0"]] > 0) do={ :set old ($old , "fvpn0 in an interface list") }
    :if ([:len $old] > 0) do={
    :put ("ForestVPN: removing the previous ForestVPN setup: " . [:tostr $old] . ". Your configuration before this is saved as forestvpn-before-removal.rsc.")
    /export file=forestvpn-before-removal
    :foreach c in=[/container/find where name~"qproxy"] do={
    :do { /container/stop $c } on-error={}
    :local n 0
    :while ([/container/get $c running] && $n < 30) do={ :delay 1s; :set n ($n + 1) }
    :delay 2s
    /container/remove $c
    }
    /ip/firewall/mangle/remove [find where src-address-list="under_fvpn" or connection-mark="under_fvpn" or out-interface="fvpn0" or in-interface="fvpn0" or (chain="prerouting" and action="accept" and dst-address="192.168.88.1")]
    /ipv6/firewall/mangle/remove [find where src-address-list="under_fvpn" or connection-mark="under_fvpn"]
    /routing/rule/remove [find where table="fvpn" or comment~"ForestVPN Kill Switch"]
    /ip/route/remove [find where routing-table="fvpn"]
    /ipv6/route/remove [find where routing-table="fvpn"]
    /interface/wireguard/peers/remove [find where interface="fvpn0"]
    /interface/list/member/remove [find where interface="fvpn0"]
    /ip/address/remove [find where interface="fvpn0"]
    /ipv6/address/remove [find where interface="fvpn0" and !dynamic]
    /interface/wireguard/remove [find where name="fvpn0"]
    /routing/table/remove [find where name="fvpn"]
    /ip/firewall/address-list/remove [find where list="under_fvpn"]
    /interface/bridge/port/remove [find where interface~"veth-qproxy"]
    /interface/veth/remove [find where name~"veth-qproxy"]
    # The "containers" bridge, its address and its 172.17.0.0/24 masquerade only if nothing else is
    # still on it: MikroTik's own container guide uses the same names, so other containers may share them.
    :if ([:len [/interface/bridge/find where name="containers"]] = 1 and [:len [/interface/bridge/port/find where bridge="containers"]] = 0) do={
    /ip/firewall/nat/remove [find where src-address="172.17.0.0/24"]
    /ip/address/remove [find where interface="containers"]
    /interface/list/member/remove [find where interface="containers"]
    /interface/bridge/remove [find where name="containers"]
    }
    :if ([:len [/container/find where name~"qproxy"]] + [:len [/interface/wireguard/find where name="fvpn0"]] + [:len [/routing/table/find where name="fvpn"]] + [:len [/ip/firewall/address-list/find where list="under_fvpn"]] > 0) do={ :error "ForestVPN: the previous setup could not be removed completely. See /export and fvpn.net/help/mikrotik-remove-old/." }
    }
    }

Проверка, что всё сработало

В экспорте не должно встречаться ни qproxy, ни under_fvpn, ни fvpn0, а 172.17.0. — только если мостом containers пользуются другие контейнеры.

Показывает всю конфигурацию

/export terse

Отмена

Сохранённый экспорт — это запись, а не резервная копия: секретов в нём нет. Чтобы вернуться, добавьте объекты из него вручную или импортируйте его на сброшенный роутер.

Импортирует сохранённую конфигурацию

/import file-name=forestvpn-before-removal.rsc

Если что-то не так

СимптомПричинаЧто делать
«this router still has the previous ForestVPN setup»Установка нашла старые объекты, а удалять их её не просилиНичего не изменено. Вставьте строку из шага 1, затем блок установки ещё раз.
«the previous setup could not be removed completely»Осталось что-то, настроенное вручнуюПрочитайте /export и удалите оставшееся по имени, затем вставьте снова.
После удаления в сети нет интернетаНовый контейнер ещё не подключилсяДождитесь страницы состояния или привяжите роутер с телефона через мобильную сеть. См. устранение неполадок.

Ограничения

  • Ищутся только перечисленные выше имена: старую настройку, изменённую вручную, должен прочитать человек по /export.
  • Аккаунт прежней настройки не переносится. Привяжите роутер заново по коду.
  • Мост containers, его адрес и маскарадинг удаляются, только если на мосту больше ничего нет.

Назад к разделу «Помощь»

Наверх

Спросите нас о чём угодно