diff --git a/config b/config index 1876714..6d0083d 100644 --- a/config +++ b/config @@ -9,7 +9,7 @@ # options for ipsets # maximum number of elements in sets. also used for nft sets -SET_MAXELEM=262144 +SET_MAXELEM=522288 # too low hashsize can cause memory allocation errors on low RAM systems , even if RAM is enough # too large hashsize will waste lots of RAM IPSET_OPT="hashsize 262144 maxelem $SET_MAXELEM" diff --git a/docs/readme.txt b/docs/readme.txt index 27bfedb..c4f4272 100644 --- a/docs/readme.txt +++ b/docs/readme.txt @@ -157,8 +157,6 @@ NFQUEUE работает без изменений. Остальные рассматриваемые здесь функции могут быть перенесены на nftables. Рекомендуется версия nft 1.0.2 или выше. -Относительно старые версии ядра и/или утилиты nft могут вызывать ошибки. -В частности, на ubuntu 18.04 с ядром 4.15 будут проблемы. В 20.04 - работает. Когда это работать не будет @@ -688,7 +686,7 @@ Cкрипты с названием get_antifilter_* оперируют спис 5) ipset/get_antifilter_ip.sh. получает лист https://antifilter.network/download/ip.lst. -7) ipset/get_antifilter_ipsmart.sh. получает лист https://antifilter.network/download/ipsmart.lst. +6) ipset/get_antifilter_ipsmart.sh. получает лист https://antifilter.network/download/ipsmart.lst. это умная суммаризация отдельных адресов из ip.lst по маскам от /32 до /22 количество префиксов измеряется всего лишь десятками тысяч, потому это лучшее решение для роутера с 64 Mb RAM @@ -696,10 +694,18 @@ Cкрипты с названием get_antifilter_* оперируют спис это суммаризация отдельных адресов из ip.lst по маске /24 количество префиксов измеряется всего лишь десятками тысяч, потому можно использовать на роутерах с 64 Mb RAM -Все варианты рассмотренных скриптов автоматически создают и заполняют ipset. -Варианты 2-7 дополнительно вызывают вариант 1. +8) ipset/get_antifilter_ipresolve.sh. получает лист https://antifilter.download/list/ipresolve.lst. +пре-ресолвленный список, аналогичный получаемый при помощи get_reestr_resolve +сотни тысяч IP, на роутерах с 64 Mb использовать не рекомендуется -8) ipset/get_config.sh. этот скрипт вызывает то, что прописано в переменной GETLIST из файла config +9) ipset/get_antifilter_allyouneed.sh. получает лист https://antifilter.download/list/allyouneed.lst. +Суммарный список префиксов, созданный из ipsum.lst и subnet.lst. +количество префиксов измеряется всего лишь десятками тысяч, потому можно использовать на роутерах с 64 Mb RAM + +Все варианты рассмотренных скриптов автоматически создают и заполняют ipset. +Варианты 2-9 дополнительно вызывают вариант 1. + +10) ipset/get_config.sh. этот скрипт вызывает то, что прописано в переменной GETLIST из файла config Если переменная не определена, то ресолвятся лишь листы для ipset nozapret/nozapret6. Листы РКН все время изменяются. Возникают новые тенденции. Требования к RAM могут меняться. diff --git a/ipset/antifilter.helper b/ipset/antifilter.helper index aec3cae..0508209 100644 --- a/ipset/antifilter.helper +++ b/ipset/antifilter.helper @@ -8,7 +8,7 @@ get_antifilter() curl --fail --max-time 150 --connect-timeout 20 --max-filesize 41943040 -k -L "$1" | cut_local >"$ZIPLISTTMP" && { dlsize=$(LANG=C wc -c "$ZIPLISTTMP" | xargs | cut -f 1 -d ' ') - if [ $dlsize -lt 204800 ]; then + if [ $dlsize -lt 102400 ]; then echo list file is too small. can be bad. exit 2 fi diff --git a/ipset/get_antifilter_allyouneed.sh b/ipset/get_antifilter_allyouneed.sh new file mode 100755 index 0000000..a5b3d22 --- /dev/null +++ b/ipset/get_antifilter_allyouneed.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +IPSET_DIR="$(dirname "$0")" +IPSET_DIR="$(cd "$IPSET_DIR"; pwd)" + +. "$IPSET_DIR/def.sh" + +getuser && { + . "$IPSET_DIR/antifilter.helper" + get_antifilter https://antifilter.download/list/allyouneed.lst "$ZIPLIST" +} + +"$IPSET_DIR/create_ipset.sh" diff --git a/ipset/get_antifilter_ipresolve.sh b/ipset/get_antifilter_ipresolve.sh new file mode 100755 index 0000000..de08e28 --- /dev/null +++ b/ipset/get_antifilter_ipresolve.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +IPSET_DIR="$(dirname "$0")" +IPSET_DIR="$(cd "$IPSET_DIR"; pwd)" + +. "$IPSET_DIR/def.sh" + +getuser && { + . "$IPSET_DIR/antifilter.helper" + get_antifilter https://antifilter.download/list/ipresolve.lst "$ZIPLIST" +} + +"$IPSET_DIR/create_ipset.sh"