diff --git a/awg_config.sh b/awg_config.sh index 6048003..427e92f 100644 --- a/awg_config.sh +++ b/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 diff --git a/config_files/podkopSecond b/config_files/podkopSecond new file mode 100644 index 0000000..8eabd45 --- /dev/null +++ b/config_files/podkopSecond @@ -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' \ No newline at end of file diff --git a/config_files/podkopSecondYoutube b/config_files/podkopSecondYoutube new file mode 100644 index 0000000..6596730 --- /dev/null +++ b/config_files/podkopSecondYoutube @@ -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' \ No newline at end of file diff --git a/config_files/youtubeUnblockSecond b/config_files/youtubeUnblockSecond new file mode 100644 index 0000000..fc9d24a --- /dev/null +++ b/config_files/youtubeUnblockSecond @@ -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' \ No newline at end of file