Compare commits

...

14 Commits

Author SHA1 Message Date
itdoginfo
ada807fec3 v0.3.24 2025-03-07 14:46:45 +03:00
itdoginfo
b28a5f1293 New default TTL=60, DOH=8.8.8.8 2025-03-07 14:46:22 +03:00
itdoginfo
2332eae5ff Added dns and github checker. JSON file for custom URL lists 2025-03-07 14:45:36 +03:00
itdoginfo
a755b6661d Merge pull request #59 from itdoginfo/feat/multiple-mixed-inbounds
Add support for multiple mixed inbounds with unique ports
2025-03-07 13:10:32 +03:00
Nikita Skryabin
567ce52253 feat: add support for multiple mixed inbounds with unique ports 2025-03-06 22:54:25 +03:00
Nikita Skryabin
b736360b66 fix: ensure routing rule for mixed-in is always applied 2025-03-06 21:55:40 +03:00
itdoginfo
3b2a7ba8af Create /usr/bin/podkop 2025-03-05 01:08:30 +03:00
itdoginfo
c96de62d96 v0.3.22 2025-03-04 13:36:43 +03:00
itdoginfo
14b7fbe4f7 Fix cidr for all_traffic+exclude 2025-03-04 13:36:20 +03:00
itdoginfo
3d05fe8be4 0.3.21 2025-03-03 21:28:21 +03:00
itdoginfo
6ddf9d3b24 Fix section for all_traffic_ip 2025-03-03 21:28:12 +03:00
itdoginfo
b401243f74 0.3.20 2025-03-03 18:26:19 +03:00
itdoginfo
407ef404ac Fix ip_cidr+fakeip, all_traffic_from_ip_enabled list 2025-03-03 18:26:02 +03:00
itdoginfo
f2e45bbbb9 Fix default value 2025-03-03 11:21:49 +03:00
8 changed files with 2006 additions and 1809 deletions

View File

@@ -74,8 +74,8 @@ Luci: Services/podkop
**Custom subnets enable** - Добавить подсети или IP-адреса. Для подсетей задать маску.
# Известные баги
- [ ] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS
- [ ] Update list из remote url domain не удаляет старые домены. А добавляет новые. Для подсетей тоже самое скорее всего. Пересоздавать ruleset?
- [x] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS
- [x] Update list из remote url domain не удаляет старые домены. А добавляет новые. Для подсетей тоже самое скорее всего. Пересоздавать ruleset?
# ToDo
Этот раздел не означает задачи, которые нужно брать и делать. Это общий список хотелок. Если вы хотите помочь, пожалуйста, спросите сначала в телеграмме.
@@ -84,6 +84,8 @@ Luci: Services/podkop
- [ ] Диагностика: Proxy check completed successfully предположительно не показывает IP, если вернулся это IPv6.
- [ ] Сделать галку запрещающую подкопу редачить dhcp. Допилить в исключение вместе с пустыми полями proxy и vpn
- [ ] Обработка ошибки `sing-box[9345]: FATAL[0000] start service: initialize DNS rule[2]: rule-set not found: main`. Когда не задана строка\интерфейс
- [ ] Проверка `/etc/resolv.conf` на наличие DNS-серверов
- [ ] Отслеживание интерфейса wan в sing-box
Низкий приоритет
- [ ] Галочка, которая режет доступ к doh серверам

View File

@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-podkop
PKG_VERSION:=0.3.19
PKG_VERSION:=0.3.24
PKG_RELEASE:=1
LUCI_TITLE:=LuCI podkop app

View File

