mirror of
https://github.com/egor-white/zaprett.git
synced 2026-01-06 02:29:59 +05:00
ipsets
This commit is contained in:
@@ -10,24 +10,33 @@ clear_iptables_rules() {
|
||||
start_service() {
|
||||
rm -f /data/adb/modules/zaprett/tmp/*
|
||||
echo "Starting zaprett..."
|
||||
|
||||
|
||||
hostlist=""
|
||||
ipset=""
|
||||
|
||||
case "$list_type" in
|
||||
whitelist)
|
||||
lists="$active_lists"
|
||||
ipsets="$active_ipsets"
|
||||
opt="--hostlist"
|
||||
ipopt="--ipset"
|
||||
;;
|
||||
blacklist)
|
||||
lists="$active_exclude_lists"
|
||||
ipsets="$active_exclude_ipsets"
|
||||
opt="--hostlist-exclude"
|
||||
ipopt="--ipset-exclude"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown list-type: $list_type" >&2
|
||||
lists=""
|
||||
ipsets=""
|
||||
opt=""
|
||||
ipopt=""
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
if [ -n "$lists" ] && [ -n "$opt" ]; then
|
||||
for itm in $(echo "$lists" | tr ',' ' ' | sort -u); do
|
||||
if [ -f "$itm" ]; then
|
||||
@@ -41,6 +50,19 @@ start_service() {
|
||||
done
|
||||
fi
|
||||
|
||||
if [ -n "$ipsets" ] && [ -n "$ipopt" ]; then
|
||||
for ipt in $(echo "$ipsets" | tr ',' ' ' | sort -u); do
|
||||
if [ -f "$ipt" ]; then
|
||||
dst="/data/adb/modules/zaprett/tmp/$(basename "$ipt")"
|
||||
cp "$ipt" "$dst"
|
||||
case "$ipset" in
|
||||
*"$ipopt=$dst"*) ;;
|
||||
*) ipset="$ipset $ipopt=$dst" ;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
config=""
|
||||
if [[ -n "$strategy" && -f "$strategy" ]]; then
|
||||
config="$(eval "echo \"$(<"$strategy")\"")"
|
||||
@@ -54,9 +76,9 @@ start_service() {
|
||||
config="$config --filter-udp=443 $hostlist --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic=${zaprettdir}/bin/quic_initial_www_google_com.bin --new"
|
||||
config="$config --filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=6 $hostlist"
|
||||
fi
|
||||
|
||||
|
||||
sysctl net.netfilter.nf_conntrack_tcp_be_liberal=1 > /dev/null
|
||||
|
||||
|
||||
iptables -t mangle -I POSTROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t mangle -I PREROUTING -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
iptables -t filter -A FORWARD -j NFQUEUE --queue-num 200 --queue-bypass
|
||||
@@ -92,7 +114,7 @@ if [ "$1" == "restart" ]; then
|
||||
fi
|
||||
|
||||
if [ "$1" == "help" ]; then
|
||||
echo -e "Помощь по модулю zaprett:\nzaprett start - запуск сервиса\nzaprett stop - остановка сервиса\nzaprett restart - перезапуск сервиса\nzaprett status - статус сервиса\nzaprett module-ver - версия модуля\nzaprett bin-ver - версия бинарных файлов"
|
||||
echo -e "Помощь по модулю zaprett:\nzaprett start - запуск сервиса\nzaprett stop - остановка сервиса\nzaprett restart - перезапуск сервиса\nzaprett status - статус сервиса\nzaprett module-ver - версия модуля\nzaprett bin-ver - версия бинарных файлов\nzaprett autostart - переключение автозапуска модуля\nzaprett get-autostart - получить активен ли автозапуск"
|
||||
fi
|
||||
|
||||
if [ "$1" == "module-ver" ]; then
|
||||
@@ -103,6 +125,26 @@ if [ "$1" == "bin-ver" ]; then
|
||||
nfqws --version | grep -o 'version v[0-9.]*' | head -n1 | cut -d' ' -f2
|
||||
fi
|
||||
|
||||
if [ "$1" == "autostart" ]; then
|
||||
FILE="/data/adb/modules/zaprett/autostart"
|
||||
if [ -f "$FILE" ]; then
|
||||
rm "$FILE"
|
||||
echo "false"
|
||||
else
|
||||
touch "$FILE"
|
||||
echo "true"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" == "get-autostart" ]; then
|
||||
FILE="/data/adb/modules/zaprett/autostart"
|
||||
if [ -f "$FILE" ]; then
|
||||
echo "true"
|
||||
else
|
||||
echo "false"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
echo "zaprett installed. Telegram: t.me/zaprett_module"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user