|
|
|
@ -3,7 +3,7 @@ |
|
|
|
|
|
|
|
# can override in config : |
|
|
|
NFQWS_OPT_DESYNC_DISCORD_MEDIA="${NFQWS_OPT_DESYNC_DISCORD_MEDIA:---dpi-desync=fake --dpi-desync-repeats=2}" |
|
|
|
DISCORD_MEDIA_PORT_RANGE="${DISCORD_MEDIA_PORT_RANGE:-50000-50099}" |
|
|
|
DISCORD_MEDIA_PORT_RANGE="${DISCORD_MEDIA_PORT_RANGE:-50000-50099,19294-19344}" |
|
|
|
|
|
|
|
alloc_dnum DNUM_DISCORD_MEDIA |
|
|
|
alloc_qnum QNUM_DISCORD_MEDIA |
|
|
|
@ -21,7 +21,7 @@ zapret_custom_firewall() |
|
|
|
|
|
|
|
local DISABLE_IPV6=1 |
|
|
|
local port_range=$(replace_char - : $DISCORD_MEDIA_PORT_RANGE) |
|
|
|
local f="-p udp --dport $port_range -m u32 --u32" |
|
|
|
local f="-p udp -m multiport --dports $port_range -m u32 --u32" |
|
|
|
# this is simplified test to skip writing monstrous rule. instead of checking 64 bytes for zeroes only check 2 dwords for zero |
|
|
|
fw_nfqws_post $1 "$f 0>>22&0x3C@4>>16=0x52&&0>>22&0x3C@8=0x00010046&&0>>22&0x3C@16=0&&0>>22&0x3C@76=0" '' $QNUM_DISCORD_MEDIA |
|
|
|
} |
|
|
|
@ -30,6 +30,7 @@ zapret_custom_firewall_nft() |
|
|
|
# stop logic is not required |
|
|
|
|
|
|
|
local DISABLE_IPV6=1 |
|
|
|
local f="udp dport $DISCORD_MEDIA_PORT_RANGE udp length == 82 @ih,0,32 0x00010046 @ih,64,128 0x00000000000000000000000000000000 @ih,192,128 0x00000000000000000000000000000000 @ih,320,128 0x00000000000000000000000000000000 @ih,448,128 0x00000000000000000000000000000000" |
|
|
|
local f="udp dport {$DISCORD_MEDIA_PORT_RANGE} udp length == 82 @ih,0,32 0x00010046 @ih,64,128 0x00000000000000000000000000000000 @ih,192,128 0x00000000000000000000000000000000 @ih,320,128 0x00000000000000000000000000000000 @ih,448,128 0x00000000000000000000000000000000" |
|
|
|
|
|
|
|
nft_fw_nfqws_post "$f" '' $QNUM_DISCORD_MEDIA |
|
|
|
} |
|
|
|
|