gSpotx2f / ruantiblock_openwrt

Обход блокировок в OpenWrt с помощью Tor или VPN
GNU General Public License v3.0
219 stars 20 forks source link

Ошибка маршрутизации VPN! Необходим перезапуск #72

Closed zalessky closed 3 months ago

zalessky commented 3 months ago

Бодрого времени!

пользуюсь скриптом со времён 0.9 версии. много железа сменилось... Однако, преследует меня вот эта проблема: Ошибка маршрутизации VPN! Необходим перезапуск Дело в том, что в качестве WAN используется модем (LTE, агрегации частот и вот это вот всё...). И он поднимает соединение далеко не сразу. Скрипт ruantiblock успевает стартануть раньше. Ну и, следовательно сталкивается с отсутствием интерфейсов, что приводит к ошибке. sleep не спасает, ибо время поднятия соединения заранее неизвестно.

Возможно ли добавить настройку, чтобы скрипт стартовал ifup поднимется нужный интерфейс? Модем, тунель - singbox, кстати, тоже неторопливый

gSpotx2f commented 3 months ago

Возможно ли добавить настройку, чтобы скрипт стартовал ifup поднимется нужный интерфейс?

Такая функция уже есть (и всегда была), это прописано в /etc/hotplug.d/iface/40-ruantiblock. Если VPN-интерфейс отсутствует во время старта ruantiblock, то это не проблема. Когда интерфейс включится, ruantiblock добавит маршрут автоматически. Для того чтобы ruantiblock реагировал на сетевой интерфейс который создаёт sing-box необходимо создать для него интерфейс OpenWrt, как описано тут. Если, по какой-то причине, у вас это не работает, то можете сделать скрипт на событие любого интерфейса и прописать там /usr/bin/ruantiblock reload (см./etc/hotplug.d/iface/40-ruantiblock в качестве примера).

zalessky commented 3 months ago

У sing-box интерфейс прописан. Но ему стартовать не мешает отсутствие связи с миром. Как связь появится - хэндшейкит с сервером и готово. Стартует sing-box, следом запускается ruantiblock... падает в ошибку... проходит время (5 секунд, минута, две - как его левая пятка захочет) - поднимается модем, а ruantiblock уже в ошибке и сам уже не поднимется без ручного вмешательства... :(

Кстати, просто передернуть ruantiblock reload недостаточно. Ему еще скачать блэклисты нужно

gSpotx2f commented 3 months ago

Стартует sing-box, следом запускается ruantiblock... падает в ошибку...

Не пойму, почему ruantiblock выдаёт ошибку маршрутизации, если sing-box уже запущен. В этом случае, при запуске ruantiblock tun-интерфейс sing-box'а уже должен быть в системе (ifconfig). Sing-box поднимает свой tun-интерфейс сразу при старте, вне зависимости от того когда сможет подключиться к прокси-серверу. В настройках ruantiblock указан VPN-интерфейс из конфига sing-box (в секции inbounds "interface_name": "tun1", например)? В настройках OpenWrt-интерфейса sing-box (на странице "интерфейсы") галка Запустить при загрузке стоит?

zalessky commented 3 months ago

В настройках ruantiblock указан VPN-интерфейс из конфига sing-box в /etc/ruantiblock/ruantiblock.conf IF_VPN="tun0" (в секции inbounds "interface_name": "tun1", например)? в /etc/sing-box/config.json "inbounds": [ { "type": "tun", "interface_name": "tun0", ...... галка Запустить при загрузке стоит? да

zalessky commented 3 months ago

Пересобрал прошивку, переписал нафиг все конфиги. заработало. но странно: сразу после ребута ошибка "Ошибка маршрутизации VPN! Необходим перезапуск" висит какое-то время, но после поднятия модема, изчезает, блэклисты обновляются и руантиблок начинает работать. Спасибо за потраченное время