Удаление прежней настройки ForestVPN на MikroTik
Удалите старую настройку с контейнером qproxy и интерфейсом WireGuard fvpn0 вместе с её kill switch и правилами mangle, чтобы приложение ForestVPN встало на чистое место.
На этой странице (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). - Без вставки ниже установка откажется и ничего не изменит, сообщив, что нашла.
Шаги
-
Вставьте эту строку, при желании следом
:global fvLAN "all", чтобы отправить через новый туннель всю локальную сеть с kill switch, а затем блок установки со страницы Получить приложение, Роутер.Просит установку сначала удалить прежнюю настройку
:global fvREMOVEOLD "yes"Установка сохраняет вашу конфигурацию в
forestvpn-before-removal.rsc, удаляет ровно перечисленные выше объекты, оставляет мостcontainers, которым пользуются другие контейнеры (вместе с его адресом и маскарадингом172.17.0.0/24, которые создаёт и собственная инструкция MikroTik по контейнерам), проверяет, что ничего не осталось, и продолжает. -
Чтобы очистить роутер без установки, вставьте вместо этого блок ниже. Это то же удаление, одной вставкой.
Удаляет прежнюю настройку 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, его адрес и маскарадинг удаляются, только если на мосту больше ничего нет.