Compare commits

...

35 Commits

Author SHA1 Message Date
f63ce9d1e2 Bump version to v72.20251213
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-12-13 10:33:20 +03:00
3f17898289 luci: Show option MODE_FILTER as checkbox: hostlist/autohostlist 2025-12-13 10:31:44 +03:00
52bd72079c install: Fix copy fake-files into distributive 2025-12-13 10:08:53 +03:00
6627678827 custom.d: Mark files into custom.d as configs 2025-12-13 10:06:56 +03:00
5691882d5e config: Fix using autohostlist option into NFQWS_OPT 2025-12-13 10:04:08 +03:00
fee8b480b0 Bump version to v72.20251212
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-12-12 13:23:21 +03:00
2fb3ac3cc1 build: Return arm_cortex-a7_neon-vfpv4 for SNAPSHOT 2025-12-12 13:23:03 +03:00
f443195a44 build: fix gpg import
PR: https://github.com/remittor/zapret-openwrt/pull/443
2025-12-12 12:56:31 +03:00
5b65e2078f luci: Improved display of logs
PR: https://github.com/remittor/zapret-openwrt/pull/526
2025-12-12 12:53:51 +03:00
18b9394679 config: Add new options to reset settings dialog (choice of NFQWS strategy) 2025-12-12 12:27:18 +03:00
6ea3432d0c config: set DISABLE_CUSTOM=1 by default 2025-12-12 09:24:55 +03:00
5b28626ac0 custom.d: Add Stun4ALL script (50-script.sh) 2025-12-12 09:24:55 +03:00
6cbf1e3c47 ipset: Add ability for restore default ipset configs 2025-12-12 09:24:54 +03:00
2b04a6f37a fake: Added new TLS HELLO fakes 2025-12-09 14:57:25 +03:00
8ed3a6e3ae ipset: Update zapret-hosts-user-exclude.txt 2025-12-09 14:55:42 +03:00
55daf2f006 Bump version to v72.20251122
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-11-22 11:58:46 +03:00
c60b70a02f config: Update default configs (by StressOzz v2) 2025-11-22 11:58:26 +03:00
44ff0ec3e1 Bump version to v72.20251022
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-10-22 15:15:29 +03:00
65d90d8ed3 luci: Open each link on new page 2025-10-22 15:11:39 +03:00
e8dfb187e3 Bump version to v72.20250924
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-09-24 13:25:50 +03:00
1b2057f00f luci: Add examples for custom.d scripts 2025-09-23 12:09:18 +03:00
7941f12c63 Bump version to v71.20250918
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-09-18 15:17:37 +03:00
81f4b493f6 Add FILTER_MARK support 2025-09-18 15:17:18 +03:00
bd2e62c8a6 Bump version to v71.20250708
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-07-08 11:55:41 +03:00
caa82938c1 ipset: Update zapret-hosts-google.txt 2025-07-08 11:54:28 +03:00
b1fd577bd1 config: Update default config (v71) 2025-07-08 11:46:05 +03:00
e8fc868226 Bump version to v71.20250607
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-06-07 22:06:10 +03:00
2670ff2985 build: Exclude arch arm_cortex-a7_neon-vfpv4 for SNAPSHOT 2025-06-07 22:05:49 +03:00
dda8f254a0 comfunc: MiniFix in init_before_start 2025-06-07 15:17:18 +03:00
62401bbad5 Bump version to v70.20250505
Some checks failed
build / build (arm_cortex-a8_vfpv3, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a8_vfpv3, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_neon, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_cortex-a9_vfpv3-d16, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_fa526, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (arm_xscale, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips64_octeonplus, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_4kec, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mips_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_24kc_24kf, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_74kc, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (mipsel_mips32, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, SNAPSHOT, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / build (x86_64, openwrt-24.10, ${{ needs.check.outputs.test_build == 'true' || needs.check.outputs.fake_build == 'true' }}) (push) Has been cancelled
build / release (push) Has been cancelled
2025-05-05 15:26:18 +03:00
c31fab4aaf config: Add new param FILTER_TTL_EXPIRED_ICMP
Source: dc1dc5c876
2025-05-05 15:26:17 +03:00
d56cd06281 luci: Fix access to files into custom.d dir 2025-05-05 15:26:17 +03:00
5f681a372a install: Patch luci header.ut for force update browser-cache
Aux info: https://github.com/openwrt/luci/pull/7725
2025-05-05 15:26:17 +03:00
d9d339e157 comfunc: Fix stdout into func adapt_for_sed 2025-05-05 15:26:17 +03:00
dfbd77bb91 install: Check service running before stop 2025-04-27 20:30:01 +03:00
24 changed files with 916 additions and 92 deletions

View File

@ -170,7 +170,8 @@ jobs:
shell: bash
run: |
# gpg --verbose --recv-keys 0x1D53D1877742E911
gpg --verbose --import <(wget -qO- 'https://git.openwrt.org/?p=keyring.git;a=blob_plain;f=gpg/0x1D53D1877742E911.asc')
# gpg --verbose --import <(wget -qO- 'https://git.openwrt.org/?p=keyring.git;a=blob_plain;f=gpg/0x1D53D1877742E911.asc')
gpg --verbose --import <(wget -qO- 'https://raw.githubusercontent.com/openwrt/keyring/refs/heads/master/gpg/0x1D53D1877742E911.asc')
# disable check signatures
sed -i 's/gpg --/#gpg --/g' setup.sh
# disable cleanup keys

View File

@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-zapret
PKG_VERSION:=70.20250419
PKG_VERSION:=72.20251213
PKG_LICENSE:=MIT
PKG_MAINTAINER:=remittor <https://github.com/remittor>

View File

@ -173,16 +173,16 @@ return view.extend({
let tab = E('div', { 'data-tab': tabname, 'data-tab-title': tabNameText }, [
E('div', { 'id': 'content_dmnlog_' + log_num }, [
E('div', {'style': 'padding-bottom: 20px'}, [ scrollDownButton ]),
E('div', {'style': 'margin-bottom: 20px; '}, [ scrollDownButton ]),
E('textarea', {
'id': log_id,
'name': log_name,
'style': 'font-size:12px',
'style': 'font-size:12px; width: 100%; max-height: 50vh;',
'readonly': 'readonly',
'wrap': 'off',
'rows': logdata[log_num].rows,
}, [ log_text ]),
E('div', {'style': 'padding-bottom: 20px'}, [ scrollUpButton ]),
E('div', {'style': 'margin-top: 20px'}, [ scrollUpButton ]),
]),
]);

View File

@ -48,6 +48,7 @@ return view.extend({
tools.getSvcInfo(), // svc_info
fs.exec('/bin/busybox', [ 'ps' ]), // process list
fs.exec(tools.packager.path, tools.packager.args), // installed packages
tools.getStratList(), // nfqws strategy list
uci.load(tools.appName), // config
]).catch(e => {
ui.addNotification(null, E('p', _('Unable to execute or read contents')
@ -71,6 +72,7 @@ return view.extend({
let svc_info = status_array[2]; // stdout: JSON as text
let proc_list = status_array[3]; // stdout: multiline text
let pkg_list = status_array[4]; // stdout: installed packages
this.nfqws_strat_list = status_array[5]; // array of strat names
//console.log('svc_en: ' + svc_en.code);
svc_en = (svc_en.code == 0) ? true : false;
@ -147,7 +149,7 @@ return view.extend({
});
},
serviceActionEx: function(action, button, hide_modal = false) {
serviceActionEx: function(action, button, args = [ ], hide_modal = false) {
if (button) {
let elem = document.getElementById(button);
this.disableButtons(true, elem);
@ -164,7 +166,7 @@ return view.extend({
}
else if (action == 'reset') {
exec_cmd = tools.defaultCfgPath;
exec_arg = [ 'sync' ]; // restore config + sync configs
exec_arg = args; // (reset_ipset)(sync) ==> restore all configs + sync config
errmsg = _('Unable to run restore-def-cfg.sh script.');
action = null;
} else {
@ -228,6 +230,33 @@ return view.extend({
dialogResetCfg: function(ev) {
ev.target.blur();
let reset_base = E('label', [
E('input', { type: 'checkbox', id: 'cfg_reset_base', checked: true }),
' ', _('Restore all base settings')
]);
let reset_ipset = E('label', [
E('input', { type: 'checkbox', id: 'cfg_reset_ipset', checked: true }),
' ', _('Restore ipset configs')
]);
let set_autohostlist = E('label', [
E('input', { type: 'checkbox', id: 'cfg_autohostlist', checked: true }),
' ', _('Set AutoHostList mode')
]);
let strat_list = [ ];
strat_list.push( E('option', { value: 'strat__skip__' }, [ '-' ] ) );
for (let id = 0; id < this.nfqws_strat_list.length; id++) {
let strat = '' + this.nfqws_strat_list[id];
strat_list.push( E('option', { value: 'strat_' + id }, [ strat ] ) );
}
let nfqws_strat = E('label', [
_('NFQWS_OPT strategy: '),
E('select', { id: 'cfg_nfqws_strat' }, strat_list)
]);
let cancel_button = E('button', {
'class': btn_style_neutral,
'click': ui.hideModal,
@ -238,12 +267,35 @@ return view.extend({
}, _('Reset settings'));
resetcfg_btn.onclick = ui.createHandlerFn(this, () => {
//cancel_button.disabled = true;
return this.serviceActionEx('reset', resetcfg_btn, true);
let opt_flags = '';
if (document.getElementById('cfg_reset_base').checked == false) {
opt_flags += '(skip_base)';
};
if (document.getElementById('cfg_reset_ipset').checked) {
opt_flags += '(reset_ipset)';
};
if (document.getElementById('cfg_autohostlist').checked) {
opt_flags += '(set_mode_autohostlist)';
};
//console.log('RESET: opt_flags = ' + opt_flags);
let sel_strat = document.getElementById('cfg_nfqws_strat');
let opt_strat = sel_strat.options[sel_strat.selectedIndex].text;
//console.log('RESET: strat = ' + opt_strat);
opt_flags += '(sync)';
let args = [ opt_flags, opt_strat ];
return this.serviceActionEx('reset', resetcfg_btn, args, true);
});
ui.showModal(_('Reset settings to default'), [
E('div', { 'class': 'cbi-section' }, [
E('p', _('All settings will be reset to default. Continue?')),
reset_base,
E('br'), E('br'),
reset_ipset,
E('br'), E('br'),
set_autohostlist,
E('br'), E('br'),
nfqws_strat,
E('br'), E('br')
]),
E('div', { 'class': 'right' }, [
cancel_button,

View File

@ -86,11 +86,15 @@ return view.extend({
o.rmempty = false;
o.default = 0;
o = s.taboption(tabname, form.ListValue, 'MODE_FILTER', _('MODE_FILTER'));
o = s.taboption(tabname, form.Flag, 'FILTER_TTL_EXPIRED_ICMP', 'FILTER_TTL_EXPIRED_ICMP');
o.rmempty = false;
o.default = 1;
//o = s.taboption(tabname, form.ListValue, 'MODE_FILTER', _('MODE_FILTER'));
//o.value('none', 'none');
//o.value('ipset', 'ipset');
o.value('hostlist', 'hostlist');
o.value('autohostlist', 'autohostlist');
//o.value('hostlist', 'hostlist');
//o.value('autohostlist', 'autohostlist');
o = s.taboption(tabname, form.Value, 'WS_USER', _('WS_USER'));
o.rmempty = false;
@ -110,7 +114,7 @@ return view.extend({
o.rawhtml = true;
o.default = '<hr style="width: 620px; height: 1px; margin: 1px 0 1px; border-top: 1px solid;">';
if (url) {
o.default += '<br/>' + _('Help') + ': <a href=%s>%s</a>'.format(url);
o.default += '<br/>' + _('Help') + ': <a target=_blank href=%s>%s</a>'.format(url);
}
};
@ -145,7 +149,7 @@ return view.extend({
};
let desc = locname;
if (multiline == 2) {
desc += '<br/>' + _('Example') + ': <a href=%s>%s</a>'.format(tools.nfqws_opt_url);
desc += '<br/>' + _('Example') + ': <a target=_blank href=%s>%s</a>'.format(tools.nfqws_opt_url);
}
btn.onclick = () => new tools.longstrEditDialog('config', param, param, desc, rows, multiline).show();
};
@ -163,6 +167,11 @@ return view.extend({
//o.description = _("nfqws option for DPI desync attack");
o.rmempty = false;
o.datatype = 'string';
o = s.taboption(tabname, form.Value, 'FILTER_MARK', _('FILTER_MARK'));
o.rmempty = false;
o.validate = function(section_id, value) { return true; };
o.write = function(section_id, value) { return form.Value.prototype.write.call(this, section_id, (value == null || value.trim() == '') ? "\t" : value.trim()); };
o = s.taboption(tabname, form.Value, 'NFQWS_PORTS_TCP', _('NFQWS_PORTS_TCP'));
o.rmempty = false;
@ -203,6 +212,20 @@ return view.extend({
tabname = 'autohostlist_tab';
s.tab(tabname, _('AutoHostList'));
o = s.taboption(tabname, form.Flag, 'MODE_FILTER', _('Use AutoHostList mode'));
o.rmempty = false;
o.default = '0';
o.validate = function(section_id, value) { return true; };
o.load = function(section_id) {
return uci.load(tools.appName).then(L.bind(function() {
var v = uci.get(tools.appName, section_id, 'MODE_FILTER');
return (v === 'autohostlist') ? '1' : '0';
}, this));
};
o.write = function(section_id, value) {
return uci.set(tools.appName, section_id, 'MODE_FILTER', value === '1' ? 'autohostlist' : 'hostlist');
};
o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_RETRANS_THRESHOLD', _('RETRANS_THRESHOLD'));
o.rmempty = false;
@ -354,7 +377,16 @@ return view.extend({
o.inputtitle = _('Edit');
o.inputstyle = 'edit btn';
o.description = fn;
let desc = (num == tools.discord_num) ? _('Example') + ': <a href=%s>%s</a>'.format(tools.discord_url) : '';
let desc = '';
if (num == tools.discord_num) {
desc = _('Example') + ': ';
for (let k = 0; k < tools.discord_url.length; k++) {
let url = tools.discord_url[k];
if (k > 0) desc += ' <br> ';
const filename = url.substring(url.lastIndexOf("/") + 1).split("?")[0];
desc += '<a target=_blank href=' + url + '>' + filename + '</a>';
}
}
o.onclick = () => new tools.fileEditDialog(fn, name, desc, '', 15).show();
}

View File

@ -39,6 +39,7 @@ return baseclass.extend({
appName : 'zapret',
execPath : '/etc/init.d/zapret',
syncCfgPath : '/opt/zapret/sync_config.sh',
defCfgPath : '/opt/zapret/def-cfg.sh',
defaultCfgPath : '/opt/zapret/restore-def-cfg.sh',
hostsGoogleFN : '/opt/zapret/ipset/zapret-hosts-google.txt',
@ -52,7 +53,11 @@ return baseclass.extend({
customdPrefixList : [ 10, 20, 50, 60, 90 ] ,
customdFileFormat : '/opt/zapret/init.d/openwrt/custom.d/%s-script.sh',
discord_num : 50,
discord_url : 'https://github.com/bol-van/zapret/blob/4e8e3a9ed9dbeb1156db68dfaa7b353051c13797/init.d/custom.d.examples.linux/50-discord',
discord_url : [ 'https://github.com/bol-van/zapret/blob/4e8e3a9ed9dbeb1156db68dfaa7b353051c13797/init.d/custom.d.examples.linux/50-discord',
'https://github.com/bol-van/zapret/blob/b251ea839cc8f04c45090314ef69fce69f2c00f2/init.d/custom.d.examples.linux/50-discord-media',
'https://github.com/bol-van/zapret/blob/b251ea839cc8f04c45090314ef69fce69f2c00f2/init.d/custom.d.examples.linux/50-stun4all',
'https://github.com/bol-van/zapret/tree/master/init.d/custom.d.examples.linux'
],
nfqws_opt_url : 'https://github.com/remittor/zapret-openwrt/discussions/168',
autoHostListFN : '/opt/zapret/ipset/zapret-hosts-auto.txt',
@ -135,6 +140,20 @@ return baseclass.extend({
});
},
getStratList: function() {
this.init_consts();
let exec_cmd = '/bin/busybox';
let exec_arg = [ 'awk', '-F', '"', '/if \\[ "\\$strat" = "/ {print $4}', this.defCfgPath ];
return fs.exec(exec_cmd, exec_arg).then(res => {
if (res.code == 0) {
return this.getWordsArray(res.stdout);
}
return [ ];
}).catch(e => {
ui.addNotification(null, E('p', _('Failed to get strat list: %s').format(e)));
});
},
handleServiceAction: function(name, action) {
return this.callInitAction(name, action).then(success => {
if (!success) {
@ -150,6 +169,12 @@ return baseclass.extend({
return (v && typeof(v) === 'string') ? v.trim().replace(/\r?\n/g, '') : v;
},
getWordsArray: function (text, { trim = true, removeEmpty = true } = {}) {
const rawLines = text.split(/\n/);
const processed = trim ? rawLines.map(line => line.trim()) : rawLines.slice();
return removeEmpty ? processed.filter(line => line.length > 0) : processed;
},
decode_pkg_list: function(pkg_list) {
let pkg_dict = { };
let lines = pkg_list.trim().split('\n');
@ -444,9 +469,12 @@ return baseclass.extend({
if (typeof(value) === 'string') {
value = value.trim();
if (this.multiline == 2) {
value = value.replace(/\n\t\t\t--/g, "\n--");
value = value.replace(/\n\t\t--/g, "\n--");
value = value.replace(/\n\t--/g, "\n--");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n\t/g, "\n");
value = value.replace(/\n --/g, "\n--");
value = value.replace(/\n --/g, "\n--");
value = value.replace(/ --/g, "\n--");

View File

@ -6,6 +6,7 @@
"file": {
"/opt/zapret/config": [ "read" ],
"/opt/zapret/ipset/*": [ "read" ],
"/opt/zapret/init.d/openwrt/custom.d/*": [ "read" ],
"/etc/crontabs/root": [ "read" ],
"/tmp/zapret*": [ "read" ],
"/etc/init.d/zapret*": [ "exec" ],

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=zapret-ip2net
PKG_VERSION:=70.20250419
PKG_VERSION:=72.20251213
PKG_MAINTAINER:=bol-van
PKG_LICENSE:=MIT
@ -9,8 +9,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b996abd5ce22942b09be6b6445c4c9f3dd49d6b3
PKG_SOURCE_DATE:=2025-04-19
PKG_SOURCE_VERSION:=0bc09971914c9ec8ad5553bf0678cb827adf5839
PKG_SOURCE_DATE:=2025-12-13
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=zapret-mdig
PKG_VERSION:=70.20250419
PKG_VERSION:=72.20251213
PKG_MAINTAINER:=bol-van
PKG_LICENSE:=MIT
@ -9,8 +9,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b996abd5ce22942b09be6b6445c4c9f3dd49d6b3
PKG_SOURCE_DATE:=2025-04-19
PKG_SOURCE_VERSION:=0bc09971914c9ec8ad5553bf0678cb827adf5839
PKG_SOURCE_DATE:=2025-12-13
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?

View File

@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=zapret-tpws
PKG_VERSION:=70.20250419
PKG_VERSION:=72.20251213
PKG_MAINTAINER:=bol-van
PKG_LICENSE:=MIT
@ -9,8 +9,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b996abd5ce22942b09be6b6445c4c9f3dd49d6b3
PKG_SOURCE_DATE:=2025-04-19
PKG_SOURCE_VERSION:=0bc09971914c9ec8ad5553bf0678cb827adf5839
PKG_SOURCE_DATE:=2025-12-13
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?

View File

@ -5,7 +5,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=zapret
PKG_VERSION:=70.20250419
PKG_VERSION:=72.20251213
PKG_MAINTAINER:=bol-van
PKG_LICENSE:=MIT
@ -13,8 +13,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=b996abd5ce22942b09be6b6445c4c9f3dd49d6b3
PKG_SOURCE_DATE:=2025-04-19
PKG_SOURCE_VERSION:=0bc09971914c9ec8ad5553bf0678cb827adf5839
PKG_SOURCE_DATE:=2025-12-13
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?
@ -54,6 +54,7 @@ define Package/$(PKG_NAME)/conffiles
/etc/config/zapret
/opt/zapret/config
/opt/zapret/ipset/
/opt/zapret/init.d/openwrt/custom.d/
endef
define Package/$(PKG_NAME)/install
@ -66,6 +67,7 @@ define Package/$(PKG_NAME)/install
#$(CP) $(PKG_BUILD_DIR)/docs/* $(1)/opt/zapret/docs/
$(INSTALL_DIR) $(1)/opt/zapret/files
$(CP) $(PKG_BUILD_DIR)/files/* $(1)/opt/zapret/files/
$(CP) ./files/* $(1)/opt/zapret/files/
$(INSTALL_DIR) $(1)/opt/zapret/ipset
$(CP) $(PKG_BUILD_DIR)/ipset/* $(1)/opt/zapret/ipset/
$(INSTALL_BIN) $(PKG_BUILD_DIR)/blockcheck.sh $(1)/opt/zapret/blockcheck.sh
@ -79,8 +81,18 @@ define Package/$(PKG_NAME)/install
$(INSTALL_BIN) ./init.d.sh $(1)/etc/init.d/zapret
$(INSTALL_DATA) ./config.default $(1)/opt/zapret/config.default
$(INSTALL_DATA) ./ipset/zapret-hosts-google.txt $(1)/opt/zapret/ipset/zapret-hosts-google.txt
$(INSTALL_DATA) ./ipset/zapret-hosts-user.txt $(1)/opt/zapret/ipset/zapret-hosts-user.txt
$(INSTALL_DATA) ./ipset/zapret-hosts-user-exclude.txt $(1)/opt/zapret/ipset/zapret-hosts-user-exclude.txt
$(INSTALL_DATA) ./ipset/zapret-ip-exclude.txt $(1)/opt/zapret/ipset/zapret-ip-exclude.txt
$(INSTALL_DIR) $(1)/opt/zapret/ipset_def
$(INSTALL_DATA) ./ipset/zapret-hosts-google.txt $(1)/opt/zapret/ipset_def/zapret-hosts-google.txt
$(INSTALL_DATA) ./ipset/zapret-hosts-user.txt $(1)/opt/zapret/ipset_def/zapret-hosts-user.txt
$(INSTALL_DATA) ./ipset/zapret-hosts-user-exclude.txt $(1)/opt/zapret/ipset_def/zapret-hosts-user-exclude.txt
$(INSTALL_DATA) ./ipset/zapret-ip-exclude.txt $(1)/opt/zapret/ipset_def/zapret-ip-exclude.txt
$(INSTALL_DIR) $(1)/opt/zapret/init.d
$(INSTALL_DIR) $(1)/opt/zapret/init.d/openwrt
$(INSTALL_DIR) $(1)/opt/zapret/init.d/openwrt/custom.d
$(CP) ./custom.d/* $(1)/opt/zapret/init.d/openwrt/custom.d/
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./uci-def-cfg.sh $(1)/etc/uci-defaults/zapret-uci-def-cfg.sh
$(INSTALL_BIN) ./uci-def-cfg.sh $(1)/opt/zapret/uci-def-cfg.sh
@ -91,6 +103,8 @@ define Package/$(PKG_NAME)/install
$(INSTALL_BIN) ./sync_config.sh $(1)/opt/zapret/sync_config.sh
# Fix permisions
chmod 644 $(1)/opt/zapret/ipset/*.txt
chmod 644 $(1)/opt/zapret/ipset_def/*.txt
chmod 644 $(1)/opt/zapret/init.d/openwrt/custom.d/*.sh
chmod 644 $(1)/opt/zapret/config.default
chmod 755 $(1)/opt/zapret/*.sh
endef
@ -108,7 +122,9 @@ if [ -z "$${IPKG_INSTROOT}" ]; then
fi
if [ "$${PKG_UPGRADE}" = "1" ]; then
# stop service if PKG_UPGRADE
[ -x "/etc/init.d/zapret" ] && /etc/init.d/zapret stop >/dev/null 2>&1
if [ -x "/etc/init.d/zapret" ]; then
/etc/init.d/zapret running && /etc/init.d/zapret stop >/dev/null 2>&1
fi
fi
if [ ! -f "/opt/zapret/ipset/zapret-hosts-google.txt" ]; then
if [ -f "/opt/zapret/ipset/zapret-hosts-user.txt" ]; then
@ -186,8 +202,8 @@ if [ -z "$${IPKG_INSTROOT}" ]; then
. "$${ZAPRET_BASE}/common/fwtype.sh"
. "$${ZAPRET_BASE}/common/nft.sh"
. "$${ZAPRET_BASE}/common/installer.sh"
/etc/init.d/zapret running && /etc/init.d/zapret stop
/etc/init.d/zapret disable
/etc/init.d/zapret stop
ps w | grep '/opt/zapret/nfq/nfqws' | grep -v grep | awk '{print $$1}' | xargs -r kill -9
remove_openwrt_firewall
nft_del_table

View File

@ -21,8 +21,7 @@ CRONTAB_FILE="/etc/crontabs/root"
function adapt_for_sed
{
local str=$( ( echo $1|sed -r 's/([\$\.\*\/\[\\^])/\\\1/g'|sed 's/[]]/\\]/g' )>&1 )
echo "$str"
echo -n "$1" | tr '\r' ' ' | tr '\n' ' ' | tr '\t' ' ' | sed -r 's/([\$\.\*\/\[\\^])/\\\1/g' | sed 's/[]]/\\]/g'
}
function is_valid_config
@ -91,14 +90,32 @@ function get_run_on_boot_option
fi
}
function restore_ipset_txt
{
local cfgname=$1
if [ -f "$ZAPRET_BASE/ipset_def/$cfgname" ]; then
cp -f "$ZAPRET_BASE/ipset_def/$cfgname" "$ZAPRET_BASE/ipset/$cfgname"
fi
}
function restore_all_ipset_cfg
{
restore_ipset_txt zapret-hosts-google.txt
restore_ipset_txt zapret-hosts-user.txt
restore_ipset_txt zapret-hosts-user-exclude.txt
restore_ipset_txt zapret-ip-exclude.txt.txt
}
function create_default_cfg
{
local cfgname=${1:-$ZAPRET_CFG_NAME}
local opt_flags=${1:--}
local opt_strat=$2
local cfgname=${3:-$ZAPRET_CFG_NAME}
local cfgfile=/etc/config/$cfgname
rm -f $cfgfile
touch $cfgfile
uci set $cfgname.config=main
set_cfg_default_values $cfgname
set_cfg_default_values "$opt_flags" "$opt_strat" $cfgname
return 0
}
@ -113,7 +130,7 @@ function merge_cfg_with_def_values
local cfg_sec_name="$( uci -q get $ZAPRET_CFG_NAME.config )"
[ -z "$cfg_sec_name" ] && create_default_cfg
create_default_cfg "$NEWCFGNAME"
create_default_cfg "-" "" "$NEWCFGNAME"
[ ! -f "$NEWCFGFILE" ] && return 1
uci -m -f $cfgfile import "$NEWCFGNAME"
@ -156,4 +173,37 @@ function init_before_start
else
remove_cron_task_logs
fi
return 0
}
function patch_luci_header_ut
{
# INFO: https://github.com/openwrt/luci/pull/7725
local header_ut=/usr/share/ucode/luci/template/header.ut
local runtime_uc=/usr/share/ucode/luci/runtime.uc
local newenv
[ ! -f $header_ut ] && return 0
[ ! -f $runtime_uc ] && return 0
if grep -q "pkgs_update_time" $runtime_uc; then
return 0
fi
if grep -q "pkgs_update_time" $header_ut; then
return 0
fi
sed -i "/^import { access/i import { stat } from 'fs';" $runtime_uc
if ! grep -q "{ stat }" $runtime_uc; then
return 1
fi
newenv="self.env.pkgs_update_time = stat('/lib/apk/db/installed')?.mtime ?? stat('/usr/lib/opkg/status')?.mtime ?? 0;"
newenv=`adapt_for_sed "$newenv"`
sed -i "/self.env.include =/i $newenv" $runtime_uc
if ! grep -q "pkgs_update_time" $runtime_uc; then
return 1
fi
sed -i 's/luci.js?v=\(.*\)"><\/script>/luci.js?v=\1-{{ pkgs_update_time }}"><\/script>/g' $header_ut
if ! grep -q "pkgs_update_time" $header_ut; then
return 1
fi
logger -p notice -t ZAPRET "patch_luci_header_ut: OK"
return 0
}

View File

@ -56,6 +56,13 @@ DESYNC_MARK=0x40000000
DESYNC_MARK_POSTNAT=0x20000000
# do not pass outgoing traffic to tpws/nfqws not marked with this bit
# this setting allows to write your own rules to limit traffic that should be fooled
# for example based on source IP or incoming interface name
# no filter if not defined
FILTER_MARK=""
TPWS_SOCKS_ENABLE=0
# tpws socks listens on this port on localhost and LAN interfaces
TPPORT_SOCKS=987
@ -96,10 +103,10 @@ NFQWS_PORTS_UDP_KEEPALIVE=""
# use <HOSTLIST> and <HOSTLIST_NOAUTO> placeholders to engage standard hostlists and autohostlist in ipset dir
# hostlist markers are replaced to empty string if MODE_FILTER does not satisfy
# <HOSTLIST_NOAUTO> appends ipset/zapret-hosts-auto.txt as normal list
NFQWS_OPT="--filter-tcp=80 <HOSTLIST> --dpi-desync=fake,fakedsplit --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --new --filter-tcp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin --new --filter-udp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --new --filter-udp=443 <HOSTLIST_NOAUTO> --dpi-desync=fake --dpi-desync-repeats=11 --new --filter-tcp=443 <HOSTLIST> --dpi-desync=fake,multidisorder --dpi-desync-split-pos=midsld --dpi-desync-repeats=6 --dpi-desync-fooling=badseq,md5sig"
NFQWS_OPT="--filter-tcp=80 <HOSTLIST> --dpi-desync=fake,fakedsplit --dpi-desync-autottl=2 --dpi-desync-fooling=badsum --new --filter-tcp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt --dpi-desync=fake,multidisorder --dpi-desync-split-pos=1,midsld --dpi-desync-repeats=11 --dpi-desync-fooling=badsum --dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com --new --filter-udp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin --new --filter-udp=443 <HOSTLIST_NOAUTO> --dpi-desync=fake --dpi-desync-repeats=11 --new --filter-tcp=443 <HOSTLIST> --dpi-desync=multidisorder --dpi-desync-split-pos=1,sniext+1,host+1,midsld-2,midsld,midsld+2,endhost-1"
DISABLE_CUSTOM=0
DISABLE_CUSTOM=1
# FlowOffload mode : donttouch,none,software,hardware
FLOWOFFLOAD=none
@ -136,6 +143,11 @@ DISABLE_IPV4=0
# do not work with ipv6
DISABLE_IPV6=1
# drop icmp time exceeded messages for nfqws tampered connections
# in POSTNAT mode this can interfere with default mtr/traceroute in tcp or udp mode. use source port not redirected to nfqws
# set to 0 if you are not expecting connection breakage due to icmp in response to TCP SYN or UDP
FILTER_TTL_EXPIRED_ICMP=1
# select which init script will be used to get ip or host list
# possible values : get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh get_hostlist.sh
# comment if not required

View File

@ -0,0 +1,31 @@
# Stun4ALL (discord audio, discord video, telegram call, etc)
# this custom script runs desync to all stun packets
# NOTE: @ih requires nft 1.0.1+ and updated kernel version. it's confirmed to work on 5.15 (openwrt 23) and not work on 5.10 (openwrt 22)
# can override in config :
NFQWS_OPT_DESYNC_STUN="${NFQWS_OPT_DESYNC_STUN:---dpi-desync=fake --dpi-desync-repeats=2}"
alloc_dnum DNUM_STUN4ALL
alloc_qnum QNUM_STUN4ALL
zapret_custom_daemons()
{
# $1 - 1 - add, 0 - stop
local opt="--qnum=$QNUM_STUN4ALL $NFQWS_OPT_DESYNC_STUN"
do_nfqws $1 $DNUM_STUN4ALL "$opt"
}
zapret_custom_firewall()
{
# $1 - 1 - run, 0 - stop
local f='-p udp -m u32 --u32'
fw_nfqws_post $1 "$f 0>>22&0x3C@4>>16=28:65535&&0>>22&0x3C@12=0x2112A442&&0>>22&0x3C@8&0xC0000003=0" "$f 44>>16=28:65535&&52=0x2112A442&&48&0xC0000003=0" $QNUM_STUN4ALL
}
zapret_custom_firewall_nft()
{
# stop logic is not required
local f="udp length >= 28 @ih,32,32 0x2112A442 @ih,0,2 0 @ih,30,2 0"
nft_fw_nfqws_post "$f" "$f" $QNUM_STUN4ALL
}

View File

@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2024 remittor
function set_cfg_default_values
function set_cfg_reset_values
{
local cfgname=${1:-$ZAPRET_CFG_NAME}
local TAB="$( echo -n -e '\t' )"
@ -14,8 +14,9 @@ function set_cfg_default_values
set $cfgname.config.INIT_APPLY_FW='1'
set $cfgname.config.DISABLE_IPV4='0'
set $cfgname.config.DISABLE_IPV6='1'
set $cfgname.config.FILTER_TTL_EXPIRED_ICMP='1'
set $cfgname.config.MODE_FILTER='hostlist'
set $cfgname.config.DISABLE_CUSTOM='0'
set $cfgname.config.DISABLE_CUSTOM='1'
set $cfgname.config.WS_USER='daemon'
set $cfgname.config.DAEMON_LOG_ENABLE='0'
set $cfgname.config.DAEMON_LOG_FILE='/tmp/zapret+<DAEMON_NAME>+<DAEMON_IDNUM>+<DAEMON_CFGNAME>.log'
@ -28,6 +29,7 @@ function set_cfg_default_values
set $cfgname.config.NFQWS_ENABLE='1'
set $cfgname.config.DESYNC_MARK='0x40000000'
set $cfgname.config.DESYNC_MARK_POSTNAT='0x20000000'
set $cfgname.config.FILTER_MARK='$TAB'
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_TCP_PKT_OUT='9'
@ -36,36 +38,235 @@ function set_cfg_default_values
set $cfgname.config.NFQWS_UDP_PKT_IN='0'
set $cfgname.config.NFQWS_PORTS_TCP_KEEPALIVE='0'
set $cfgname.config.NFQWS_PORTS_UDP_KEEPALIVE='0'
set $cfgname.config.NFQWS_OPT="
--filter-tcp=80 <HOSTLIST>
--dpi-desync=fake,fakedsplit
--dpi-desync-autottl=2
--dpi-desync-fooling=md5sig
--new
--filter-tcp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--dpi-desync=fake,multidisorder
--dpi-desync-split-pos=1,midsld
--dpi-desync-repeats=11
--dpi-desync-fooling=md5sig
--dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--new
--filter-udp=443 --hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--dpi-desync=fake
--dpi-desync-repeats=11
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
--new
--filter-udp=443 <HOSTLIST_NOAUTO>
--dpi-desync=fake
--dpi-desync-repeats=11
--new
--filter-tcp=443 <HOSTLIST>
--dpi-desync=fake,multidisorder
--dpi-desync-split-pos=midsld
--dpi-desync-repeats=6
--dpi-desync-fooling=badseq,md5sig
"
# save changes
commit $cfgname
EOF
return 0
}
function clear_nfqws_strat
{
local cfgname=${1:-$ZAPRET_CFG_NAME}
local TAB="$( echo -n -e '\t' )"
uci batch <<-EOF
set $cfgname.config.MODE_FILTER='hostlist'
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT='$TAB'
commit $cfgname
EOF
}
function set_cfg_nfqws_strat
{
local strat=${1:--}
local cfgname=${2:-$ZAPRET_CFG_NAME}
local TAB="$( echo -n -e '\t' )"
uci batch <<-EOF
set $cfgname.config.MODE_FILTER='hostlist'
commit $cfgname
EOF
if [ "$strat" = "empty" ]; then
clear_nfqws_strat $cfgname
fi
if [ "$strat" = "v1_by_StressOzz" ]; then
uci batch <<-EOF
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT="
# Strategy $strat
--filter-tcp=443 <HOSTLIST>
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--dpi-desync=fake,multidisorder
--dpi-desync-split-seqovl=681
--dpi-desync-split-pos=1
--dpi-desync-fooling=badseq
--dpi-desync-badseq-increment=10000000
--dpi-desync-repeats=2
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=fonts.google.com
--new
--filter-udp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--dpi-desync=fake
--dpi-desync-repeats=6
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
"
commit $cfgname
EOF
fi
if [ "$strat" = "v2_by_StressOzz" ]; then
uci batch <<-EOF
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT="
# Strategy $strat
--filter-tcp=443 <HOSTLIST>
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude-domains=openwrt.org
--dpi-desync=fake,fakeddisorder
--dpi-desync-split-pos=10,midsld
--dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=fonts.google.com
--dpi-desync-fake-tls=0x0F0F0F0F
--dpi-desync-fake-tls-mod=none
--dpi-desync-fakedsplit-pattern=/opt/zapret/files/fake/tls_clienthello_vk_com.bin
--dpi-desync-split-seqovl=336
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_gosuslugi_ru.bin
--dpi-desync-fooling=badseq,badsum
--dpi-desync-badseq-increment=0
--new
--filter-udp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--dpi-desync=fake
--dpi-desync-repeats=6
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
"
commit $cfgname
EOF
fi
if [ "$strat" = "v3_by_StressOzz" ]; then
uci batch <<-EOF
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT="
# Strategy $strat
--filter-tcp=443 <HOSTLIST>
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude-domains=openwrt.org
--dpi-desync=fake,fakeddisorder
--dpi-desync-split-pos=10,midsld
--dpi-desync-fake-tls=/opt/zapret/files/fake/t2.bin
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=m.ok.ru
--dpi-desync-fake-tls=0x0F0F0F0F
--dpi-desync-fake-tls-mod=none
--dpi-desync-fakedsplit-pattern=/opt/zapret/files/fake/tls_clienthello_vk_com.bin
--dpi-desync-split-seqovl=336
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_gosuslugi_ru.bin
--dpi-desync-fooling=badseq,badsum
--dpi-desync-badseq-increment=0
--new
--filter-udp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--dpi-desync=fake
--dpi-desync-repeats=6
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
"
commit $cfgname
EOF
fi
if [ "$strat" = "v4_by_StressOzz" ]; then
uci batch <<-EOF
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT="
# Strategy $strat
--filter-tcp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--hostlist-exclude-domains=openwrt.org
--dpi-desync=fake,multisplit
--dpi-desync-split-pos=2,sld
--dpi-desync-fake-tls=0x0F0F0F0F
--dpi-desync-fake-tls=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=google.com
--dpi-desync-split-seqovl=2108
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--dpi-desync-fooling=badseq
--new
--filter-tcp=443 <HOSTLIST>
--hostlist-exclude-domains=openwrt.org
--dpi-desync-any-protocol=1
--dpi-desync-cutoff=n5
--dpi-desync=multisplit
--dpi-desync-split-seqovl=582
--dpi-desync-split-pos=1
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/4pda.bin
--new
--filter-udp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--dpi-desync=fake
--dpi-desync-repeats=6
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
"
commit $cfgname
EOF
fi
if [ "$strat" = "v5_by_StressOzz" ]; then
uci batch <<-EOF
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
set $cfgname.config.NFQWS_PORTS_UDP='443'
set $cfgname.config.NFQWS_OPT="
# Strategy $strat
--filter-tcp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--hostlist-exclude-domains=openwrt.org
--ip-id=zero
--dpi-desync=multisplit
--dpi-desync-split-seqovl=681
--dpi-desync-split-pos=1
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
--new
--filter-tcp=443 <HOSTLIST>
--hostlist-exclude-domains=openwrt.org
--dpi-desync=fake,fakeddisorder
--dpi-desync-split-pos=10,midsld
--dpi-desync-fake-tls=/opt/zapret/files/fake/max.bin
--dpi-desync-fake-tls-mod=rnd,dupsid
--dpi-desync-fake-tls=0x0F0F0F0F
--dpi-desync-fake-tls-mod=none
--dpi-desync-fakedsplit-pattern=/opt/zapret/files/fake/tls_clienthello_vk_com.bin
--dpi-desync-fooling=badseq,badsum
--dpi-desync-badseq-increment=0
--new
--filter-udp=443
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
--dpi-desync=fake
--dpi-desync-repeats=6
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
"
commit $cfgname
EOF
fi
return 0
}
function set_cfg_default_values
{
local opt_flags=${1:--}
local opt_strat=${2:-v2_by_StressOzz}
local cfgname=${3:-$ZAPRET_CFG_NAME}
if ! echo "$opt_flags" | grep -q "(skip_base)"; then
set_cfg_reset_values $cfgname
fi
if [ "$opt_strat" != "-" ]; then
set_cfg_nfqws_strat "$opt_strat" $cfgname
fi
if echo "$opt_flags" | grep -q "(set_mode_autohostlist)"; then
uci batch <<-EOF
set $cfgname.config.MODE_FILTER='autohostlist'
commit $cfgname
EOF
fi
return 0
}

BIN
zapret/files/fake/4pda.bin Normal file

Binary file not shown.

BIN
zapret/files/fake/max.bin Normal file

Binary file not shown.

BIN
zapret/files/fake/t2.bin Normal file

Binary file not shown.

View File

@ -25,6 +25,7 @@ is_run_on_boot && IS_RUN_ON_BOOT=1 || IS_RUN_ON_BOOT=0
function enable
{
local run_on_boot=""
patch_luci_header_ut
if [ "$IS_RUN_ON_BOOT" = "1" ]; then
if [ -n "$ZAPRET_CFG_SEC_NAME" ]; then
run_on_boot=$( get_run_on_boot_option )
@ -59,6 +60,7 @@ function enabled
function boot
{
local run_on_boot=""
patch_luci_header_ut
if [ "$IS_RUN_ON_BOOT" = "1" ]; then
if [ -n "$ZAPRET_CFG_SEC_NAME" ]; then
run_on_boot=$( get_run_on_boot_option )

View File

@ -1,13 +1,198 @@
cdn.youtube.com
fonts.googleapis.com
fonts.gstatic.com
ggpht.com
googleapis.com
googleusercontent.com
googlevideo.com
youtubei.googleapis.com
ytimg.com
yt3.ggpht.com
yt4.ggpht.com
youtube.com
youtubeembeddedplayer.googleapis.com
ytimg.l.google.com
i.ytimg.com
i9.ytimg.com
jnn-pa.googleapis.com
kids.youtube.com
m.youtube.com
manifest.googlevideo.com
music.youtube.com
nhacmp3youtube.com
returnyoutubedislikeapi.com
s.ytimg.com
signaler-pa.youtube.com
studio.youtube.com
tv.youtube.com
wide-youtube.l.google.com
withyoutube.com
youtu.be
youtube.com
youtube.googleapis.com
youtubeeducation.com
youtubeembeddedplayer.googleapis.com
youtubefanfest.com
youtubegaming.com
youtubei.googleapis.com
youtubekids.com
youtubemobilesupport.com
youtube-nocookie.com
youtube-ui.l.google.com
yt.be
yt3.ggpht.com
yt3.googleusercontent.com
yt4.ggpht.com
ytimg.com
ytimg.l.google.com
yting.com
yt-video-upload.l.google.com
wide-youtube.l.google.com
youtube.ae
youtube.al
youtube.am
youtube.at
youtube.az
youtube.ba
youtube.be
youtube.bg
youtube.bh
youtube.bo
youtube.by
youtube.ca
youtube.cat
youtube.ch
youtube.cl
youtube.co
youtube.co.ae
youtube.co.at
youtube.co.cr
youtube.co.hu
youtube.co.id
youtube.co.il
youtube.co.in
youtube.co.jp
youtube.co.ke
youtube.co.kr
youtube.co.ma
youtube.co.nz
youtube.co.th
youtube.co.tz
youtube.co.ug
youtube.co.uk
youtube.co.ve
youtube.co.za
youtube.co.zw
youtube.com.ar
youtube.com.au
youtube.com.az
youtube.com.bd
youtube.com.bh
youtube.com.bo
youtube.com.br
youtube.com.by
youtube.com.co
youtube.com.do
youtube.com.ec
youtube.com.ee
youtube.com.eg
youtube.com.es
youtube.com.gh
youtube.com.gr
youtube.com.gt
youtube.com.hk
youtube.com.hn
youtube.com.hr
youtube.com.jm
youtube.com.jo
youtube.com.kw
youtube.com.lb
youtube.com.lv
youtube.com.ly
youtube.com.mk
youtube.com.mt
youtube.com.mx
youtube.com.my
youtube.com.ng
youtube.com.ni
youtube.com.om
youtube.com.pa
youtube.com.pe
youtube.com.ph
youtube.com.pk
youtube.com.pt
youtube.com.py
youtube.com.qa
youtube.com.ro
youtube.com.sa
youtube.com.sg
youtube.com.sv
youtube.com.tn
youtube.com.tr
youtube.com.tw
youtube.com.ua
youtube.com.uy
youtube.com.ve
youtube.cr
youtube.cz
youtube.de
youtube.dk
youtube.ee
youtube.es
youtube.fi
youtube.fr
youtube.ge
youtube.gr
youtube.gt
youtube.hk
youtube.hr
youtube.hu
youtube.ie
youtube.in
youtube.iq
youtube.is
youtube.it
youtube.jo
youtube.jp
youtube.kr
youtube.kz
youtube.la
youtube.lk
youtube.lt
youtube.lu
youtube.lv
youtube.ly
youtube.ma
youtube.md
youtube.me
youtube.mk
youtube.mn
youtube.mx
youtube.my
youtube.ng
youtube.ni
youtube.nl
youtube.no
youtube.pa
youtube.pe
youtube.ph
youtube.pk
youtube.pl
youtube.pr
youtube.pt
youtube.qa
youtube.ro
youtube.rs
youtube.ru
youtube.sa
youtube.se
youtube.sg
youtube.si
youtube.sk
youtube.sn
youtube.soy
youtube.sv
youtube.tn
youtube.tv
youtube.ua
youtube.ug
youtube.uy
youtube.vn
youtubego.co.id
youtubego.co.in
youtubego.com
youtubego.com.br
youtubego.id
youtubego.in

View File

@ -3,18 +3,192 @@
172.16.0.0/12
192.168.0.0/16
169.254.0.0/16
100.64.0.0/10
::1
fc00::/7
fe80::/10
play.google.com
android.com
google-analytics.com
googleusercontent.com
####################################
gstatic.com
gvt1.com
ggpht.com
dl.google.com
dl-ssl.google.com
android.clients.google.com
gvt2.com
gvt3.com
gosuslugi.ru
ipstream.one
#################################### Epicgames
easy.ac
fab.com
quixel.se
quixel.com
eac-cdn.com
paragon.com
spyjinx.com
3lateral.com
fortnite.com
epicgames.com
epicgames.dev
hyprsense.com
sketchfab.com
artstation.com
roborecall.com
twinmotion.com
cubicmotion.com
playparagon.com
realityscan.com
epicgamescdn.com
et.epicgames.com
ol.epicgames.com
radgametools.com
unrealengine.com
api.epicgames.dev
easyanticheat.net
shadowcomplex.com
battlebreakers.com
store.epicgames.com
capturingreality.com
unrealtournament.com
cdn1.unrealengine.com
cdn2.unrealengine.com
accounts.epicgames.com
download.epicgames.com
tracking.epicgames.com
download2.epicgames.com
download3.epicgames.com
download4.epicgames.com
metrics.ol.epicgames.com
datarouter.ol.epicgames.com
fastly-download.epicgames.com
store-content.ak.epicgames.com
static-assets-prod.epicgames.com
epicgames-download1.akamaized.net
launcher-website-prod07.ol.epicgames.com
ut-public-service-prod10.ol.epicgames.com
store-site-backend-static.ak.epicgames.com
library-service.live.use1a.on.epicgames.com
accountportal-website-prod07.ol.epicgames.com
account-public-service-prod03.ol.epicgames.com
catalog-public-service-prod06.ol.epicgames.com
friends-public-service-prod06.ol.epicgames.com
launcher-public-service-prod06.ol.epicgames.com
entitlement-public-service-prod08.ol.epicgames.com
lightswitch-public-service-prod06.ol.epicgames.com
orderprocessor-public-service-ecomprod01.ol.epicgames.com
launcherwaitingroom-public-service-prod06.ol.epicgames.com
datastorage-public-service-liveegs.live.use1a.on.epicgames.com
#################################### Steam
s.team
steam.tv
valve.net
steamcdn.com
steamcdn.net
steamstat.us
valvecdn.com
steam-api.com
steamchat.com
steamdeck.com
steam-chat.com
steamgames.com
steamgames.net
underlords.com
steamserver.net
steamstatic.com
playartifact.com
steam.cdn.on.net
steamcontent.com
steampowered.com
valvecontent.com
valvesoftware.com
valvesoftware.net
steam.cdn.webra.ru
steambroadcast.com
steamcommunity.com
cdn.steamstatic.com
cs.steampowered.com
dl.steam.clngaa.com
steam.ru.qtlglb.com
api.steampowered.com
steam.eca.qtlglb.com
steamusercontent.com
help.steampowered.com
steam.apac.qtlglb.com
steam.naeu.qtlglb.com
cdn.steamcommunity.com
gstore.val.manlaxy.com
login.steampowered.com
media.steampowered.com
partner.steamgames.com
shared.steamstatic.com
steam.cdn.orcon.net.nz
store.steampowered.com
steamcdn-a.akamaihd.net
steampipe.akamaized.net
partner.steampowered.com
steamcdn-a.akamaized.net
steamdeckusercontent.com
support.steampowered.com
checkout.steampowered.com
community.steamstatic.com
steam.cdn.slingshot.co.nz
steammobile.akamaized.net
steamstatic.akamaized.net
steamstore-a.akamaihd.net
steamvideo-a.akamaihd.net
workshop.steampowered.com
cdn.akamai.steamstatic.com
cdn.fastly.steamstatic.com
client-update.queniuqe.com
community.steampowered.com
steamdeckcdn.akamaized.net
steampipe-kr.akamaized.net
clan.fastly.steamstatic.com
steamcontent-a.akamaihd.net
steambroadcast.akamaized.net
steamcommunity.akamaized.net
store.akamai.steamstatic.com
store.fastly.steamstatic.com
scontent.steamusercontent.com
shared.fastly.steamstatic.com
steamcommunity-a.akamaihd.net
avatars.fastly.steamstatic.com
cdn.cloudflare.steamstatic.com
edge.steam-dns.top.comcast.net
steamcommunity-a.akamaized.net
steamuserimages-a.akamaihd.net
steampipe-partner.akamaized.net
steamusercontent-a.akamaihd.net
client-download.steampowered.com
community.fastly.steamstatic.com
store.cloudflare.steamstatic.com
community.cloudflare.steamstatic.com
steamcdn-a.akamaihd.net.edgesuite.net
steamcloudsweden.blob.core.windows.net
steamcommunity.cloudflare.steamstatic.com
steamcommunity-a.akamaihd.net.edgesuite.net
#################################### OpenWRT
github.com
openwrt.org
gh.openwrt.org
cdn.openwrt.org
dev.openwrt.org
git.openwrt.org
lede-project.org
wiki.openwrt.org
forum.openwrt.org
lists.openwrt.org
openwrt.gitlab.io
archive.openwrt.org
downloads.openwrt.org
fwdownloads.openwrt.org
mirror-01.infra.openwrt.org
mirror-02.infra.openwrt.org
mirror-03.infra.openwrt.org
mirror-04.infra.openwrt.org
#################################### UbisoftConnect
ubi.com
ubisoft.com
store.ubi.com
ubisoftconnect.com
connect.ubisoft.com
drops-register.ubi.com
public-ubiservices.ubi.com
ubisoftconnect.cdn.ubi.com
uplaypc-s-ubisoft.cdn.ubi.com
uplaypc-s-ubisoft-ww.cdn.ubi.com
ubisoft-orbit-savegames.s3.amazonaws.com
ubisoft-uplay-savegames.s3.amazonaws.com

View File

@ -1 +1,23 @@
abra-cadabra.com
dis.gd
discord-attachments-uploads-prd.storage.googleapis.com
discord.app
discord.co
discord.com
discord.design
discord.dev
discord.gift
discord.gifts
discord.gg
discord.media
discord.new
discord.store
discord.status
discord-activities.com
discordactivities.com
discordapp.com
discordapp.net
discordcdn.com
discordmerch.com
discordpartygames.com
discordsays.com
discordsez.com

View File

@ -5,14 +5,29 @@
cfg_run_on_boot="$( uci -q get zapret.config.run_on_boot )"
create_default_cfg
opt_flags=${1:--}
opt_strat=$2
if echo "$opt_flags" | grep -q "(reset_ipset)"; then
restore_all_ipset_cfg
fi
create_default_cfg "$opt_flags" "$opt_strat"
if [ "$cfg_run_on_boot" = "1" ]; then
uci set zapret.config.run_on_boot=1
uci commit
fi
if [ "$1" = "sync" ]; then
ZAPRET_SYNC_CONFIG=0
if [ "$opt_flags" = "sync" ]; then
ZAPRET_SYNC_CONFIG=1
fi
if echo "$opt_flags" | grep -q "(sync)"; then
ZAPRET_SYNC_CONFIG=1
fi
if [ "$ZAPRET_SYNC_CONFIG" = "1" ]; then
# renew main config
/opt/zapret/sync_config.sh
fi

View File

@ -80,6 +80,7 @@ sync_param FLOWOFFLOAD
sync_param INIT_APPLY_FW
sync_param DISABLE_IPV4
sync_param DISABLE_IPV6
sync_param FILTER_TTL_EXPIRED_ICMP
sync_param MODE_FILTER
sync_param DISABLE_CUSTOM
sync_param WS_USER str
@ -94,6 +95,7 @@ sync_param AUTOHOSTLIST_DEBUGLOG
sync_param NFQWS_ENABLE
sync_param DESYNC_MARK
sync_param DESYNC_MARK_POSTNAT
sync_param FILTER_MARK str
sync_param NFQWS_PORTS_TCP str
sync_param NFQWS_PORTS_UDP str
sync_param NFQWS_TCP_PKT_OUT str