mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-06 19:46:52 +03:00
v0.3.40. Improved Diagnotics
This commit is contained in:
11
README.md
11
README.md
@@ -73,21 +73,10 @@ Luci: Services/podkop
|
|||||||
|
|
||||||
**Custom subnets enable** - Добавить подсети или IP-адреса. Для подсетей задать маску.
|
**Custom subnets enable** - Добавить подсети или IP-адреса. Для подсетей задать маску.
|
||||||
|
|
||||||
# Известные баги
|
|
||||||
- [x] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS
|
|
||||||
- [x] Update list из remote url domain не удаляет старые домены. А добавляет новые. Для подсетей тоже самое скорее всего. Пересоздавать ruleset?
|
|
||||||
|
|
||||||
# ToDo
|
# 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
|
- [ ] Не грузится диагностика полностью при одной нерабочей комманде. Подумать как это можно дебажить легко. https://t.me/itdogchat/142500/378956
|
||||||
- [x] DoH возможность добавлять сервера c path. Взять пример из NextDNS
|
|
||||||
- [ ] При добавлении github ломается скачивание скрипта установки и любые другие скрипты с github соотвественно. Скорее всего нужно делать опцией добавление в nft самого роутера как src.
|
- [ ] При добавлении github ломается скачивание скрипта установки и любые другие скрипты с github соотвественно. Скорее всего нужно делать опцией добавление в nft самого роутера как src.
|
||||||
|
|
||||||
Диагностика
|
Диагностика
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=luci-app-podkop
|
PKG_NAME:=luci-app-podkop
|
||||||
PKG_VERSION:=0.3.39
|
PKG_VERSION:=0.3.40
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
LUCI_TITLE:=LuCI podkop app
|
LUCI_TITLE:=LuCI podkop app
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=podkop
|
PKG_NAME:=podkop
|
||||||
PKG_VERSION:=0.3.39
|
PKG_VERSION:=0.3.40
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
|
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
|
||||||
|
|||||||
@@ -2086,6 +2086,9 @@ check_dns_available() {
|
|||||||
if echo "$dns_server" | grep -q "\.dns\.nextdns\.io$"; then
|
if echo "$dns_server" | grep -q "\.dns\.nextdns\.io$"; then
|
||||||
local nextdns_id=$(echo "$dns_server" | cut -d'.' -f1)
|
local nextdns_id=$(echo "$dns_server" | cut -d'.' -f1)
|
||||||
display_dns_server="$(echo "$nextdns_id" | sed 's/./*/g').dns.nextdns.io"
|
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
|
fi
|
||||||
|
|
||||||
if [ "$dns_type" = "doh" ]; then
|
if [ "$dns_type" = "doh" ]; then
|
||||||
@@ -2164,34 +2167,33 @@ sing_box_add_secure_dns_probe_domain() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
global_check() {
|
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"
|
printf "\n"
|
||||||
show_config
|
show_config
|
||||||
printf "\n\n"
|
printf "\n"
|
||||||
|
|
||||||
nolog "Checking fakeip functionality..."
|
nolog "Checking fakeip functionality..."
|
||||||
|
|
||||||
nolog "Testing DNS resolution with default DNS server"
|
nolog "➡️ DNS resolution: system DNS server"
|
||||||
echo "=== Testing with default DNS server ==="
|
|
||||||
nslookup -timeout=2 $TEST_DOMAIN
|
nslookup -timeout=2 $TEST_DOMAIN
|
||||||
printf "\n"
|
|
||||||
|
|
||||||
nolog "Finding a working DNS resolver..."
|
|
||||||
local working_resolver=$(find_working_resolver)
|
local working_resolver=$(find_working_resolver)
|
||||||
if [ -z "$working_resolver" ]; then
|
if [ -z "$working_resolver" ]; then
|
||||||
nolog "No working resolver found, skipping resolver check"
|
nolog "❌ No working resolver found, skipping resolver check"
|
||||||
else
|
else
|
||||||
nolog "Using resolver: $working_resolver"
|
nolog "➡️ DNS resolution: external resolver ($working_resolver)"
|
||||||
|
|
||||||
nolog "Testing DNS resolution with working resolver ($working_resolver)"
|
|
||||||
echo "=== Testing with working resolver ($working_resolver) ==="
|
|
||||||
nslookup -timeout=2 $TEST_DOMAIN $working_resolver
|
nslookup -timeout=2 $TEST_DOMAIN $working_resolver
|
||||||
printf "\n"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Main FakeIP check
|
# Main FakeIP check
|
||||||
nolog "Testing DNS resolution for $TEST_DOMAIN using 127.0.0.42"
|
nolog "➡️ DNS resolution: sing-box DNS server (127.0.0.42)"
|
||||||
echo "=== Testing with FakeIP DNS (127.0.0.42) ==="
|
|
||||||
local result=$(nslookup -timeout=2 $TEST_DOMAIN 127.0.0.42 2>&1)
|
local result=$(nslookup -timeout=2 $TEST_DOMAIN 127.0.0.42 2>&1)
|
||||||
echo "$result"
|
echo "$result"
|
||||||
|
|
||||||
@@ -2231,7 +2233,6 @@ global_check() {
|
|||||||
nolog "✅ /etc/resolv.conf OK"
|
nolog "✅ /etc/resolv.conf OK"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
nolog "Checking dnsmasq configuration..."
|
|
||||||
cachesize="$(uci get dhcp.@dnsmasq[0].cachesize 2>/dev/null)"
|
cachesize="$(uci get dhcp.@dnsmasq[0].cachesize 2>/dev/null)"
|
||||||
noresolv="$(uci get dhcp.@dnsmasq[0].noresolv 2>/dev/null)"
|
noresolv="$(uci get dhcp.@dnsmasq[0].noresolv 2>/dev/null)"
|
||||||
server="$(uci get dhcp.@dnsmasq[0].server 2>/dev/null)"
|
server="$(uci get dhcp.@dnsmasq[0].server 2>/dev/null)"
|
||||||
@@ -2249,15 +2250,7 @@ global_check() {
|
|||||||
nolog "✅ sing-box is running"
|
nolog "✅ sing-box is running"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if ! command -v nft >/dev/null 2>&1; then
|
|
||||||
nolog "nft is not installed"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
nolog "📄 NFT Table Podkop"
|
nolog "📄 NFT Table Podkop"
|
||||||
|
|
||||||
# Check if table exists
|
|
||||||
if ! nft list table inet PodkopTable >/dev/null 2>&1; then
|
if ! nft list table inet PodkopTable >/dev/null 2>&1; then
|
||||||
nolog "PodkopTable not found"
|
nolog "PodkopTable not found"
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user