gSpotx2f / ruantiblock_openwrt

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

[Proposal] make bypasser generated rules gateway configurable #53

Closed AerialAirwaves closed 10 months ago

AerialAirwaves commented 10 months ago

На текущий момент, при конфигурации обхода через VPN, шлюз, через который пойдет трафик при обходе блокировок, устанавливается в IP vpn интерфейса, однако это не работает для интерфейсов, требующих явного указания шлюза, например Zerotier, и приходится подкостыливать эту строку.

Сомневаюсь, что проблема распостраненная, но всё же выглядит как точка расширения - предлагаю сделать шлюз, задаваемый в генерируемых правилах, опционально настраиваемым: interface address (default), interface default gateway (from UCI), custom.

Сильно сомневаюсь, но допускаю, что конкретно я некорректно настроил интерфейс, - пытался делать по аналогии с openvpn и wg, но там во всех гайдах его оставляют unconfigured, и кроме того, с tun2socks, настроенным на статику по этому гайду аналогично штатному состоянию zerotier интерфейса, всё работает без плясок с бубном, даже если не указывать default gateway (а если и указывать, нужно отключить use default gateway, иначе трафик попросту зациклится, ибо сам же vpn ходит через default gateway, адрес которого относится к управляемому им интерфейсу -_-). Если действительно я не прав и существует решение проще, стандартными средствами OpenWRT, поправьте пожалуйста.

gSpotx2f commented 10 months ago

Добавил опцию назначения кастомного ip шлюза для VPN (в веб-интерфейсе на вкладке VPN). Обновите пакеты ruantiblock, luci-app-ruantiblock, luci-i18n-ruantiblock-ru:

wget --no-check-certificate -O /tmp/ruantiblock_1.4-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/ruantiblock_1.4-1_all.ipk
wget --no-check-certificate -O /tmp/luci-app-ruantiblock_1.4-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-app-ruantiblock_1.4-1_all.ipk
wget --no-check-certificate -O /tmp/luci-i18n-ruantiblock-ru_1.4-1_all.ipk https://raw.githubusercontent.com/gSpotx2f/packages-openwrt/master/current/luci-i18n-ruantiblock-ru_1.4-1_all.ipk
opkg install /tmp/ruantiblock_1.4-1_all.ipk /tmp/luci-app-ruantiblock_1.4-1_all.ipk /tmp/luci-i18n-ruantiblock-ru_1.4-1_all.ipk
rm /tmp/ruantiblock_1.4-1_all.ipk /tmp/luci-app-ruantiblock_1.4-1_all.ipk /tmp/luci-i18n-ruantiblock-ru_1.4-1_all.ipk

После переустановки пакета ruantiblock остаётся старый конфиг (/etc/ruantiblock/ruantiblock.conf). Замените его новым (/etc/ruantiblock/ruantiblock.conf-opkg) из пакета, там добавлен параметр VPN_GW_IP.

mv -f /etc/ruantiblock/ruantiblock.conf-opkg /etc/ruantiblock/ruantiblock.conf

Также, нужно будет заново задать расписание обновления, автозапуск при старте системы (эти настройки сбрасываются при удалении/обновлении пакета ruantiblock) и обновить блэклист (ruantiblock update).