mirror of
https://github.com/itdoginfo/podkop.git
synced 2025-12-06 19:46:52 +03:00
Some fixes for #6
This commit is contained in:
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@@ -3,6 +3,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- v*
|
- v*
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Build podkop and luci-app-podkop
|
name: Build podkop and luci-app-podkop
|
||||||
|
|||||||
@@ -69,8 +69,9 @@ opkg update && opkg install sing-box
|
|||||||
- [x] Не работает proxy при режимах main vpn, second proxy
|
- [x] Не работает proxy при режимах main vpn, second proxy
|
||||||
- [x] Не всегда отрабатывает ucitrack (применение настроек из luci). Не удаётся повторить
|
- [x] Не всегда отрабатывает ucitrack (применение настроек из luci). Не удаётся повторить
|
||||||
- [x] All traffic for IP ломает инет на клиенте. Proxy mode
|
- [x] All traffic for IP ломает инет на клиенте. Proxy mode
|
||||||
- [ ] Не отрабатывает рестарт, при awg и не применяются изменения при awg
|
- [x] Не отрабатывает рестарт, при awg и не применяются изменения при awg
|
||||||
- [ ] awg работает не стабильно
|
- [x] awg работает не стабильно
|
||||||
|
- [ ] Сеть рестартится при любом раскладе
|
||||||
|
|
||||||
# ToDo
|
# ToDo
|
||||||
Сделано
|
Сделано
|
||||||
@@ -95,6 +96,8 @@ opkg update && opkg install sing-box
|
|||||||
- [x] Нужен дебаг. Restart ucitrack в отдельный скрипт postinst, не отрабатывает.
|
- [x] Нужен дебаг. Restart ucitrack в отдельный скрипт postinst, не отрабатывает.
|
||||||
- [x] Закомментировать дефолтные значения у list. interface поставить в пустое.
|
- [x] Закомментировать дефолтные значения у list. interface поставить в пустое.
|
||||||
- [x] Скрипт установки: проверка установлен ли уже podkop. Если да, то просто предлагать обновится без установки тунелей и прокси.
|
- [x] Скрипт установки: проверка установлен ли уже podkop. Если да, то просто предлагать обновится без установки тунелей и прокси.
|
||||||
|
- [ ] Изменить название "Alternative Config"
|
||||||
|
- [ ] "domain_service_enabled" Добавить _second
|
||||||
|
|
||||||
Приоритет 2
|
Приоритет 2
|
||||||
- [ ] Списки доменов и подсетей с роутера
|
- [ ] Списки доменов и подсетей с роутера
|
||||||
|
|||||||
@@ -48,12 +48,12 @@ return view.extend({
|
|||||||
console.error('Error fetching devices:', error);
|
console.error('Error fetching devices:', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
o = s.taboption('basic', form.Flag, 'domain_list_enabled', _('Predefined Domain Lists'), _('<a href="https://github.com/itdoginfo/allow-domains" target="_blank">github.com/itdoginfo/allow-domains</a>'));
|
o = s.taboption('basic', form.Flag, 'domain_list_enabled', _('Community Domain Lists'));
|
||||||
o.default = '0';
|
o.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
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 <a href="https://github.com/itdoginfo/allow-domains" target="_blank">github.com/itdoginfo/allow-domains</a>'));
|
||||||
o.placeholder = 'placeholder';
|
o.placeholder = 'placeholder';
|
||||||
o.value('ru_inside', 'Russia inside');
|
o.value('ru_inside', 'Russia inside');
|
||||||
o.value('ru_outside', 'Russia outside');
|
o.value('ru_outside', 'Russia outside');
|
||||||
@@ -62,7 +62,19 @@ return view.extend({
|
|||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
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.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
@@ -130,7 +142,7 @@ return view.extend({
|
|||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
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.placeholder = 'Subnets list';
|
||||||
o.depends('custom_subnets_list_enabled', '1');
|
o.depends('custom_subnets_list_enabled', '1');
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
@@ -143,7 +155,7 @@ return view.extend({
|
|||||||
const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/;
|
const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/;
|
||||||
|
|
||||||
if (!subnetRegex.test(value)) {
|
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('/');
|
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 = 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';
|
|
||||||
|
|
||||||
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.default = '0';
|
o.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
@@ -233,7 +234,7 @@ return view.extend({
|
|||||||
return true;
|
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.default = '0';
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
@@ -265,6 +266,8 @@ return view.extend({
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Additional Settings Tab
|
||||||
|
|
||||||
o = s.tab('additional', _('Additional Settings'));
|
o = s.tab('additional', _('Additional Settings'));
|
||||||
|
|
||||||
o = s.taboption('additional', form.Flag, 'yacd', _('Yacd enable'), _('http://openwrt.lan:9090/ui'));
|
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.rmempty = false;
|
||||||
o.ucisection = 'main';
|
o.ucisection = 'main';
|
||||||
|
|
||||||
|
// Secondary Settings Tab
|
||||||
|
|
||||||
o = s.tab('alternative_config', _('Alternative Config'));
|
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'));
|
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.depends('second_enable', '1');
|
||||||
o.ucisection = 'second';
|
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.placeholder = 'Subnets list';
|
||||||
o.depends('second_custom_subnets_list_enabled', '1');
|
o.depends('second_custom_subnets_list_enabled', '1');
|
||||||
o.rmempty = false;
|
o.rmempty = false;
|
||||||
@@ -392,7 +397,7 @@ return view.extend({
|
|||||||
const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/;
|
const subnetRegex = /^(\d{1,3}\.){3}\d{1,3}\/\d{1,2}$/;
|
||||||
|
|
||||||
if (!subnetRegex.test(value)) {
|
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('/');
|
const [ip, cidr] = value.split('/');
|
||||||
|
|||||||
@@ -26,12 +26,12 @@ config main 'main'
|
|||||||
|
|
||||||
config second 'second'
|
config second 'second'
|
||||||
option second_enable '0'
|
option second_enable '0'
|
||||||
option mode 'proxy'
|
option second_mode 'proxy'
|
||||||
option interface 'wg1'
|
option second_interface ''
|
||||||
option proxy_string ''
|
option second_proxy_string ''
|
||||||
option domain_list_enabled '0'
|
option domain_service_enabled '0'
|
||||||
#list domains 'youtube'
|
#list service_list 'youtube'
|
||||||
option custom_domains_list_enabled '0'
|
option second_custom_domains_list_enabled '0'
|
||||||
#list custom_domains 'ifconfig.io'
|
#list second_custom_domains 'ifconfig.io'
|
||||||
option custom_subnets_list_enabled '0'
|
option second_custom_subnets_list_enabled '0'
|
||||||
#list custom_subnets ''
|
#list second_custom_subnets ''
|
||||||
@@ -246,11 +246,6 @@ reload_service() {
|
|||||||
service_triggers() {
|
service_triggers() {
|
||||||
log "service_triggers start"
|
log "service_triggers start"
|
||||||
procd_add_config_trigger "config.change" "$NAME" "$initscript" reload 'on_config_change'
|
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() {
|
log() {
|
||||||
@@ -320,6 +315,7 @@ list_update() {
|
|||||||
log "Adding a custom domains list. Second podkop"
|
log "Adding a custom domains list. Second podkop"
|
||||||
add_set "podkop2_domains" "second"
|
add_set "podkop2_domains" "second"
|
||||||
rm -f /tmp/dnsmasq.d/podkop2-custom-domains.lst
|
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"
|
config_list_foreach second second_custom_domains "list_custom_domains_create" "podkop2"
|
||||||
dnsmasq_config_check podkop2-custom-domains.lst
|
dnsmasq_config_check podkop2-custom-domains.lst
|
||||||
fi
|
fi
|
||||||
@@ -539,11 +535,7 @@ lists_domains_download() {
|
|||||||
while true; do
|
while true; do
|
||||||
if curl -m 3 github.com; then
|
if curl -m 3 github.com; then
|
||||||
curl -f $URL --output /tmp/dnsmasq.d/podkop-domains.lst
|
curl -f $URL --output /tmp/dnsmasq.d/podkop-domains.lst
|
||||||
if [ "$connect" = "second" ]; then
|
sed -i 's/fw4#vpn_domains/PodkopTable#podkop_domains/g' /tmp/dnsmasq.d/podkop-domains.lst
|
||||||
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
|
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
log "GitHub is not available. Check the internet availability [$count sec]"
|
log "GitHub is not available. Check the internet availability [$count sec]"
|
||||||
|
|||||||
Reference in New Issue
Block a user