bol-van / zapret

DPI bypass multi platform
7.47k stars 593 forks source link

Может кто-то переписать батник для винды в кастом скрипт для OpenWrt? #592

Open Th3Nigel opened 4 days ago

Th3Nigel commented 4 days ago

https://github.com/Flowseal/zapret-discord-youtube батник discord.bat работает как часы, синтаксис разный, может кто-то переписать чтоб из под zapret на OpenWrt завелось?

@echo off
chcp 65001 >nul
:: 65001 - UTF-8

cd /d "%~dp0"

set BIN=%~dp0bin\

start "zapret: discord" /min "%BIN%winws.exe" --wf-tcp=443 --wf-udp=443,50000-65535 ^
--filter-udp=443 --hostlist="list-discord.txt" --dpi-desync=fake --dpi-desync-udplen-increment=10 --dpi-desync-repeats=6 --dpi-desync-udplen-pattern=0xDEADBEEF --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^
--filter-tcp=443 --hostlist="list-discord.txt" --dpi-desync=fake,split2 --dpi-desync-autottl=2 --dpi-desync-fooling=md5sig --dpi-desync-fake-tls="%BIN%tls_clienthello_www_google_com.bin"
bol-van commented 4 days ago

Уже есть кастом для voice составляющей. Блокировка сайтов обходится обычным образом.

Th3Nigel commented 4 days ago

Уже есть кастом для voice составляющей

image Он у меня почему-то вообще не работает, пытался подставить похожие параметры как в этом батнике, так сказать скрестить, но получилось максимум - что на мобиле приложение заходит в онйлан, можно писать, но воис всё равно не пашет. А на пеке вообще приложение не может законнектиться. Только через браузер раза с десятого. Если скрипт 50-discord вообще не менять, то у меня даже сайт дискорда не открывается

Th3Nigel commented 4 days ago

Либо так вечно висит, если через браузер image

Th3Nigel commented 4 days ago

Запускаю в кастом режиме + autohostlist, в "zapret-hosts-user.txt" прописаны все хосты дискорда как в приведённом батнике, в папке custom.d два скрипта: "10-inherit-nfqws" и "50-discord"

bol-van commented 4 days ago

Кастом не работает с веб составляющей. Ее надо обходить отдельно стандартным образом. Стратегия уже есть, ее надо лишь корректно засунуть в конфиг. Для задействования стандартного режима nfqws достаточно переписать в custom.d 10-inherit-nfqws

Th3Nigel commented 4 days ago

Для задействования стандартного режима nfqws достаточно переписать в custom.d 10-inherit-nfqws

Именно так и делаю, остальные заблоченные сайты открываются нормально image

Th3Nigel commented 4 days ago

Конфиг сейчас так выглядит

# this file is included from init scripts
# change values here

# can help in case /tmp has not enough space
TMPDIR=/opt/zapret/tmp

# redefine user for zapret daemons. required on Keenetic
#WS_USER=nobody

# override firewall type : iptables,nftables,ipfw
FWTYPE=nftables

# options for ipsets
# maximum number of elements in sets. also used for nft sets
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"
# dynamically generate additional ip. $1 = ipset/nfset/table name
#IPSET_HOOK="/etc/zapret.ipset.hook"

# options for ip2net. "-4" or "-6" auto added by ipset create script
IP2NET_OPT4="--prefix-length=22-30 --v4-threshold=3/4"
IP2NET_OPT6="--prefix-length=56-64 --v6-threshold=5"
# options for auto hostlist
AUTOHOSTLIST_RETRANS_THRESHOLD=3
AUTOHOSTLIST_FAIL_THRESHOLD=3
AUTOHOSTLIST_FAIL_TIME=60
# 1 = debug autohostlist positives to ipset/zapret-hosts-auto-debug.log
AUTOHOSTLIST_DEBUGLOG=0

# number of parallel threads for domain list resolves
MDIG_THREADS=30

# ipset/*.sh can compress large lists
GZIP_LISTS=1
# command to reload ip/host lists after update
# comment or leave empty for auto backend selection : ipset or ipfw if present
# on BSD systems with PF no auto reloading happens. you must provide your own command
# set to "-" to disable reload
#LISTS_RELOAD="pfctl -f /etc/pf.conf"

# override ports
#HTTP_PORTS=80-81,85
#HTTPS_PORTS=443,500-501
#QUIC_PORTS=443,444

