diff --git a/README.md b/README.md index f8557cf..73a3533 100644 --- a/README.md +++ b/README.md @@ -73,21 +73,10 @@ Luci: Services/podkop **Custom subnets enable** - Добавить подсети или IP-адреса. Для подсетей задать маску. -# Известные баги -- [x] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS -- [x] Update list из remote url domain не удаляет старые домены. А добавляет новые. Для подсетей тоже самое скорее всего. Пересоздавать ruleset? - # ToDo Этот раздел не означает задачи, которые нужно брать и делать. Это общий список хотелок. Если вы хотите помочь, пожалуйста, спросите сначала в телеграмме. -- [x] Interface trigger -- [x] Управление sing-box с помощью podkop. sing-box disable -- [x] Сделать галку запрещающую подкопу редачить dhcp. Допилить в исключение вместе с пустыми полями proxy и vpn (нужно wiki) -- [x] Рестарт сервиса без рестарта dnsmasq -- [x] `ash: can't kill pid 9848: No such process` при обновлении -- [x] Luci: Добавить валидацию "Proxy Configuration URL". Если пустое, то ошибка. Как с интерфейсом. - [ ] Не грузится диагностика полностью при одной нерабочей комманде. Подумать как это можно дебажить легко. https://t.me/itdogchat/142500/378956 -- [x] DoH возможность добавлять сервера c path. Взять пример из NextDNS - [ ] При добавлении github ломается скачивание скрипта установки и любые другие скрипты с github соотвественно. Скорее всего нужно делать опцией добавление в nft самого роутера как src. Диагностика diff --git a/luci-app-podkop/Makefile b/luci-app-podkop/Makefile index f3fa50e..1adef2b 100644 --- a/luci-app-podkop/Makefile +++ b/luci-app-podkop/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-podkop -PKG_VERSION:=0.3.39 +PKG_VERSION:=0.3.40 PKG_RELEASE:=1 LUCI_TITLE:=LuCI podkop app diff --git a/podkop/Makefile b/podkop/Makefile index 4d80e79..e92a388 100644 --- a/podkop/Makefile +++ b/podkop/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=podkop -PKG_VERSION:=0.3.39 +PKG_VERSION:=0.3.40 PKG_RELEASE:=1 PKG_MAINTAINER:=ITDog diff --git a/podkop/files/usr/bin/podkop b/podkop/files/usr/bin/podkop index 58f2d38..c56d83e 100755 --- a/podkop/files/usr/bin/podkop +++ b/podkop/files/usr/bin/podkop @@ -2086,6 +2086,9 @@ check_dns_available() { if echo "$dns_server" | grep -q "\.dns\.nextdns\.io$"; then local nextdns_id=$(echo "$dns_server" | cut -d'.' -f1) display_dns_server="$(echo "$nextdns_id" | sed 's/./*/g').dns.nextdns.io" + elif echo "$dns_server" | grep -q "^dns\.nextdns\.io/"; then + local masked_path=$(echo "$dns_server" | cut -d'/' -f2- | sed 's/./*/g') + display_dns_server="dns.nextdns.io/$masked_path" fi if [ "$dns_type" = "doh" ]; then @@ -2164,34 +2167,33 @@ sing_box_add_secure_dns_probe_domain() { } global_check() { - nolog "Global check run!" + nolog "📡 Global check run!" + + nolog "Podkop $(opkg info podkop | grep -m 1 "Version:" | cut -d' ' -f2)" + nolog "LuCi App $(opkg info luci-app-podkop | grep -m 1 "Version:" | cut -d' ' -f2)" + nolog "Sing-box $(opkg info sing-box | grep -m 1 "Version:" | cut -d' ' -f2)" + nolog "$(grep OPENWRT_RELEASE /etc/os-release | cut -d'"' -f2)" + nolog "Device: $(cat /tmp/sysinfo/model)" + printf "\n" show_config - printf "\n\n" + printf "\n" nolog "Checking fakeip functionality..." - nolog "Testing DNS resolution with default DNS server" - echo "=== Testing with default DNS server ===" + nolog "➡️ DNS resolution: system DNS server" nslookup -timeout=2 $TEST_DOMAIN - printf "\n" - nolog "Finding a working DNS resolver..." local working_resolver=$(find_working_resolver) if [ -z "$working_resolver" ]; then - nolog "No working resolver found, skipping resolver check" - else - nolog "Using resolver: $working_resolver" - - nolog "Testing DNS resolution with working resolver ($working_resolver)" - echo "=== Testing with working resolver ($working_resolver) ===" + nolog "❌ No working resolver found, skipping resolver check" + else + nolog "➡️ DNS resolution: external resolver ($working_resolver)" nslookup -timeout=2 $TEST_DOMAIN $working_resolver - printf "\n" fi # Main FakeIP check - nolog "Testing DNS resolution for $TEST_DOMAIN using 127.0.0.42" - echo "=== Testing with FakeIP DNS (127.0.0.42) ===" + nolog "➡️ DNS resolution: sing-box DNS server (127.0.0.42)" local result=$(nslookup -timeout=2 $TEST_DOMAIN 127.0.0.42 2>&1) echo "$result" @@ -2231,7 +2233,6 @@ global_check() { nolog "✅ /etc/resolv.conf OK" fi - nolog "Checking dnsmasq configuration..." cachesize="$(uci get dhcp.@dnsmasq[0].cachesize 2>/dev/null)" noresolv="$(uci get dhcp.@dnsmasq[0].noresolv 2>/dev/null)" server="$(uci get dhcp.@dnsmasq[0].server 2>/dev/null)" @@ -2249,15 +2250,7 @@ global_check() { nolog "✅ sing-box is running" fi - - if ! command -v nft >/dev/null 2>&1; then - nolog "nft is not installed" - return 1 - fi - nolog "📄 NFT Table Podkop" - - # Check if table exists if ! nft list table inet PodkopTable >/dev/null 2>&1; then nolog "PodkopTable not found" else