mirror of
https://github.com/routerich/RouterichAX3000_configs.git
synced 2025-12-06 11:36:43 +03:00
Check variant bypass
This commit is contained in:
488
awg_config.sh
488
awg_config.sh
@@ -281,6 +281,89 @@ checkAndAddDomainPermanentName()
|
||||
fi
|
||||
}
|
||||
|
||||
install_youtubeunblock_packages() {
|
||||
PKGARCH=$(opkg print-architecture | awk 'BEGIN {max=0} {if ($3 > max) {max = $3; arch = $2}} END {print arch}')
|
||||
VERSION=$(ubus call system board | jsonfilter -e '@.release.version')
|
||||
BASE_URL="https://github.com/Waujito/youtubeUnblock/releases/download/v1.0.0/"
|
||||
PACK_NAME="youtubeUnblock"
|
||||
|
||||
AWG_DIR="/tmp/$PACK_NAME"
|
||||
mkdir -p "$AWG_DIR"
|
||||
|
||||
if opkg list-installed | grep -q $PACK_NAME; then
|
||||
echo "$PACK_NAME already installed"
|
||||
else
|
||||
# Список пакетов, которые нужно проверить и установить/обновить
|
||||
PACKAGES="kmod-nfnetlink-queue kmod-nft-queue kmod-nf-conntrack"
|
||||
|
||||
for pkg in $PACKAGES; do
|
||||
# Проверяем, установлен ли пакет
|
||||
if opkg list-installed | grep -q "^$pkg "; then
|
||||
echo "$pkg already installed"
|
||||
else
|
||||
echo "$pkg not installed. Instal..."
|
||||
opkg install $pkg
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$pkg file installing successfully"
|
||||
else
|
||||
echo "Error installing $pkg Please, install $pkg manually and run the script again"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
YOUTUBEUNBLOCK_FILENAME="youtubeUnblock-1.0.0-10-f37c3dd-${PKGARCH}-openwrt-23.05.ipk"
|
||||
DOWNLOAD_URL="${BASE_URL}${YOUTUBEUNBLOCK_FILENAME}"
|
||||
echo $DOWNLOAD_URL
|
||||
wget -O "$AWG_DIR/$YOUTUBEUNBLOCK_FILENAME" "$DOWNLOAD_URL"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$PACK_NAME file downloaded successfully"
|
||||
else
|
||||
echo "Error downloading $PACK_NAME. Please, install $PACK_NAME manually and run the script again"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
opkg install "$AWG_DIR/$YOUTUBEUNBLOCK_FILENAME"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$PACK_NAME file installing successfully"
|
||||
else
|
||||
echo "Error installing $PACK_NAME. Please, install $PACK_NAME manually and run the script again"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
PACK_NAME="luci-app-youtubeUnblock"
|
||||
if opkg list-installed | grep -q $PACK_NAME; then
|
||||
echo "$PACK_NAME already installed"
|
||||
else
|
||||
PACK_NAME="luci-app-youtubeUnblock"
|
||||
YOUTUBEUNBLOCK_FILENAME="luci-app-youtubeUnblock-1.0.0-10-f37c3dd.ipk"
|
||||
DOWNLOAD_URL="${BASE_URL}${YOUTUBEUNBLOCK_FILENAME}"
|
||||
echo $DOWNLOAD_URL
|
||||
wget -O "$AWG_DIR/$YOUTUBEUNBLOCK_FILENAME" "$DOWNLOAD_URL"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$PACK_NAME file downloaded successfully"
|
||||
else
|
||||
echo "Error downloading $PACK_NAME. Please, install $PACK_NAME manually and run the script again"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
opkg install "$AWG_DIR/$YOUTUBEUNBLOCK_FILENAME"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "$PACK_NAME file installing successfully"
|
||||
else
|
||||
echo "Error installing $PACK_NAME. Please, install $PACK_NAME manually and run the script again"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf "$AWG_DIR"
|
||||
}
|
||||
|
||||
echo "Update list packages..."
|
||||
opkg update
|
||||
|
||||
@@ -317,8 +400,9 @@ DIR_BACKUP="/root/backup2"
|
||||
config_files="network
|
||||
firewall
|
||||
https-dns-proxy
|
||||
youtubeUnblock
|
||||
dhcp"
|
||||
URL="https://raw.githubusercontent.com/routerich/RouterichAX3000_configs/refs/heads/main"
|
||||
URL="https://raw.githubusercontent.com/routerich/RouterichAX3000_configs/refs/heads/beta"
|
||||
|
||||
checkPackageAndInstall "https-dns-proxy" "0"
|
||||
|
||||
@@ -365,60 +449,71 @@ uci set sing-box.main.user='root'
|
||||
uci commit sing-box
|
||||
|
||||
printf "\033[32;1mAutomatic generate config AmneziaWG WARP (n) or manual input parameters for AmneziaWG (y)...\033[0m\n"
|
||||
countRepeatAWGGen=0
|
||||
echo "Input manual parameters AmneziaWG? (y/n): "
|
||||
read is_manual_input_parameters
|
||||
if [ "$is_manual_input_parameters" = "y" ] || [ "$is_manual_input_parameters" = "Y" ]
|
||||
then
|
||||
read -r -p "Enter the private key (from [Interface]):"$'\n' PrivateKey
|
||||
read -r -p "Enter S1 value (from [Interface]):"$'\n' S1
|
||||
read -r -p "Enter S2 value (from [Interface]):"$'\n' S2
|
||||
read -r -p "Enter Jc value (from [Interface]):"$'\n' Jc
|
||||
read -r -p "Enter Jmin value (from [Interface]):"$'\n' Jmin
|
||||
read -r -p "Enter Jmax value (from [Interface]):"$'\n' Jmax
|
||||
read -r -p "Enter H1 value (from [Interface]):"$'\n' H1
|
||||
read -r -p "Enter H2 value (from [Interface]):"$'\n' H2
|
||||
read -r -p "Enter H3 value (from [Interface]):"$'\n' H3
|
||||
read -r -p "Enter H4 value (from [Interface]):"$'\n' H4
|
||||
|
||||
while true; do
|
||||
read -r -p "Enter internal IP address with subnet, example 192.168.100.5/24 (from [Interface]):"$'\n' Address
|
||||
if echo "$Address" | egrep -oq '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]+)?$'; then
|
||||
break
|
||||
else
|
||||
echo "This IP is not valid. Please repeat"
|
||||
fi
|
||||
done
|
||||
|
||||
read -r -p "Enter the public key (from [Peer]):"$'\n' PublicKey
|
||||
read -r -p "Enter Endpoint host without port (Domain or IP) (from [Peer]):"$'\n' EndpointIP
|
||||
read -r -p "Enter Endpoint host port (from [Peer]) [51820]:"$'\n' EndpointPort
|
||||
|
||||
DNS="1.1.1.1"
|
||||
MTU=1280
|
||||
AllowedIPs="0.0.0.0/0"
|
||||
else
|
||||
warp_config="Error"
|
||||
printf "\033[32;1mRequest WARP config... Attempt #1\033[0m\n"
|
||||
result=$(requestConfWARP1)
|
||||
warpGen=$(check_request "$result" 1)
|
||||
if [ "$warpGen" = "Error" ]
|
||||
currIter=0
|
||||
isExit=0
|
||||
while [ $currIter -lt $countRepeatAWGGen ] && [ "$isExit" = "0" ]
|
||||
do
|
||||
currIter=$(( $currIter + 1 ))
|
||||
printf "\033[32;1mCreate and Check AWG WARP... Attempt #$currIter... Please wait...\033[0m\n"
|
||||
if [ "$is_manual_input_parameters" = "y" ] || [ "$is_manual_input_parameters" = "Y" ]
|
||||
then
|
||||
printf "\033[32;1mRequest WARP config... Attempt #2\033[0m\n"
|
||||
result=$(requestConfWARP2)
|
||||
warpGen=$(check_request "$result" 2)
|
||||
read -r -p "Enter the private key (from [Interface]):"$'\n' PrivateKey
|
||||
read -r -p "Enter S1 value (from [Interface]):"$'\n' S1
|
||||
read -r -p "Enter S2 value (from [Interface]):"$'\n' S2
|
||||
read -r -p "Enter Jc value (from [Interface]):"$'\n' Jc
|
||||
read -r -p "Enter Jmin value (from [Interface]):"$'\n' Jmin
|
||||
read -r -p "Enter Jmax value (from [Interface]):"$'\n' Jmax
|
||||
read -r -p "Enter H1 value (from [Interface]):"$'\n' H1
|
||||
read -r -p "Enter H2 value (from [Interface]):"$'\n' H2
|
||||
read -r -p "Enter H3 value (from [Interface]):"$'\n' H3
|
||||
read -r -p "Enter H4 value (from [Interface]):"$'\n' H4
|
||||
|
||||
while true; do
|
||||
read -r -p "Enter internal IP address with subnet, example 192.168.100.5/24 (from [Interface]):"$'\n' Address
|
||||
if echo "$Address" | egrep -oq '^([0-9]{1,3}\.){3}[0-9]{1,3}(/[0-9]+)?$'; then
|
||||
break
|
||||
else
|
||||
echo "This IP is not valid. Please repeat"
|
||||
fi
|
||||
done
|
||||
|
||||
read -r -p "Enter the public key (from [Peer]):"$'\n' PublicKey
|
||||
read -r -p "Enter Endpoint host without port (Domain or IP) (from [Peer]):"$'\n' EndpointIP
|
||||
read -r -p "Enter Endpoint host port (from [Peer]) [51820]:"$'\n' EndpointPort
|
||||
|
||||
DNS="1.1.1.1"
|
||||
MTU=1280
|
||||
AllowedIPs="0.0.0.0/0"
|
||||
$isExit=1
|
||||
else
|
||||
warp_config="Error"
|
||||
printf "\033[32;1mRequest WARP config... Attempt #1\033[0m\n"
|
||||
result=$(requestConfWARP1)
|
||||
warpGen=$(check_request "$result" 1)
|
||||
if [ "$warpGen" = "Error" ]
|
||||
then
|
||||
printf "\033[32;1mRequest WARP config... Attempt #3\033[0m\n"
|
||||
result=$(requestConfWARP3)
|
||||
warpGen=$(check_request "$result" 3)
|
||||
printf "\033[32;1mRequest WARP config... Attempt #2\033[0m\n"
|
||||
result=$(requestConfWARP2)
|
||||
warpGen=$(check_request "$result" 2)
|
||||
if [ "$warpGen" = "Error" ]
|
||||
then
|
||||
printf "\033[32;1mRequest WARP config... Attempt #4\033[0m\n"
|
||||
result=$(requestConfWARP4)
|
||||
warpGen=$(check_request "$result" 4)
|
||||
printf "\033[32;1mRequest WARP config... Attempt #3\033[0m\n"
|
||||
result=$(requestConfWARP3)
|
||||
warpGen=$(check_request "$result" 3)
|
||||
if [ "$warpGen" = "Error" ]
|
||||
then
|
||||
warp_config="Error"
|
||||
printf "\033[32;1mRequest WARP config... Attempt #4\033[0m\n"
|
||||
result=$(requestConfWARP4)
|
||||
warpGen=$(check_request "$result" 4)
|
||||
if [ "$warpGen" = "Error" ]
|
||||
then
|
||||
warp_config="Error"
|
||||
else
|
||||
warp_config=$warpGen
|
||||
fi
|
||||
else
|
||||
warp_config=$warpGen
|
||||
fi
|
||||
@@ -428,114 +523,173 @@ else
|
||||
else
|
||||
warp_config=$warpGen
|
||||
fi
|
||||
else
|
||||
warp_config=$warpGen
|
||||
|
||||
if [ "$warp_config" = "Error" ]
|
||||
then
|
||||
printf "\033[32;1mGenerate config AWG WARP failed...Try again later...\033[0m\n"
|
||||
$isExit=2
|
||||
#exit 1
|
||||
else
|
||||
while IFS=' = ' read -r line; do
|
||||
if echo "$line" | grep -q "="; then
|
||||
# Разделяем строку по первому вхождению "="
|
||||
key=$(echo "$line" | cut -d'=' -f1 | xargs) # Убираем пробелы
|
||||
value=$(echo "$line" | cut -d'=' -f2- | xargs) # Убираем пробелы
|
||||
#echo "key = $key, value = $value"
|
||||
eval "$key=\"$value\""
|
||||
fi
|
||||
done < <(echo "$warp_config")
|
||||
|
||||
#вытаскиваем нужные нам данные из распарсинного ответа
|
||||
Address=$(echo "$Address" | cut -d',' -f1)
|
||||
DNS=$(echo "$DNS" | cut -d',' -f1)
|
||||
AllowedIPs=$(echo "$AllowedIPs" | cut -d',' -f1)
|
||||
EndpointIP=$(echo "$Endpoint" | cut -d':' -f1)
|
||||
EndpointPort=$(echo "$Endpoint" | cut -d':' -f2)
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$warp_config" = "Error" ]
|
||||
if [ "$isExit" = "2" ]
|
||||
then
|
||||
printf "\033[32;1mGenerate config AWG WARP failed...Try again later...\033[0m\n"
|
||||
exit 1
|
||||
$isExit=0
|
||||
else
|
||||
while IFS=' = ' read -r line; do
|
||||
if echo "$line" | grep -q "="; then
|
||||
# Разделяем строку по первому вхождению "="
|
||||
key=$(echo "$line" | cut -d'=' -f1 | xargs) # Убираем пробелы
|
||||
value=$(echo "$line" | cut -d'=' -f2- | xargs) # Убираем пробелы
|
||||
#echo "key = $key, value = $value"
|
||||
eval "$key=\"$value\""
|
||||
fi
|
||||
done < <(echo "$warp_config")
|
||||
printf "\033[32;1mCreate and configure tunnel AmneziaWG WARP...\033[0m\n"
|
||||
|
||||
#вытаскиваем нужные нам данные из распарсинного ответа
|
||||
Address=$(echo "$Address" | cut -d',' -f1)
|
||||
DNS=$(echo "$DNS" | cut -d',' -f1)
|
||||
AllowedIPs=$(echo "$AllowedIPs" | cut -d',' -f1)
|
||||
EndpointIP=$(echo "$Endpoint" | cut -d':' -f1)
|
||||
EndpointPort=$(echo "$Endpoint" | cut -d':' -f2)
|
||||
#задаём имя интерфейса
|
||||
INTERFACE_NAME="awg10"
|
||||
CONFIG_NAME="amneziawg_awg10"
|
||||
PROTO="amneziawg"
|
||||
ZONE_NAME="awg"
|
||||
|
||||
uci set network.${INTERFACE_NAME}=interface
|
||||
uci set network.${INTERFACE_NAME}.proto=$PROTO
|
||||
if ! uci show network | grep -q ${CONFIG_NAME}; then
|
||||
uci add network ${CONFIG_NAME}
|
||||
fi
|
||||
uci set network.${INTERFACE_NAME}.private_key=$PrivateKey
|
||||
uci add_list network.${INTERFACE_NAME}.addresses=$Address
|
||||
uci set network.${INTERFACE_NAME}.mtu=$MTU
|
||||
uci set network.${INTERFACE_NAME}.awg_jc=$Jc
|
||||
uci set network.${INTERFACE_NAME}.awg_jmin=$Jmin
|
||||
uci set network.${INTERFACE_NAME}.awg_jmax=$Jmax
|
||||
uci set network.${INTERFACE_NAME}.awg_s1=$S1
|
||||
uci set network.${INTERFACE_NAME}.awg_s2=$S2
|
||||
uci set network.${INTERFACE_NAME}.awg_h1=$H1
|
||||
uci set network.${INTERFACE_NAME}.awg_h2=$H2
|
||||
uci set network.${INTERFACE_NAME}.awg_h3=$H3
|
||||
uci set network.${INTERFACE_NAME}.awg_h4=$H4
|
||||
uci set network.${INTERFACE_NAME}.nohostroute='1'
|
||||
uci set network.@${CONFIG_NAME}[-1].description="${INTERFACE_NAME}_peer"
|
||||
uci set network.@${CONFIG_NAME}[-1].public_key=$PublicKey
|
||||
uci set network.@${CONFIG_NAME}[-1].endpoint_host=$EndpointIP
|
||||
uci set network.@${CONFIG_NAME}[-1].endpoint_port=$EndpointPort
|
||||
uci set network.@${CONFIG_NAME}[-1].persistent_keepalive='25'
|
||||
uci set network.@${CONFIG_NAME}[-1].allowed_ips='0.0.0.0/0'
|
||||
uci set network.@${CONFIG_NAME}[-1].route_allowed_ips='0'
|
||||
uci commit network
|
||||
|
||||
if ! uci show firewall | grep -q "@zone.*name='${ZONE_NAME}'"; then
|
||||
printf "\033[32;1mZone Create\033[0m\n"
|
||||
uci add firewall zone
|
||||
uci set firewall.@zone[-1].name=$ZONE_NAME
|
||||
uci set firewall.@zone[-1].network=$INTERFACE_NAME
|
||||
uci set firewall.@zone[-1].forward='REJECT'
|
||||
uci set firewall.@zone[-1].output='ACCEPT'
|
||||
uci set firewall.@zone[-1].input='REJECT'
|
||||
uci set firewall.@zone[-1].masq='1'
|
||||
uci set firewall.@zone[-1].mtu_fix='1'
|
||||
uci set firewall.@zone[-1].family='ipv4'
|
||||
uci commit firewall
|
||||
fi
|
||||
|
||||
if ! uci show firewall | grep -q "@forwarding.*name='${ZONE_NAME}'"; then
|
||||
printf "\033[32;1mConfigured forwarding\033[0m\n"
|
||||
uci add firewall forwarding
|
||||
uci set firewall.@forwarding[-1]=forwarding
|
||||
uci set firewall.@forwarding[-1].name="${ZONE_NAME}"
|
||||
uci set firewall.@forwarding[-1].dest=${ZONE_NAME}
|
||||
uci set firewall.@forwarding[-1].src='lan'
|
||||
uci set firewall.@forwarding[-1].family='ipv4'
|
||||
uci commit firewall
|
||||
fi
|
||||
|
||||
# Получаем список всех зон
|
||||
ZONES=$(uci show firewall | grep "zone$" | cut -d'=' -f1)
|
||||
#echo $ZONES
|
||||
# Циклически проходим по всем зонам
|
||||
for zone in $ZONES; do
|
||||
# Получаем имя зоны
|
||||
CURR_ZONE_NAME=$(uci get $zone.name)
|
||||
#echo $CURR_ZONE_NAME
|
||||
# Проверяем, является ли это зона с именем "$ZONE_NAME"
|
||||
if [ "$CURR_ZONE_NAME" = "$ZONE_NAME" ]; then
|
||||
# Проверяем, существует ли интерфейс в зоне
|
||||
if ! uci get $zone.network | grep -q "$INTERFACE_NAME"; then
|
||||
# Добавляем интерфейс в зону
|
||||
uci add_list $zone.network="$INTERFACE_NAME"
|
||||
uci commit firewall
|
||||
#echo "Интерфейс '$INTERFACE_NAME' добавлен в зону '$ZONE_NAME'"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
if [ "$currIter" = "1" ]
|
||||
then
|
||||
service firewall restart
|
||||
fi
|
||||
#service firewall restart
|
||||
#service network restart
|
||||
|
||||
# Отключаем интерфейс
|
||||
ifdown $INTERFACE_NAME
|
||||
# Ждем несколько секунд (по желанию)
|
||||
sleep 2
|
||||
# Включаем интерфейс
|
||||
ifup $INTERFACE_NAME
|
||||
curl -f --connect-to ::speedtest.selectel.ru https://manifest.googlevideo.com/100MB -k -o /dev/null --interface $INTERFACE_NAME
|
||||
|
||||
# Проверяем код выхода
|
||||
if [ $? -eq 0 ]; then
|
||||
isExit=1
|
||||
else
|
||||
isExit=0
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
varByPass=0
|
||||
|
||||
if [ "$isExit" = "1" ]
|
||||
then
|
||||
printf "\033[32;1mAWG WARP well work...\033[0m\n"
|
||||
varByPass=1
|
||||
else
|
||||
printf "\033[32;1mAWG WARP not work...Try work youtubeunblock...Please wait...\033[0m\n"
|
||||
install_youtubeunblock_packages
|
||||
opkg upgrade youtubeUnblock
|
||||
opkg upgrade luci-app-youtubeUnblock
|
||||
manage_package "youtubeUnblock" "enable" "start"
|
||||
wget -O "/etc/config/youtubeUnblock" "$URL/config_files/youtubeUnblockSecond"
|
||||
service youtubeUnblock restart
|
||||
curl -f -o /dev/null -k --connect-to ::google.com -L -H "Host: mirror.gcr.io" --max-time 360 https://test.googlevideo.com/v2/cimg/android/blobs/sha256:6fd8bdac3da660bde7bd0b6f2b6a46e1b686afb74b9a4614def32532b73f5eaa
|
||||
|
||||
# Проверяем код выхода
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "\033[32;1myoutubeUnblock well work...\033[0m\n"
|
||||
varByPass=2
|
||||
else
|
||||
manage_package "youtubeUnblock" "disable" "stop"
|
||||
printf "\033[32;1myoutubeUnblock not work...Try opera proxy...\033[0m\n"
|
||||
sing-box tools fetch ifconfig.co -D /etc/sing-box/
|
||||
if [ $? -eq 0 ]; then
|
||||
printf "\033[32;1mOpera proxy well work...\033[0m\n"
|
||||
varByPass=3
|
||||
else
|
||||
printf "\033[32;1mOpera proxy not work...Try custom settings router to bypass the locks...\033[0m\n"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\033[32;1mCreate and configure tunnel AmneziaWG WARP...\033[0m\n"
|
||||
|
||||
#задаём имя интерфейса
|
||||
INTERFACE_NAME="awg10"
|
||||
CONFIG_NAME="amneziawg_awg10"
|
||||
PROTO="amneziawg"
|
||||
ZONE_NAME="awg"
|
||||
|
||||
uci set network.${INTERFACE_NAME}=interface
|
||||
uci set network.${INTERFACE_NAME}.proto=$PROTO
|
||||
if ! uci show network | grep -q ${CONFIG_NAME}; then
|
||||
uci add network ${CONFIG_NAME}
|
||||
fi
|
||||
uci set network.${INTERFACE_NAME}.private_key=$PrivateKey
|
||||
uci add_list network.${INTERFACE_NAME}.addresses=$Address
|
||||
uci set network.${INTERFACE_NAME}.mtu=$MTU
|
||||
uci set network.${INTERFACE_NAME}.awg_jc=$Jc
|
||||
uci set network.${INTERFACE_NAME}.awg_jmin=$Jmin
|
||||
uci set network.${INTERFACE_NAME}.awg_jmax=$Jmax
|
||||
uci set network.${INTERFACE_NAME}.awg_s1=$S1
|
||||
uci set network.${INTERFACE_NAME}.awg_s2=$S2
|
||||
uci set network.${INTERFACE_NAME}.awg_h1=$H1
|
||||
uci set network.${INTERFACE_NAME}.awg_h2=$H2
|
||||
uci set network.${INTERFACE_NAME}.awg_h3=$H3
|
||||
uci set network.${INTERFACE_NAME}.awg_h4=$H4
|
||||
uci set network.${INTERFACE_NAME}.nohostroute='1'
|
||||
uci set network.@${CONFIG_NAME}[-1].description="${INTERFACE_NAME}_peer"
|
||||
uci set network.@${CONFIG_NAME}[-1].public_key=$PublicKey
|
||||
uci set network.@${CONFIG_NAME}[-1].endpoint_host=$EndpointIP
|
||||
uci set network.@${CONFIG_NAME}[-1].endpoint_port=$EndpointPort
|
||||
uci set network.@${CONFIG_NAME}[-1].persistent_keepalive='25'
|
||||
uci set network.@${CONFIG_NAME}[-1].allowed_ips='0.0.0.0/0'
|
||||
uci set network.@${CONFIG_NAME}[-1].route_allowed_ips='0'
|
||||
uci commit network
|
||||
|
||||
if ! uci show firewall | grep -q "@zone.*name='${ZONE_NAME}'"; then
|
||||
printf "\033[32;1mZone Create\033[0m\n"
|
||||
uci add firewall zone
|
||||
uci set firewall.@zone[-1].name=$ZONE_NAME
|
||||
uci set firewall.@zone[-1].network=$INTERFACE_NAME
|
||||
uci set firewall.@zone[-1].forward='REJECT'
|
||||
uci set firewall.@zone[-1].output='ACCEPT'
|
||||
uci set firewall.@zone[-1].input='REJECT'
|
||||
uci set firewall.@zone[-1].masq='1'
|
||||
uci set firewall.@zone[-1].mtu_fix='1'
|
||||
uci set firewall.@zone[-1].family='ipv4'
|
||||
uci commit firewall
|
||||
fi
|
||||
|
||||
if ! uci show firewall | grep -q "@forwarding.*name='${ZONE_NAME}'"; then
|
||||
printf "\033[32;1mConfigured forwarding\033[0m\n"
|
||||
uci add firewall forwarding
|
||||
uci set firewall.@forwarding[-1]=forwarding
|
||||
uci set firewall.@forwarding[-1].name="${ZONE_NAME}"
|
||||
uci set firewall.@forwarding[-1].dest=${ZONE_NAME}
|
||||
uci set firewall.@forwarding[-1].src='lan'
|
||||
uci set firewall.@forwarding[-1].family='ipv4'
|
||||
uci commit firewall
|
||||
fi
|
||||
|
||||
# Получаем список всех зон
|
||||
ZONES=$(uci show firewall | grep "zone$" | cut -d'=' -f1)
|
||||
#echo $ZONES
|
||||
# Циклически проходим по всем зонам
|
||||
for zone in $ZONES; do
|
||||
# Получаем имя зоны
|
||||
CURR_ZONE_NAME=$(uci get $zone.name)
|
||||
#echo $CURR_ZONE_NAME
|
||||
# Проверяем, является ли это зона с именем "$ZONE_NAME"
|
||||
if [ "$CURR_ZONE_NAME" = "$ZONE_NAME" ]; then
|
||||
# Проверяем, существует ли интерфейс в зоне
|
||||
if ! uci get $zone.network | grep -q "$INTERFACE_NAME"; then
|
||||
# Добавляем интерфейс в зону
|
||||
uci add_list $zone.network="$INTERFACE_NAME"
|
||||
uci commit firewall
|
||||
#echo "Интерфейс '$INTERFACE_NAME' добавлен в зону '$ZONE_NAME'"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
nameRule="option name 'Block_UDP_443'"
|
||||
str=$(grep -i "$nameRule" /etc/config/firewall)
|
||||
if [ -z "$str" ]
|
||||
@@ -565,7 +719,29 @@ service odhcpd restart
|
||||
|
||||
path_podkop_config="/etc/config/podkop"
|
||||
path_podkop_config_backup="/root/podkop"
|
||||
URL="https://raw.githubusercontent.com/routerich/RouterichAX3000_configs/refs/heads/main"
|
||||
URL="https://raw.githubusercontent.com/routerich/RouterichAX3000_configs/refs/heads/beta"
|
||||
|
||||
case $varByPass in
|
||||
1)
|
||||
nameFileReplacePodkop="podkop"
|
||||
printf "\033[32;1mStop and disabled service 'youtubeUnblock' and 'ruantiblock'...\033[0m\n"
|
||||
manage_package "youtubeUnblock" "disable" "stop"
|
||||
manage_package "ruantiblock" "disable" "stop"
|
||||
;;
|
||||
2)
|
||||
nameFileReplacePodkop="podkopSecond"
|
||||
printf "\033[32;1mStop and disabled service 'ruantiblock'...\033[0m\n"
|
||||
manage_package "ruantiblock" "disable" "stop"
|
||||
;;
|
||||
3)
|
||||
nameFileReplacePodkop="podkopSecondYoutube"
|
||||
printf "\033[32;1mStop and disabled service 'youtubeUnblock' and 'ruantiblock'...\033[0m\n"
|
||||
manage_package "youtubeUnblock" "disable" "stop"
|
||||
manage_package "ruantiblock" "disable" "stop"
|
||||
;;
|
||||
*)
|
||||
nameFileReplacePodkop="podkop"
|
||||
esac
|
||||
|
||||
if [ -f "/etc/init.d/podkop" ]; then
|
||||
printf "Podkop installed. Reconfigured on AWG WARP and Opera Proxy? (y/n): \n"
|
||||
@@ -573,7 +749,7 @@ if [ -f "/etc/init.d/podkop" ]; then
|
||||
read is_reconfig_podkop
|
||||
if [ "$is_reconfig_podkop" = "y" ] || [ "$is_reconfig_podkop" = "Y" ]; then
|
||||
cp -f "$path_podkop_config" "$path_podkop_config_backup"
|
||||
wget -O "$path_podkop_config" "$URL/config_files/podkop"
|
||||
wget -O "$path_podkop_config" "$URL/config_files/$nameFileReplacePodkop"
|
||||
echo "Backup of your config in path '$path_podkop_config_backup'"
|
||||
echo "Podkop reconfigured..."
|
||||
fi
|
||||
@@ -597,15 +773,11 @@ else
|
||||
opkg install $DOWNLOAD_DIR/luci-app-podkop*.ipk
|
||||
opkg install $DOWNLOAD_DIR/luci-i18n-podkop-ru*.ipk
|
||||
rm -f $DOWNLOAD_DIR/podkop*.ipk $DOWNLOAD_DIR/luci-app-podkop*.ipk $DOWNLOAD_DIR/luci-i18n-podkop-ru*.ipk
|
||||
wget -O "$path_podkop_config" "$URL/config_files/podkop"
|
||||
wget -O "$path_podkop_config" "$URL/config_files/$nameFileReplacePodkop"
|
||||
echo "Podkop installed.."
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\033[32;1mStop and disabled service 'youtubeUnblock' and 'ruantiblock'...\033[0m\n"
|
||||
manage_package "youtubeUnblock" "disable" "stop"
|
||||
manage_package "ruantiblock" "disable" "stop"
|
||||
|
||||
printf "\033[32;1mStart and enable service 'https-dns-proxy'...\033[0m\n"
|
||||
manage_package "https-dns-proxy" "enable" "start"
|
||||
|
||||
@@ -617,16 +789,16 @@ then
|
||||
rm -f "/etc/crontabs/temp"
|
||||
fi
|
||||
|
||||
printf "\033[32;1mRestart firewall and network...\033[0m\n"
|
||||
service firewall restart
|
||||
#printf "\033[32;1mRestart firewall and network...\033[0m\n"
|
||||
#service firewall restart
|
||||
#service network restart
|
||||
|
||||
# Отключаем интерфейс
|
||||
ifdown $INTERFACE_NAME
|
||||
#ifdown $INTERFACE_NAME
|
||||
# Ждем несколько секунд (по желанию)
|
||||
sleep 2
|
||||
#sleep 2
|
||||
# Включаем интерфейс
|
||||
ifup $INTERFACE_NAME
|
||||
#ifup $INTERFACE_NAME
|
||||
|
||||
printf "\033[32;1mService Podkop and Sing-Box restart...\033[0m\n"
|
||||
service sing-box enable
|
||||
|
||||
71
config_files/podkopSecond
Normal file
71
config_files/podkopSecond
Normal file
@@ -0,0 +1,71 @@
|
||||
|
||||
config main 'main'
|
||||
option mode 'proxy'
|
||||
option proxy_config_type 'outbound'
|
||||
option domain_list_enabled '0'
|
||||
option subnets_list_enabled '1'
|
||||
option custom_domains_list_enabled 'dynamic'
|
||||
option custom_subnets_list_enabled 'disabled'
|
||||
option all_traffic_from_ip_enabled '0'
|
||||
option custom_download_domains_list_enabled '0'
|
||||
option custom_download_subnets_list_enabled '0'
|
||||
option exclude_from_ip_enabled '0'
|
||||
option update_interval '0 4 * * *'
|
||||
option custom_local_domains_list_enabled '0'
|
||||
option outbound_json '{
|
||||
"type": "http",
|
||||
"server": "127.0.0.1",
|
||||
"server_port": 18080
|
||||
}'
|
||||
list subnets 'meta'
|
||||
list subnets 'twitter'
|
||||
list custom_domains '2ip.ru'
|
||||
list custom_domains 'rutracker.org'
|
||||
list custom_domains 'rutor.info'
|
||||
list custom_domains 'nnmclub.to'
|
||||
list custom_domains 'rutracker.net'
|
||||
list custom_domains 'lostfilm.tv'
|
||||
list custom_domains 'animego.org'
|
||||
list custom_domains 'jut.su'
|
||||
list custom_domains 'anilibria.tv'
|
||||
list custom_domains 'chatgpt.com'
|
||||
list custom_domains 'oaistatic.com'
|
||||
list custom_domains 'oaiusercontent.com'
|
||||
list custom_domains 'openai.com'
|
||||
list custom_domains 'microsoft.com'
|
||||
list custom_domains 'windowsupdate.com'
|
||||
list custom_domains 'bing.com'
|
||||
list custom_domains 'supercell.com'
|
||||
list custom_domains 'seeurlpcl.com'
|
||||
list custom_domains 'supercellid.com'
|
||||
list custom_domains 'supercellgames.com'
|
||||
list custom_domains 'clashroyale.com'
|
||||
list custom_domains 'brawlstars.com'
|
||||
list custom_domains 'clash.com'
|
||||
list custom_domains 'clashofclans.com'
|
||||
list custom_domains 'x.ai'
|
||||
list custom_domains 'grok.com'
|
||||
list custom_domains 'gitgub.com'
|
||||
list custom_domains 'searchgpt.com'
|
||||
list custom_domains 'xboxlive.com'
|
||||
list custom_domains 'gamepass.com'
|
||||
list custom_domains 'xboxab.com'
|
||||
list custom_domains 'xboxservices.com'
|
||||
list custom_domains 'myip.com'
|
||||
list custom_domains '4pda.to'
|
||||
list custom_domains 'habr.com'
|
||||
|
||||
config second 'second'
|
||||
option second_enable '0'
|
||||
option domain_list_enabled '0'
|
||||
list domains 'youtube'
|
||||
option second_mode 'proxy'
|
||||
option second_proxy_config_type 'outbound'
|
||||
option second_outbound_json '{
|
||||
"type": "http",
|
||||
"server": "127.0.0.1",
|
||||
"server_port": 18080
|
||||
}'
|
||||
option second_domain_service_enabled '0'
|
||||
option second_custom_domains_list_enabled 'dynamic'
|
||||
option second_custom_subnets_list_enabled 'disabled'
|
||||
82
config_files/podkopSecondYoutube
Normal file
82
config_files/podkopSecondYoutube
Normal file
@@ -0,0 +1,82 @@
|
||||
|
||||
config main 'main'
|
||||
option mode 'proxy'
|
||||
option proxy_config_type 'outbound'
|
||||
option domain_list_enabled '0'
|
||||
option subnets_list_enabled '1'
|
||||
option custom_domains_list_enabled 'dynamic'
|
||||
option custom_subnets_list_enabled 'disabled'
|
||||
option all_traffic_from_ip_enabled '0'
|
||||
option custom_download_domains_list_enabled '0'
|
||||
option custom_download_subnets_list_enabled '0'
|
||||
option exclude_from_ip_enabled '0'
|
||||
option update_interval '0 4 * * *'
|
||||
option custom_local_domains_list_enabled '0'
|
||||
option outbound_json '{
|
||||
"type": "http",
|
||||
"server": "127.0.0.1",
|
||||
"server_port": 18080
|
||||
}'
|
||||
list subnets 'meta'
|
||||
list subnets 'twitter'
|
||||
list subnets 'discord'
|
||||
list custom_domains '2ip.ru'
|
||||
list custom_domains 'googlevideo.com'
|
||||
list custom_domains 'ggpht.com'
|
||||
list custom_domains 'ytimg.com'
|
||||
list custom_domains 'youtube.com'
|
||||
list custom_domains 'play.google.com'
|
||||
list custom_domains 'youtu.be'
|
||||
list custom_domains 'googleapis.com'
|
||||
list custom_domains 'googleusercontent.com'
|
||||
list custom_domains 'gstatic.com'
|
||||
list custom_domains 'l.google.com'
|
||||
list custom_domains 'rutracker.org'
|
||||
list custom_domains 'rutor.info'
|
||||
list custom_domains 'nnmclub.to'
|
||||
list custom_domains 'rutracker.net'
|
||||
list custom_domains 'lostfilm.tv'
|
||||
list custom_domains 'animego.org'
|
||||
list custom_domains 'jut.su'
|
||||
list custom_domains 'anilibria.tv'
|
||||
list custom_domains 'chatgpt.com'
|
||||
list custom_domains 'oaistatic.com'
|
||||
list custom_domains 'oaiusercontent.com'
|
||||
list custom_domains 'openai.com'
|
||||
list custom_domains 'microsoft.com'
|
||||
list custom_domains 'windowsupdate.com'
|
||||
list custom_domains 'bing.com'
|
||||
list custom_domains 'supercell.com'
|
||||
list custom_domains 'seeurlpcl.com'
|
||||
list custom_domains 'supercellid.com'
|
||||
list custom_domains 'supercellgames.com'
|
||||
list custom_domains 'clashroyale.com'
|
||||
list custom_domains 'brawlstars.com'
|
||||
list custom_domains 'clash.com'
|
||||
list custom_domains 'clashofclans.com'
|
||||
list custom_domains 'x.ai'
|
||||
list custom_domains 'grok.com'
|
||||
list custom_domains 'gitgub.com'
|
||||
list custom_domains 'searchgpt.com'
|
||||
list custom_domains 'xboxlive.com'
|
||||
list custom_domains 'gamepass.com'
|
||||
list custom_domains 'xboxab.com'
|
||||
list custom_domains 'xboxservices.com'
|
||||
list custom_domains 'myip.com'
|
||||
list custom_domains '4pda.to'
|
||||
list custom_domains 'habr.com'
|
||||
|
||||
config second 'second'
|
||||
option second_enable '0'
|
||||
option domain_list_enabled '0'
|
||||
list domains 'youtube'
|
||||
option second_mode 'proxy'
|
||||
option second_proxy_config_type 'outbound'
|
||||
option second_outbound_json '{
|
||||
"type": "http",
|
||||
"server": "127.0.0.1",
|
||||
"server_port": 18080
|
||||
}'
|
||||
option second_domain_service_enabled '0'
|
||||
option second_custom_domains_list_enabled 'dynamic'
|
||||
option second_custom_subnets_list_enabled 'disabled'
|
||||
68
config_files/youtubeUnblockSecond
Normal file
68
config_files/youtubeUnblockSecond
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
config youtubeUnblock 'youtubeUnblock'
|
||||
option conf_strat 'ui_flags'
|
||||
option packet_mark '32768'
|
||||
option queue_num '537'
|
||||
option silent '1'
|
||||
option no_ipv6 '1'
|
||||
|
||||
config section
|
||||
option name 'Youtube'
|
||||
option enabled '1'
|
||||
option tls_enabled '1'
|
||||
option fake_sni '1'
|
||||
option faking_strategy 'pastseq'
|
||||
option fake_sni_seq_len '1'
|
||||
option fake_sni_type 'default'
|
||||
option frag 'tcp'
|
||||
option frag_sni_reverse '1'
|
||||
option frag_sni_faked '0'
|
||||
option frag_middle_sni '1'
|
||||
option frag_sni_pos '1'
|
||||
option seg2delay '0'
|
||||
option fk_winsize '0'
|
||||
option synfake '0'
|
||||
option sni_detection 'parse'
|
||||
option all_domains '0'
|
||||
list sni_domains 'googlevideo.com'
|
||||
list sni_domains 'ggpht.com'
|
||||
list sni_domains 'ytimg.com'
|
||||
list sni_domains 'youtube.com'
|
||||
list sni_domains 'play.google.com'
|
||||
list sni_domains 'youtu.be'
|
||||
list sni_domains 'googleapis.com'
|
||||
list sni_domains 'googleusercontent.com'
|
||||
list sni_domains 'gstatic.com'
|
||||
list sni_domains 'l.google.com'
|
||||
option quic_drop '1'
|
||||
|
||||
config section
|
||||
option name 'Discord'
|
||||
option tls_enabled '1'
|
||||
option fake_sni '1'
|
||||
option faking_strategy 'pastseq'
|
||||
option fake_sni_seq_len '1'
|
||||
option fake_sni_type 'default'
|
||||
option frag 'tcp'
|
||||
option frag_sni_reverse '1'
|
||||
option frag_sni_faked '0'
|
||||
option frag_middle_sni '1'
|
||||
option frag_sni_pos '1'
|
||||
option seg2delay '0'
|
||||
option fk_winsize '0'
|
||||
option synfake '0'
|
||||
option all_domains '0'
|
||||
option sni_detection 'parse'
|
||||
option quic_drop '0'
|
||||
option udp_mode 'fake'
|
||||
option udp_faking_strategy 'none'
|
||||
option udp_fake_seq_len '6'
|
||||
option udp_fake_len '64'
|
||||
list udp_dport_filter '50000-50100 '
|
||||
option udp_filter_quic 'disabled'
|
||||
option enabled '1'
|
||||
list sni_domains 'discord.com'
|
||||
list sni_domains 'discordapp.com'
|
||||
list sni_domains 'discord.gg'
|
||||
list sni_domains 'discordapp.net'
|
||||
list sni_domains 'discord.media'
|
||||
Reference in New Issue
Block a user