# CHOOSE OPERATION MODE
# MODE : nfqws,tpws,tpws-socks,filter,custom
# nfqws : nfqws for dpi desync
# tpws : tpws transparent mode
# tpws-socks : tpws socks mode
# filter : no daemon, just create ipset or download hostlist
# custom : custom mode. should modify custom init script and add your own code
MODE=custom
# apply fooling to http
MODE_HTTP=1
# for nfqws only. support http keep alives. enable only if DPI checks for http request in any outgoing packet
MODE_HTTP_KEEPALIVE=0
# apply fooling to https
MODE_HTTPS=1
# apply fooling to quic
MODE_QUIC=1
# none,ipset,hostlist,autohostlist
MODE_FILTER=autohostlist

# CHOOSE NFQWS DAEMON OPTIONS for DPI desync mode. run "nfq/nfqws --help" for option list
# SUFFIX VARS define additional lower priority desync profile. it's required if MODE_FILTER=hostlist and strategy has hostlist-incompatible 0-phase desync methods (syndata,wssize)
DESYNC_MARK=0x40000000
DESYNC_MARK_POSTNAT=0x20000000
NFQWS_OPT_DESYNC="--dpi-desync=fake --dpi-desync-ttl=0 --dpi-desync-ttl6=0 --dpi-desync-fooling=badsum"
#NFQWS_OPT_DESYNC_SUFFIX=
#NFQWS_OPT_DESYNC_HTTP=
#NFQWS_OPT_DESYNC_HTTP_SUFFIX=
#NFQWS_OPT_DESYNC_HTTPS=
#NFQWS_OPT_DESYNC_HTTPS_SUFFIX=
#NFQWS_OPT_DESYNC_HTTP6=
#NFQWS_OPT_DESYNC_HTTP6_SUFFIX=
#NFQWS_OPT_DESYNC_HTTPS6=
#NFQWS_OPT_DESYNC_HTTPS6_SUFFIX=
NFQWS_OPT_DESYNC_QUIC="--dpi-desync=fake --dpi-desync-repeats=6"
#NFQWS_OPT_DESYNC_QUIC_SUFFIX=
#NFQWS_OPT_DESYNC_QUIC6=
#NFQWS_OPT_DESYNC_QUIC6_SUFFIX=

# CHOOSE TPWS DAEMON OPTIONS. run "tpws/tpws --help" for option list
# SUFFIX VARS define additional lower priority desync profile. it's required if MODE_FILTER=hostlist and strategy has hostlist-incompatible 0-phase desync methods (mss)
TPWS_OPT="--hostspell=HOST --split-http-req=method --split-pos=3 --oob"
#TPWS_OPT_SUFFIX="--mss 88"

# openwrt only : donttouch,none,software,hardware
FLOWOFFLOAD=donttouch

# openwrt: specify networks to be treated as LAN. default is "lan"
#OPENWRT_LAN="lan lan2 lan3"
# openwrt: specify networks to be treated as WAN. default wans are interfaces with default route
#OPENWRT_WAN4="wan vpn"
#OPENWRT_WAN6="wan6 vpn6"

# for routers based on desktop linux and macos. has no effect in openwrt.
# CHOOSE LAN and optinally WAN/WAN6 NETWORK INTERFACES
# or leave them commented if its not router
# it's possible to specify multiple interfaces like this : IFACE_LAN="eth0 eth1 eth2"
# if IFACE_WAN6 is not defined it take the value of IFACE_WAN
#IFACE_LAN=eth0
#IFACE_WAN=eth1
#IFACE_WAN6="ipsec0 wireguard0 he_net"

# should start/stop command of init scripts apply firewall rules ?
# not applicable to openwrt with firewall3+iptables
INIT_APPLY_FW=1
# firewall apply hooks
#INIT_FW_PRE_UP_HOOK="/etc/firewall.zapret.hook.pre_up"
#INIT_FW_POST_UP_HOOK="/etc/firewall.zapret.hook.post_up"
#INIT_FW_PRE_DOWN_HOOK="/etc/firewall.zapret.hook.pre_down"
#INIT_FW_POST_DOWN_HOOK="/etc/firewall.zapret.hook.post_down"

# do not work with ipv4
#DISABLE_IPV4=1
# do not work with ipv6
DISABLE_IPV6=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
#GETLIST=
bol-van commented 4 days ago

--filter-udp=50000-65535 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-fake-quic="%BIN%quic_initial_www_google_com.bin" --new ^

Тут опять вынужден ОТМЕТИТЬ ТРЭШ с ФЛУДОМ. Так нельзя делать на винде. Там требуется cutoff ограничитель. Такой вариант срет мусором на КАЖДЫЙ исходящий пакет. custom срет только на первый пакет 6 фейками по умолчанию. Ограничитель на количество пакетов, на которые идет срач, регулируется через connbytes. Он стоит 1 для nft, 1:1 для iptables. Можно написать 1-10 для nft, 1:10 для iptables, допустим или временно вовсе его убрать, но тогда будет опять ФЛУД и ТРЭШ