refactor: module-based strategy architecture
- Add sync_from_upstream.sh: clones Flowseal repo, merges lists/hosts, auto-detects new .bat strategies - Add strategies/*.conf config files (extracted from .bat) - Rewrite run_strategy.sh: loads .conf, substitutes %BIN%/%LISTS%/%GAME_*% using sed (no envsubst) - Rewrite update.sh: pipeline is now sync→rebuild→test→install - Add ensure_wrappers.sh: auto-creates general_*.sh wrappers from .conf - Fix all 'local outside function' runtime bugs - install.sh now calls sync_from_upstream.sh first
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Strategy: general
|
||||
# Description: Standard multisplit strategy
|
||||
# Based on: general.bat (Flowseal 1.9.8c)
|
||||
|
||||
# Common rules
|
||||
RULE1=--filter-udp=443 --hostlist="%LISTS%/list-general.txt" --hostlist="%LISTS%/list-general-user.txt" --hostlist-exclude="%LISTS%/list-exclude.txt" --hostlist-exclude="%LISTS%/list-exclude-user.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%/quic_initial_www_google_com.bin"
|
||||
|
||||
RULE2=--filter-udp=19294-19344,50000-50100 --filter-l7=discord,stun --dpi-desync=fake --dpi-desync-fake-discord="%BIN%/quic_initial_dbankcloud_ru.bin" --dpi-desync-fake-stun="%BIN%/quic_initial_dbankcloud_ru.bin" --dpi-desync-repeats=6
|
||||
|
||||
RULE3=--filter-tcp=2053,2083,2087,2096,8443 --hostlist-domains=discord.media --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%/tls_clienthello_www_google_com.bin"
|
||||
|
||||
RULE4=--filter-tcp=443 --hostlist="%LISTS%/list-google.txt" --ip-id=zero --dpi-desync=multisplit --dpi-desync-split-seqovl=681 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%/tls_clienthello_www_google_com.bin"
|
||||
|
||||
RULE5=--filter-tcp=80,443 --hostlist="%LISTS%/list-general.txt" --hostlist="%LISTS%/list-general-user.txt" --hostlist-exclude="%LISTS%/list-exclude.txt" --hostlist-exclude="%LISTS%/list-exclude-user.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%/tls_clienthello_4pda_to.bin"
|
||||
|
||||
RULE6=--filter-udp=443 --ipset="%LISTS%/ipset-all.txt" --hostlist-exclude="%LISTS%/list-exclude.txt" --hostlist-exclude="%LISTS%/list-exclude-user.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=6 --dpi-desync-fake-quic="%BIN%/quic_initial_www_google_com.bin"
|
||||
|
||||
RULE7=--filter-tcp=80,443,8443 --ipset="%LISTS%/ipset-all.txt" --hostlist-exclude="%LISTS%/list-exclude.txt" --hostlist-exclude="%LISTS%/list-exclude-user.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%/tls_clienthello_4pda_to.bin"
|
||||
|
||||
RULE8=--filter-tcp=%GAME_TCP% --ipset="%LISTS%/ipset-all.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=multisplit --dpi-desync-any-protocol=1 --dpi-desync-cutoff=n3 --dpi-desync-split-seqovl=568 --dpi-desync-split-pos=1 --dpi-desync-split-seqovl-pattern="%BIN%/tls_clienthello_4pda_to.bin"
|
||||
|
||||
RULE9=--filter-udp=%GAME_UDP% --ipset="%LISTS%/ipset-all.txt" --ipset-exclude="%LISTS%/ipset-exclude.txt" --ipset-exclude="%LISTS%/ipset-exclude-user.txt" --dpi-desync=fake --dpi-desync-repeats=12 --dpi-desync-any-protocol=1 --dpi-desync-fake-unknown-udp="%BIN%/quic_initial_dbankcloud_ru.bin" --dpi-desync-cutoff=n2
|
||||
Reference in New Issue
Block a user