From 6cf88e319b799839bbdb41a7ed6b5c9f94e8cd7c Mon Sep 17 00:00:00 2001 From: itdoginfo Date: Tue, 12 Nov 2024 18:11:44 +0300 Subject: [PATCH] Some fixes for #6 --- .github/workflows/build.yml | 1 + README.md | 7 ++- .../resources/view/podkop/podkop.js | 45 ++++++++++--------- podkop/files/etc/config/podkop | 18 ++++---- podkop/files/etc/init.d/podkop | 12 +---- 5 files changed, 42 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4509dc9..af585d4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,6 +3,7 @@ on: push: tags: - v* + jobs: build: name: Build podkop and luci-app-podkop diff --git a/README.md b/README.md index 22dce36..2025635 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,9 @@ opkg update && opkg install sing-box - [x] Не работает proxy при режимах main vpn, second proxy - [x] Не всегда отрабатывает ucitrack (применение настроек из luci). Не удаётся повторить - [x] All traffic for IP ломает инет на клиенте. Proxy mode -- [ ] Не отрабатывает рестарт, при awg и не применяются изменения при awg -- [ ] awg работает не стабильно +- [x] Не отрабатывает рестарт, при awg и не применяются изменения при awg +- [x] awg работает не стабильно +- [ ] Сеть рестартится при любом раскладе # ToDo Сделано @@ -95,6 +96,8 @@ opkg update && opkg install sing-box - [x] Нужен дебаг. Restart ucitrack в отдельный скрипт postinst, не отрабатывает. - [x] Закомментировать дефолтные значения у list. interface поставить в пустое. - [x] Скрипт установки: проверка установлен ли уже podkop. Если да, то просто предлагать обновится без установки тунелей и прокси. +- [ ] Изменить название "Alternative Config" +- [ ] "domain_service_enabled" Добавить _second Приоритет 2 - [ ] Списки доменов и подсетей с роутера diff --git a/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js b/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js index 32168e6..607b9d7 100644 --- a/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js +++ b/luci-app-podkop/htdocs/luci-static/resources/view/podkop/podkop.js @@ -48,12 +48,12 @@ return view.extend({ console.error('Error fetching devices:', error); } - o = s.taboption('basic', form.Flag, 'domain_list_enabled', _('Predefined Domain Lists'), _('github.com/itdoginfo/allow-domains')); + o = s.taboption('basic', form.Flag, 'domain_list_enabled', _('Community Domain Lists')); o.default = '0'; o.rmempty = false; o.ucisection = 'main'; - o = s.taboption('basic', form.ListValue, 'domain_list', _('Domain List'), _('Select a predefined domain list')); + o = s.taboption('basic', form.ListValue, 'domain_list', _('Domain List'), _('Select a list github.com/itdoginfo/allow-domains')); o.placeholder = 'placeholder'; o.value('ru_inside', 'Russia inside'); o.value('ru_outside', 'Russia outside'); @@ -62,7 +62,19 @@ return view.extend({ o.rmempty = false; o.ucisection = 'main'; - o = s.taboption('basic', form.Flag, 'subnets_list_enabled', _('Predefined Service Networks'), _('Enable routing for popular services like Twitter, Meta, and Discord')); + o = s.taboption('basic', form.Flag, 'delist_domains_enabled', _('Domain Exclusions'), _('Exclude specific domains from routing rules')); + o.default = '0'; + o.rmempty = false; + o.ucisection = 'main'; + o.depends('domain_list_enabled', '1'); + + o = s.taboption('basic', form.DynamicList, 'delist_domains', _('Excluded Domains'), _('Domains to be excluded from routing')); + o.placeholder = 'Delist domains'; + o.depends('delist_domains_enabled', '1'); + o.rmempty = false; + o.ucisection = 'main'; + + o = s.taboption('basic', form.Flag, 'subnets_list_enabled', _('Community Subnet Lists'), _('Enable routing for popular services like Twitter, Meta, and Discord')); o.default = '0'; o.rmempty = false; o.ucisection = 'main'; @@ -130,7 +142,7 @@ return view.extend({ o.rmempty = false; o.ucisection = 'main'; - o = s.taboption('basic', form.DynamicList, 'custom_subnets', _('User Subnets'), _('Enter subnet in CIDR notation (example: 192.168.1.0/24)')); + o = s.taboption('basic', form.DynamicList, 'custom_subnets', _('User Subnets'), _('Enter subnet in CIDR notation (example: 103.21.244.0/22)')); o.placeholder = 'Subnets list'; o.depends('custom_subnets_list_enabled', '1'); o.rmempty = false; @@ -143,7 +155,7 @@ return view.extend({ const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/; if (!subnetRegex.test(value)) { - return _('Invalid subnet format. Use format: X.X.X.X/Y (like 192.168.1.0/24)'); + return _('Invalid subnet format. Use format: X.X.X.X/Y (like 103.21.244.0/22)'); } const [ip, cidr] = value.split('/'); @@ -190,18 +202,7 @@ return view.extend({ } }; - o = s.taboption('basic', form.Flag, 'delist_domains_enabled', _('Domain Exclusions'), _('Exclude specific domains from routing rules')); - o.default = '0'; - o.rmempty = false; - o.ucisection = 'main'; - - o = s.taboption('basic', form.DynamicList, 'delist_domains', _('Excluded Domains'), _('Domains to be excluded from routing')); - o.placeholder = 'Delist domains'; - o.depends('delist_domains_enabled', '1'); - o.rmempty = false; - o.ucisection = 'main'; - - o = s.taboption('basic', form.Flag, 'all_traffic_from_ip_enabled', _('Force Proxy IPs'), _('Specify local IP addresses whose traffic will always use the configured route')); + o = s.taboption('basic', form.Flag, 'all_traffic_from_ip_enabled', _('IP for full redirection'), _('Specify local IP addresses whose traffic will always use the configured route')); o.default = '0'; o.rmempty = false; o.ucisection = 'main'; @@ -233,7 +234,7 @@ return view.extend({ return true; }; - o = s.taboption('basic', form.Flag, 'exclude_from_ip_enabled', _('Bypass Proxy IPs'), _('Specify local IP addresses that will never use the configured route')); + o = s.taboption('basic', form.Flag, 'exclude_from_ip_enabled', _('IP for exclusion'), _('Specify local IP addresses that will never use the configured route')); o.default = '0'; o.rmempty = false; o.ucisection = 'main'; @@ -265,6 +266,8 @@ return view.extend({ return true; }; + // Additional Settings Tab + o = s.tab('additional', _('Additional Settings')); o = s.taboption('additional', form.Flag, 'yacd', _('Yacd enable'), _('http://openwrt.lan:9090/ui')); @@ -297,6 +300,8 @@ return view.extend({ o.rmempty = false; o.ucisection = 'main'; + // Secondary Settings Tab + o = s.tab('alternative_config', _('Alternative Config')); o = s.taboption('alternative_config', form.Flag, 'second_enable', _('Alternative VPN/Proxy Enable'), _('Enable alternative VPN/Proxy configuration')); @@ -379,7 +384,7 @@ return view.extend({ o.depends('second_enable', '1'); o.ucisection = 'second'; - o = s.taboption('alternative_config', form.DynamicList, 'second_custom_subnets', _('User Subnets'), _('Enter subnet in CIDR notation (example: 192.168.1.0/24)')); + o = s.taboption('alternative_config', form.DynamicList, 'second_custom_subnets', _('User Subnets'), _('Enter subnet in CIDR notation (example: 103.21.244.0/22)')); o.placeholder = 'Subnets list'; o.depends('second_custom_subnets_list_enabled', '1'); o.rmempty = false; @@ -392,7 +397,7 @@ return view.extend({ const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/; if (!subnetRegex.test(value)) { - return _('Invalid subnet format. Use format: X.X.X.X/Y (like 192.168.1.0/24)'); + return _('Invalid subnet format. Use format: X.X.X.X/Y (like 103.21.244.0/22)'); } const [ip, cidr] = value.split('/'); diff --git a/podkop/files/etc/config/podkop b/podkop/files/etc/config/podkop index bdef263..6aead6a 100644 --- a/podkop/files/etc/config/podkop +++ b/podkop/files/etc/config/podkop @@ -26,12 +26,12 @@ config main 'main' config second 'second' option second_enable '0' - option mode 'proxy' - option interface 'wg1' - option proxy_string '' - option domain_list_enabled '0' - #list domains 'youtube' - option custom_domains_list_enabled '0' - #list custom_domains 'ifconfig.io' - option custom_subnets_list_enabled '0' - #list custom_subnets '' \ No newline at end of file + option second_mode 'proxy' + option second_interface '' + option second_proxy_string '' + option domain_service_enabled '0' + #list service_list 'youtube' + option second_custom_domains_list_enabled '0' + #list second_custom_domains 'ifconfig.io' + option second_custom_subnets_list_enabled '0' + #list second_custom_subnets '' \ No newline at end of file diff --git a/podkop/files/etc/init.d/podkop b/podkop/files/etc/init.d/podkop index 3300594..e3f0828 100755 --- a/podkop/files/etc/init.d/podkop +++ b/podkop/files/etc/init.d/podkop @@ -246,11 +246,6 @@ reload_service() { service_triggers() { log "service_triggers start" procd_add_config_trigger "config.change" "$NAME" "$initscript" reload 'on_config_change' - - config_get update_interval "main" "update_interval" - if [ -n "$update_interval" ]; then - add_cron_job - fi } log() { @@ -320,6 +315,7 @@ list_update() { log "Adding a custom domains list. Second podkop" add_set "podkop2_domains" "second" rm -f /tmp/dnsmasq.d/podkop2-custom-domains.lst + config_list_foreach second second_custom_domains "list_delist_domains" config_list_foreach second second_custom_domains "list_custom_domains_create" "podkop2" dnsmasq_config_check podkop2-custom-domains.lst fi @@ -539,11 +535,7 @@ lists_domains_download() { while true; do if curl -m 3 github.com; then curl -f $URL --output /tmp/dnsmasq.d/podkop-domains.lst - if [ "$connect" = "second" ]; then - sed -i 's/fw4#vpn_domains/PodkopTable#podkop2_domains/g' /tmp/dnsmasq.d/podkop-domains.lst - else - sed -i 's/fw4#vpn_domains/PodkopTable#podkop_domains/g' /tmp/dnsmasq.d/podkop-domains.lst - fi + sed -i 's/fw4#vpn_domains/PodkopTable#podkop_domains/g' /tmp/dnsmasq.d/podkop-domains.lst return 0 else log "GitHub is not available. Check the internet availability [$count sec]"