@@ -589,7 +589,7 @@ const createModalContent = (title, content) => {
};
const showConfigModal = async (command, title) => {
const res = await safeExec('/etc/init.d/podkop', [command]);
const res = await safeExec('/usr/bin/podkop', [command]);
const formattedOutput = formatDiagnosticOutput(res.stdout || _('No output'));
ui.showModal(_(title), createModalContent(title, formattedOutput));
};
@@ -608,7 +608,7 @@ const ButtonFactory = {
return this.createButton({
label: config.label,
additionalClass: `cbi-button-${config.type || ''}`,
onClick: () => safeExec('/etc/init.d/podkop', [config.action])
onClick: () => safeExec('/usr/bin/podkop', [config.action])
.then(() => config.reload && location.reload()),
style: config.style
});
@@ -787,7 +787,7 @@ return view.extend({
// Additional Settings Tab (main section)
let o = mainSection.tab('additional', _('Additional Settings'));
o = mainSection.taboption('additional', form.Flag, 'yacd', _('Yacd enable'), _('http://openwrt.lan:9090/ui'));
o = mainSection.taboption('additional', form.Flag, 'yacd', _('Yacd enable'), _('<a href="http://openwrt.lan:9090/ui" target="_blank">openwrt.lan:9090/ui</a>'));
o.default = '0';
o.rmempty = false;
o.ucisection = 'main';
@@ -827,7 +827,7 @@ return view.extend({
o.value('dns.adguard-dns.com', 'AdGuard Default (dns.adguard-dns.com)');
o.value('unfiltered.adguard-dns.com', 'AdGuard Unfiltered (unfiltered.adguard-dns.com)');
o.value('family.adguard-dns.com', 'AdGuard Family (family.adguard-dns.com)');
o.default = '1.1.1.1';
o.default = '8.8.8.8';
o.rmempty = false;
o.ucisection = 'main';
o.validate = function (section_id, value) {
@@ -856,7 +856,7 @@ return view.extend({
};
o = mainSection.taboption('additional', form.Value, 'dns_rewrite_ttl', _('DNS Rewrite TTL'), _('Time in seconds for DNS record caching (default: 600)'));
o.default = '600';
o.default = '60';
o.rmempty = false;
o.ucisection = 'main';
o.validate = function (section_id, value) {
@@ -943,7 +943,7 @@ return view.extend({
return new Promise(async (resolve) => {
try {
const singboxStatusResult = await safeExec('/etc/init.d/podkop', ['get_sing_box_status']);
const singboxStatusResult = await safeExec('/usr/bin/podkop', ['get_sing_box_status']);
const singboxStatus = JSON.parse(singboxStatusResult.stdout || '{"running":0,"dns_configured":0}');
if (!singboxStatus.running) {
@@ -991,12 +991,12 @@ return view.extend({
system,
fakeipStatus
] = await Promise.all([
safeExec('/etc/init.d/podkop', ['get_status']),
safeExec('/etc/init.d/podkop', ['get_sing_box_status']),
safeExec('/etc/init.d/podkop', ['show_version']),
safeExec('/etc/init.d/podkop', ['show_luci_version']),
safeExec('/etc/init.d/podkop', ['show_sing_box_version']),
safeExec('/etc/init.d/podkop', ['show_system_info']),
safeExec('/usr/bin/podkop', ['get_status']),
safeExec('/usr/bin/podkop', ['get_sing_box_status']),
safeExec('/usr/bin/podkop', ['show_version']),
safeExec('/usr/bin/podkop', ['show_luci_version']),
safeExec('/usr/bin/podkop', ['show_sing_box_version']),
safeExec('/usr/bin/podkop', ['show_system_info']),
checkFakeIP()
]);
@@ -1039,14 +1039,14 @@ return view.extend({
const updateStatus = async () => {
try {
if (!versionReceived) {
const version = await safeExec('/etc/init.d/podkop', ['show_version'], 2000);
const version = await safeExec('/usr/bin/podkop', ['show_version'], 2000);
if (version.stdout) {
versionText = _('Podkop') + ' v' + version.stdout.trim();
versionReceived = true;
}
}
const singboxStatusResult = await safeExec('/etc/init.d/podkop', ['get_sing_box_status']);
const singboxStatusResult = await safeExec('/usr/bin/podkop', ['get_sing_box_status']);
const singboxStatus = JSON.parse(singboxStatusResult.stdout || '{"running":0,"dns_configured":0}');
const fakeipStatus = await checkFakeIP();

View File

@@ -5,6 +5,9 @@
"file": {
"/etc/init.d/podkop": [
"exec"
],
"/usr/bin/podkop": [
"exec"
]
},
"ubus": {

View File

@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=podkop
PKG_VERSION:=0.3.19
PKG_VERSION:=0.3.24
PKG_RELEASE:=1
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
@@ -49,6 +49,9 @@ define Package/podkop/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/podkop $(1)/etc/config/podkop
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) ./files/usr/bin/podkop $(1)/usr/bin/podkop
endef
$(eval $(call BuildPackage,podkop))

View File

@@ -1,13 +1,13 @@
config main 'main'
option mode 'proxy'
#option interface ''
option proxy_config_type ''
option proxy_config_type 'url'
#option outbound_json ''
option proxy_string ''
option domain_list_enabled '1'
option domain_list 'russia_inside'
list domain_list 'russia_inside'
option subnets_list_enabled '0'
option custom_domains_list_type 'disable'
option custom_domains_list_type 'disabled'
#list custom_domains ''
#option custom_domains_text ''
option custom_local_domains_list_enabled '0'
@@ -32,6 +32,6 @@ config main 'main'
option dont_touch_dhcp '0'
option update_interval '1d'
option dns_type 'doh'
option dns_server '1.1.1.1'
option dns_rewrite_ttl '600'
option dns_server '8.8.8.8'
option dns_rewrite_ttl '60'
option cache_file '/tmp/cache.db'

File diff suppressed because it is too large Load Diff

1970
podkop/files/usr/bin/podkop Executable file

File diff suppressed because it is too large Load Diff