Compare commits

...

178 Commits

Author SHA1 Message Date
itdoginfo
2074ccecce 0.3.15 2025-02-21 17:41:35 +03:00
itdoginfo
06f9bee038 #42 2025-02-21 17:40:52 +03:00
itdoginfo
891b8f713d Fix 2025-02-21 16:07:27 +03:00
itdoginfo
b96552fb49 Fix #41 2025-02-21 16:06:17 +03:00
itdoginfo
ce9a7cdc45 Fix \n 2025-02-21 15:40:22 +03:00
itdoginfo
6071a96e9c 0.3.14 2025-02-21 15:37:43 +03:00
itdoginfo
e17422a0cf Fix #37 #41 2025-02-21 15:37:20 +03:00
itdoginfo
2e78b2b4b8 Merge pull request #41 from itdoginfo/refactor/deduplicate-sections
Refactor/deduplicate sections
2025-02-21 14:55:03 +03:00
Ivan K
b84f3b6782 feat: add get_proxy_label function to podkop init script 2025-02-21 12:01:46 +03:00
itdoginfo
0f66305e50 Fix 2025-02-21 11:53:08 +03:00
Ivan K
a32a5c600b fix: update domain validation regex to allow single-level domains 2025-02-21 11:47:14 +03:00
Ivan K
89737efcbc refactor: refactor checkFakeIP to return a promise and update updateDiagnostics to use async/await 2025-02-21 11:22:37 +03:00
Ivan K
4608bc31cd refactor: update podkop.js to modularize configuration sections and improve validation logic 2025-02-21 11:09:47 +03:00
itdoginfo
d9e9f2dfe4 Update 2025-02-21 00:50:53 +03:00
Nikita Skryabin
bb9318e96f Merge pull request #37 from vernette/feature/fakeip-cache-path-and-ttl
feat(podkop): add configurable cache file path and dns rewrite_ttl options
2025-02-21 00:20:15 +03:00
Nikita Skryabin
7ff49c3e4e chore(init.d/podkop): remove unused cache file path and constant 2025-02-21 00:17:43 +03:00
Nikita Skryabin
134a79cb3b refactor(podkop.js): remove redundant path validation logic 2025-02-20 23:56:20 +03:00
Nikita Skryabin
560dda8604 feat(podkop): add translations for cache file and rewrite ttl options 2025-02-20 23:49:41 +03:00
Nikita Skryabin
255c08a6de feat(podkop.js): add validation for cache file path to ensure it meets specific criteria 2025-02-20 23:44:32 +03:00
Nikita Skryabin
1f3a65347e feat(podkop): add DNS Rewrite TTL configuration option 2025-02-20 23:27:50 +03:00
Nikita Skryabin
ec936e2369 feat(podkop): add configurable cache file path support 2025-02-20 22:49:58 +03:00
itdoginfo
cee934d139 Merge pull request #34 from itdoginfo/feature/fakeip-updater
feat: enhance FakeIP status check with periodic updates
2025-02-20 21:59:04 +03:00
Ivan K
a25c6b8013 feat: enhance FakeIP status check with periodic updates 2025-02-20 20:28:51 +03:00
itdoginfo
ec3a281cef v0.3.13 2025-02-20 17:22:15 +03:00
itdoginfo
86947e7dee Fix dns_server value 2025-02-20 17:22:03 +03:00
itdoginfo
ff5d017acc Update and rm install 0.2.5 2025-02-20 16:50:06 +03:00
itdoginfo
22d919657c Merge remote-tracking branch 'origin/main' 2025-02-20 16:48:20 +03:00
itdoginfo
3271f23ae0 Fix noresolv bakup 2025-02-20 16:45:22 +03:00
itdoginfo
35ea1a14cf Merge pull request #33 from vernette/feature/dns-server-selection
feat(podkop): add DNS server and protocol selection options
2025-02-20 16:39:05 +03:00
unknown
51a9cc5934 feat(podkop.po): add translations for DNS server address validation messages 2025-02-20 16:34:55 +03:00
unknown
e1df26e62b feat(podkop.js): add DNS server validation for IP and domain formats 2025-02-20 16:33:23 +03:00
unknown
75b8bef0e0 fix(podkop.js): update DNS protocol type and server labels to use translation function 2025-02-20 16:07:38 +03:00
unknown
1a6b0cac46 chore(init.d/podkop): remove redundant comments 2025-02-20 16:03:15 +03:00
unknown
e49bd91109 feat(podkop.po): add translations for DNS protocol and server options 2025-02-20 16:01:23 +03:00
unknown
85642a2585 feat(podkop.pot): add new DNS protocol and server options for translation 2025-02-20 16:01:12 +03:00
unknown
c31785d20e feat(init.d/podkop): add DNS resolver discovery and dynamic configuration 2025-02-20 15:57:52 +03:00
unknown
a0af04037a feat(podkop.js): add DNS protocol type and server options to configuration 2025-02-20 15:57:18 +03:00
itdoginfo
51fb10e30e fix 2025-02-20 00:43:39 +03:00
itdoginfo
069ea41ef8 Hide don't touch my dhcp 2025-02-20 00:25:24 +03:00
itdoginfo
7ee92123bc Fix use-application-dns.net 2025-02-19 23:08:38 +03:00
itdoginfo
5fd0e23cf9 Added backup dhcp and don't touch dhcp. Firefox disable doh FQDN moved to sing-box 2025-02-19 22:40:17 +03:00
itdoginfo
9b25669c8f Merge #30 and #31 2025-02-19 19:48:36 +03:00
itdoginfo
4b020671cc Merge pull request #30 from itdoginfo/feature/web-versions-view
feat: add version information tab to diagnostics
2025-02-19 19:42:40 +03:00
Ivan K
6222221847 docs: update Russian translations and add new strings for FakeIP status check 2025-02-19 19:18:22 +03:00
itdoginfo
6fa215e343 Merge pull request #31 from vernette/feature/dns-check
feat(podkop): add secure DNS probe domain configuration
2025-02-19 18:23:34 +03:00
Nikita Skryabin
a33835415f feat(init.d/podkop): add secure DNS probe domain configuration 2025-02-19 13:11:22 +03:00
Ivan K
f76c657bd7 style: remove unused CSS and JavaScript for tooltips 2025-02-18 22:11:58 +03:00
Ivan K
cceedd6c17 docs: update Russian translations for error messages and UI strings 2025-02-18 21:27:56 +03:00
Ivan K
8fa1986961 docs: update Russian translations for luci-app-podkop 2025-02-18 21:20:15 +03:00
Ivan K
8dec59d118 docs: update Russian translations for new UI elements in luci-app-podkop 2025-02-18 21:17:02 +03:00
Ivan K
c1fac487c7 style: add tooltip functionality and adjust CSS for better UI 2025-02-18 21:05:02 +03:00
Ivan K
d934bcc5e9 refactor: add async to diagnostics section UI 2025-02-18 18:56:34 +03:00
Ivan K
fc99bd7aaa feat: add spacing and line break to diagnostic tools section 2025-02-18 18:28:52 +03:00
Ivan K
b6cf73b974 feat: add service status and diagnostic tools to podkop UI 2025-02-18 18:23:29 +03:00
Ivan K
6df7c8abf8 feat: add URL validation for Shadowsocks and VLESS configurations from examples 2025-02-18 17:18:34 +03:00
Ivan K
8eb97a8023 Merge remote-tracking branch 'origin/main' into feature/web-versions-view 2025-02-18 14:05:22 +03:00
Ivan K
cd43449585 feat: add version information tab to diagnostics 2025-02-18 13:59:04 +03:00
itdoginfo
16c174d624 v0.3.10 2025-02-18 13:21:52 +03:00
itdoginfo
1c02a2208b Stop service before rm 2025-02-18 13:21:31 +03:00
itdoginfo
2c93e98755 Merge pull request #29 from itdoginfo/feature/web-versions-view
feat: add validation and warning messages for regional lists
2025-02-18 13:16:04 +03:00
Ivan K
66b179f282 fix: add extra configurations section to podkop.js 2025-02-18 13:01:15 +03:00
itdoginfo
4bbaae776c Merge pull request #28 from vernette/main
fix(install): resolve update failure due to improper cleanup
2025-02-18 12:52:30 +03:00
Ivan K
e31f313819 feat: add validation and warning messages for regional options in podkop.js 2025-02-18 12:49:24 +03:00
unknown
bd0e33781f fix(install): correct continue logic for existing package files 2025-02-18 12:06:33 +03:00
Nikita Skryabin
ade2b844ec fix(init.d/podkop): change rm command to remove only *.lst files in /tmp/podkop directory 2025-02-18 10:05:34 +03:00
Nikita Skryabin
6f997a6e73 refactor(install.sh): improve download retry logic 2025-02-18 09:59:01 +03:00
Nikita Skryabin
744de6aec2 chore(install.sh): replace rm command with find 2025-02-18 09:45:49 +03:00
itdoginfo
ae06de8189 v0.3.9 2025-02-17 23:36:53 +03:00
itdoginfo
1663f6665f Fix #27, added copy and div 2025-02-17 23:36:37 +03:00
itdoginfo
b005cbe50e Fix rule for section custom_download 2025-02-17 19:42:39 +03:00
itdoginfo
6c752d59ce Merge pull request #27 from VizzleTF/main
Поправил диагностику
2025-02-17 19:41:26 +03:00
itdoginfo
dbdd0560bf Added CODEOWNERS 2025-02-17 19:21:07 +03:00
Ivan K
aeacd9d8fd docs: update README.md with installation instructions 2025-02-17 19:09:52 +03:00
Ivan K
ded0bff23a chore: update build workflow to simplify install script generation 2025-02-17 19:09:09 +03:00
Ivan K
80ab7caee9 chore: update build workflow to use git commit -am 2025-02-17 18:49:29 +03:00
Ivan K
516063310a refactor: update install script generation to use current version tag 2025-02-17 18:40:54 +03:00
Ivan K
c6d72aa781 docs: update README with installation instructions for specific version 2025-02-17 18:28:53 +03:00
Ivan K
91fa2a2859 Merge branch 'itdoginfo:main' into main 2025-02-17 18:08:37 +03:00
Ivan K
13e84afcf0 feat: add new diagnostic checks and update install script 2025-02-17 18:08:13 +03:00
itdoginfo
88c160d3f8 Fix 2025-02-17 17:22:45 +03:00
itdoginfo
ebd185f633 Added install for 0.2.5 2025-02-17 16:34:27 +03:00
itdoginfo
e86bffb720 v0.3.8 2025-02-17 16:04:34 +03:00
itdoginfo
fb65b63639 Merge pull request #25 from VizzleTF/main
docs(ru): add new translations for podkop configuration
2025-02-17 15:51:19 +03:00
itdoginfo
daf7e30ed1 dnsmasq add 8.8.8.8. Validate domain_list 2025-02-17 15:22:55 +03:00
itdoginfo
dd62ecfbeb Check sing-box 2025-02-17 13:20:28 +03:00
Ivan K
41cb8cd650 Merge branch 'itdoginfo:main' into main 2025-02-17 13:08:35 +03:00
Ivan K
b7ad256986 docs(ru): add new translations for podkop configuration 2025-02-17 13:07:11 +03:00
itdoginfo
f88ffa1893 Fix install logic 2025-02-17 12:44:48 +03:00
itdoginfo
6f604ca765 Update 2025-02-16 17:53:14 +03:00
itdoginfo
52c6eeae12 Fix version 2025-02-16 17:52:57 +03:00
itdoginfo
778f2897bc Fix check iptables 2025-02-16 17:41:58 +03:00
itdoginfo
ca7bb77356 Fix 2025-02-16 16:57:16 +03:00
itdoginfo
da8195b795 Fix migrate 2025-02-16 15:59:07 +03:00
itdoginfo
98129720bb rm until 2025-02-16 14:29:50 +03:00
itdoginfo
3c1865c8a3 Expanding checkes. DNS 127.0.0.42. QUIC disable. Some fixes 2025-02-16 14:18:19 +03:00
itdoginfo
77ac728d47 Check sing-box 2025-02-16 12:16:43 +03:00
itdoginfo
1b5cfa3371 Move check sing-box to start 2025-02-15 23:32:18 +03:00
itdoginfo
590e040958 v0.3.4 2025-02-15 22:23:55 +03:00
itdoginfo
2323d426dd tmp check br-lan 2025-02-15 22:12:25 +03:00
itdoginfo
9bcc80f2be Checking file uploads 2025-02-15 19:17:59 +03:00
itdoginfo
bfde7518fb Merge pull request #20 from VizzleTF/main
feat(podkop): add show config + version features
2025-02-15 18:21:47 +03:00
Ivan K
18d466e166 feat(podkop): add version display in UI
- Added version display in Podkop UI
- Updated init script to fetch and display version
2025-02-15 17:58:39 +03:00
Ivan K
a30752d2e9 fix(init.d): decode URL-encoded characters in get_param
- Replaced `uhttpd` with `sed` for URL decoding
2025-02-15 17:47:09 +03:00
Ivan K
eb18537370 feat(podkop): add show_version command
- Update init script to include show_version command
- Add show_version function to display current version
- Update EXTRA_COMMANDS to include show_version
- Remove version from web and config
2025-02-15 17:30:14 +03:00
Ivan K
aa86445332 feat(podkop): add show config feature
- Add new button to show config with masked sensitive data
- Update init script with new command `show_config`
- Implement `show_config` function to mask sensitive data
- Update version in config file to 0.3.3
- Update proxy check logic for better error handling
2025-02-15 16:55:51 +03:00
itdoginfo
f1e7bfc377 Added procd instance 2025-02-15 14:32:40 +03:00
itdoginfo
34d524ef51 Fix version 2025-02-15 12:20:28 +03:00
itdoginfo
c914d38ff2 Issue S99sing-box. Fixed repeat rulesset in sections 2025-02-15 11:52:31 +03:00
itdoginfo
543b66a6cc Message modification 2025-02-14 21:24:56 +03:00
itdoginfo
c046930032 Added migration 2025-02-14 21:06:44 +03:00
itdoginfo
12264b6ec0 Fix 2025-02-14 18:27:12 +03:00
itdoginfo
d4b7d77e10 Fix update_interval 2025-02-14 17:47:59 +03:00
itdoginfo
7f6cc66eb1 Move to fakeip 2025-02-14 16:26:28 +03:00
itdoginfo
532fe10a1a Update 2024-12-14 23:43:31 +03:00
itdoginfo
b013572644 Version 0.2.5 2024-12-14 23:27:13 +03:00
itdoginfo
a6a171ef47 Fixed #9, #10, #11 2024-12-14 22:56:31 +03:00
itdoginfo
9e599450f6 Merge pull request #11 from VizzleTF/main
feat: Add diagnostic checks
2024-12-14 14:53:31 +03:00
Ivan K
e31b8b79a4 refactor: Improve proxy config masking 2024-12-13 19:28:34 +03:00
Ivan K
ab5e0afb92 fix: jq double output with 2 outputs in sing-box config 2024-12-13 18:07:01 +03:00
Ivan K
2fb89b34b5 chore: small rename 2024-12-13 17:49:16 +03:00
Ivan K
7ba5ed6347 feat: Кнопка обновления списка доменов и подсетей
refactor: Поменять curl на wget, убрать зависимость
2024-12-13 17:46:41 +03:00
Ivan K
7373b76a8e feat: Add translate for new functions 2024-12-13 16:04:06 +03:00
Ivan K
8b1da669bd Add diagnostic tab 2024-12-13 14:14:04 +03:00
Ivan K
86dafabee9 feat: Add diagnostics tab 2024-12-13 14:12:03 +03:00
Ivan K
6ba2681cf2 feat: Add diagnostic checks 2024-12-13 12:32:30 +03:00
itdoginfo
45be28a223 Merge pull request #10 from VizzleTF/main
Add some features
2024-12-12 22:15:51 +03:00
itdoginfo
1c14a3e7d5 Merge branch 'main' into main 2024-12-12 22:15:39 +03:00
Ivan K
e4eb4fe67a chore: add missing default vars 2024-12-12 16:59:09 +03:00
Ivan K
a4fcbfd70a chore: move to jq 2024-12-12 16:34:56 +03:00
itdoginfo
5cfb3b14f5 Update 2024-12-12 00:16:38 +03:00
itdoginfo
b4c6f0a852 Merge pull request #9 from Akiyamov/main
Custom domains from local file and dnsmasq.d confdir
2024-12-11 23:55:21 +03:00
Ivan K
e66ee9dda6 feat: Add declare ALPN variable 2024-12-09 12:23:51 +03:00
Akiyamov
d832be781a Execute confdir only for 24 and newer versions 2024-12-05 15:55:05 +05:00
Akiyamov
1d4f25dd45 Confdir for 24.10 2024-12-05 15:17:40 +05:00
Ivan K
2d05025533 Fix: if/fi construction 2024-12-04 11:09:23 +03:00
Ivan K
63acd224e8 Fix: remove duplicate function sing_box_config_outbound_json 2024-12-01 14:12:56 +03:00
Ivan K
00ee716236 Feature: Support tcp type to vless config 2024-12-01 13:55:45 +03:00
Ivan K
82c7c290d9 feat: Enhance custom domain/subnet input 2024-12-01 13:55:45 +03:00
Akiyamov
3b2c6de384 Fix filename 2024-11-30 20:22:46 +05:00
Akiyamov
72ceb1046d Merge branch 'itdoginfo:main' into main 2024-11-30 18:47:02 +05:00
Akiyamov
55461a8810 Added custom domains from local file, no luci version right now 2024-11-30 18:46:36 +05:00
Ivan K
2fe12f3f4d refactor: Add support configurations from String-examle.md 2024-11-30 14:42:57 +03:00
Ivan K
3c6e8366e1 refactor: Optimize configuration generation 2024-11-30 14:41:24 +03:00
Ivan K
10d74c6a6b feat: Add proxy configuration options 2024-11-30 14:07:54 +03:00
itdoginfo
f5fe9c6c99 Update 2024-11-29 11:42:29 +03:00
itdoginfo
fab4df338f Update 2024-11-29 00:03:04 +03:00
itdoginfo
5f50313e3d Update 2024-11-28 23:59:50 +03:00
itdoginfo
ba1f7781f8 Update 2024-11-14 18:08:47 +03:00
itdoginfo
4220678feb Added string example 2024-11-14 18:08:12 +03:00
itdoginfo
a813379f17 Fix 2024-11-13 16:30:51 +03:00
itdoginfo
4b8223f464 Fix case 2024-11-13 16:27:50 +03:00
itdoginfo
c46984b1e1 0.2.4 2024-11-13 15:43:16 +03:00
itdoginfo
fcb03ff51e Added install rus translate 2024-11-13 15:41:57 +03:00
itdoginfo
34ef7e074b Fix value #6 2024-11-13 15:41:21 +03:00
itdoginfo
be1db9626d Fixed alternative 2024-11-13 00:47:34 +03:00
itdoginfo
d232023140 Nft move br-lan to mark, renamed secondary, fixed po template 2024-11-13 00:44:26 +03:00
itdoginfo
a5d6b202a9 Update todo 2024-11-12 18:31:35 +03:00
itdoginfo
6cf88e319b Some fixes for #6 2024-11-12 18:11:44 +03:00
itdoginfo
f82503de0e Merge pull request #6 from VizzleTF/main
Вкладки + cron + перевод + ci
2024-11-12 16:09:15 +03:00
Ivan Kvashonkin
f520270864 refactor: Extract version from tag and add to translate ipk file 2024-11-11 21:23:25 +03:00
Ivan Kvashonkin
66c7eb0ccb feat: Improve custom routing options 2024-11-11 19:59:04 +03:00
Ivan Kvashonkin
52483887f4 fix: Rollout podkop init.d configuration 2024-11-11 19:08:06 +03:00
Ivan Kvashonkin
5195dfa715 feat: Add language translation package correct version 2024-11-11 18:51:34 +03:00
Ivan Kvashonkin
47699ee0d6 refactor: Optimize VPN/Proxy configuration messages 2024-11-11 18:46:52 +03:00
Ivan Kvashonkin
b6f1c4e747 refactor: Rename and update settings tab 2024-11-11 18:38:05 +03:00
Ivan Kvashonkin
b3678323ca feat: Consolidate settings into basic tab 2024-11-11 18:28:58 +03:00
Ivan Kvashonkin
d8a860fb2f fix: second proxy configuration fixing 2024-11-10 18:39:14 +03:00
Ivan Kvashonkin
56e93a3d5f refactor: Add ucisection attribute to taboptions 2024-11-10 17:40:23 +03:00
Ivan Kvashonkin
1ac1aa8f74 ci: Update CI build configuration 2024-11-10 16:11:03 +03:00
Ivan Kvashonkin
79761d9ba7 Merge branch 'main' of github.com:VizzleTF/podkop 2024-11-10 16:08:30 +03:00
Ivan Kvashonkin
6179306da9 fix: Fix secondary route configuration 2024-11-10 16:07:59 +03:00
Ivan K
8794fc72ed Update README.md 2024-11-09 20:29:13 +03:00
Ivan Kvashonkin
20d0d00620 docs: Remove GitHub link from description 2024-11-09 00:41:44 +03:00
Ivan K
9f5e99ab52 Streamline build (#1)
feat: Добавлена группировка по вкладкам
feat: Выбор частоты обновления списков по cron на вкладке Дополнительные настройки
feat: Перевод на русский язык
cicd: Добавлена поддержка пакета luci-i18n-podkop-ru
2024-11-09 00:04:17 +03:00
itdoginfo
f4485ba0b5 Merge pull request #3 from Slava-Shchipunov/main
Заменил инпут proxy string на textarea
2024-11-08 11:26:40 +03:00
Slava-Shchipunov
795ea2e384 feat: replace proxy string input to textarea 2024-11-08 02:10:33 +07:00
itdoginfo
4ba30ea117 Merge pull request #2 from Slava-Shchipunov/main
Добавил валидацию поля для ввода домена
2024-11-07 11:32:55 +03:00
Slava-Shchipunov
853af95404 feat: add domain input validation 2024-11-07 11:33:32 +07:00
20 changed files with 4522 additions and 1270 deletions

1
.github/CODEOWNERS vendored Normal file
View File

@@ -0,0 +1 @@
* @itdoginfo

View File

@@ -1,5 +1,4 @@
name: Build packages
on:
push:
tags:
@@ -9,7 +8,6 @@ jobs:
build:
name: Build podkop and luci-app-podkop
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.1
@@ -27,10 +25,20 @@ jobs:
docker cp podkop:/builder/bin/packages/x86_64/utilites/. ./bin/
docker cp podkop:/builder/bin/packages/x86_64/luci/. ./bin/
- name: Filter IPK files
run: |
# Извлекаем версию из тега, убирая префикс 'v'
VERSION=${GITHUB_REF#refs/tags/v}
mkdir -p ./filtered-bin
cp ./bin/luci-i18n-podkop-ru_*.ipk "./filtered-bin/luci-i18n-podkop-ru_${VERSION}.ipk"
cp ./bin/podkop_*.ipk ./filtered-bin/
cp ./bin/luci-app-podkop_*.ipk ./filtered-bin/
- name: Remove Docker container
run: docker rm podkop
- name: Release
uses: softprops/action-gh-release@v2.0.8
with:
files: ./bin/*.ipk
files: ./filtered-bin/*.ipk

View File

@@ -1,6 +1,6 @@
FROM openwrt/sdk:x86_64-v23.05.5
RUN ./scripts/feeds update -a && mkdir -p /builder/package/feeds/utilites/ && mkdir -p /builder/package/feeds/luci/
RUN ./scripts/feeds update -a && ./scripts/feeds install luci-base && mkdir -p /builder/package/feeds/utilites/ && mkdir -p /builder/package/feeds/luci/
COPY ./podkop /builder/package/feeds/utilites/podkop
COPY ./luci-app-podkop /builder/package/feeds/luci/luci-app-podkop

110
README.md
View File

@@ -1,6 +1,15 @@
Это альфа версия, может не работать. Обсуждение https://t.me/itdogchat - топик Podkop dev
# Вещи, которые вам нужно знать перед установкой
Если у вас установлен Getdomains, то его следует удалить.
- Это альфа версия, которая находится в активной разработке. Из версии в версию что-то может меняться.
- Основной функционал работает, но побочные штуки сейчас могут сбоить.
- При обновлении **обязатально** сбрасывайте кэш LuCI.
- Также при обновлении всегда заходите в конфигурацию и проверяйте свои настройки. Конфигурация может измениться.
- Необходимо минимум 15МБ свободного места на роутере. Роутерами с флешками на 16МБ сразу мимо.
- При старте программы редактируется конфиг Dnsmasq.
- Podkop редактирует конфиг sing-box. Обязательно сохраните ваш конфиг sing-box перед установкой, если он вам нужен.
- Информация здесь может быть устаревшей. Все изменения фиксируются в телеграм-чате https://t.me/itdogchat - топик **Podkop**.
- Если у вас не что-то не работает, то следуюет сходить в телеграм чат, прочитать закрепы и выполнить что там написано..
- Если у вас установлен Getdomains, его следует удалить.
# Удаление GetDomains скриптом
```
@@ -11,9 +20,10 @@ sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/domain-routing-openwr
# Установка Podkop
Пакет работает на всех архитектурах.
Будет точно работать только на OpenWrt 23.05.
Тестировался на **ванильной** OpenWrt 23.05 и OpenWrt 24.10.
На FriendlyWrt 23.05 присуствуют зависимости от iptables, которые ломают tproxy. Если у вас появляется warning про это в логах, следуйте инструкции по приведённой там ссылке.
Нужен dnsmasq-full. В автоматическом режиме ставится сам. Вручную надо поставить [самостоятельно](https://github.com/itdoginfo/podkop/blob/952dd6215a2a83d65937cf9e33534c42809091ed/install.sh#L20).
Поддержки APK на данный момент нет. APK будет сделан после того как разгребу основное.
## Автоматическая
```
@@ -28,9 +38,20 @@ sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/mai
Сделать `opkg update`, чтоб установились зависимости.
Скачать пакеты `podkop_*.ipk` и `luci-app-podkop_*.ipk` из релиза. `opkg install` сначала первый, потом второй.
# Обновление
Та же самая команда, что для установки. Скрипт обнаружит уже установленный podkop и предложит обновиться.
```
sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/main/install.sh)
```
# Удаление
```
opkg remove luci-app-podkop podkop
opkg remove luci-i18n-podkop-ru luci-app-podkop podkop
```
Если был установлен русский язык
```
opkg remove luci-i18n-podkop-ru
```
# Использование
@@ -42,26 +63,20 @@ Luci: Services/podkop
### Proxy
Для VLESS и Shadowsocks. Другие протоколы тоже будут, кидайте в чат примеры строк без чувствительных данных.
Для использования этого режима нужен sing-box:
```
opkg update && opkg install sing-box
```
В этом режиме просто копируйте строку в **Proxy String** и из неё автоматически настроится sing-box.
### VPN
Здесь у вас должен быть уже настроен WG/OpenVPN/OpenConnect etc, создана Zone и Forwarding.
Здесь у вас должен быть уже настроен WG/OpenVPN/OpenConnect etc, зона Zone и Forwarding не обязательны.
Просто выбрать интерфейс из списка.
## Настройка доменов и подсетей
**Domain list enable** - Включить общий список.
**Delist domains from main list enable** - Выключение заданных доменов из общего списка. Задавать списком.
**Community Lists** - Включить списки комьюнити
**Subnets list enable** - Включить подсети из общего списка, выбрать из предложенных.
**Custom domains enable** - Добавить свои домены. Задавать списком.
**Custom domains enable** - Добавить свои домены
**Custom subnets enable** - Добавить подсети или IP-адреса. Для подсетей задать маску.
@@ -69,10 +84,27 @@ 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 работает не стабильно
- [x] Сеть рестартится при любом раскладе
- [x] Выкл-вкл wg через luci не отрабатывает поднятие маршрута
- [ ] Если eof после последней строки в rt_tables, то скрипт не добавляет перенос строки
- [ ] В каких-то случаях плохо отрабатывает localfile
- [ ] warnging если в конфиге присуствует. Значит в системе есть https-dns-proxy, который тоже может перетирать конфигурацию dhcp. Рекомендовать его выключить и сделать disable. Возможно в будущем добавить несовместимость на уровне Makefile
```
option doh_backup_noresolv '0'
list doh_backup_server ''
list doh_backup_server ''
list doh_server '127.0.0.1#5053'
list doh_server '127.0.0.1#5054'
```
- [x] Только кастомный remote list не создаёт секцию в route-rules-rule-set и dns-rules-ruleset
- [ ] Не отрабатывает service podkop stop, если podkop запущен и не может, к пример, зарезолвить домен с сломанным DNS
- [ ] Длинный label ломает sing-box
# ToDo
Этот раздел не означает задачи, которые нужно брать и делать. Это общий список хотелок. Если вы хотите помочь, пожалуйста, спросите сначала в телеграмме.
Сделано
- [x] Скрипт для автоматической установки.
- [x] Подсети дискорда.
@@ -89,30 +121,51 @@ opkg update && opkg install sing-box
- [x] Вернуть две цепочки nft
- [x] Ntp (порт 123) делать маркировку 0x0. По галке
- [x] Открытый прокси порт на роутере для браузеров
Приоритет 1
- [x] Автонастройка wireguard по примеру getdomains
- [x] Автонастройка awg по примеру getdomains
- [x] RU перевод
- [x] Переделать на PROCD и выкинуть ucitrack.
- [x] Нужен дебаг. Restart ucitrack в отдельный скрипт postinst, не отрабатывает.
- [x] Закомментировать дефолтные значения у list. interface поставить в пустое.
- [x] Скрипт установки: проверка установлен ли уже podkop. Если да, то просто предлагать обновится без установки тунелей и прокси.
Приоритет 1
- [x] Изменить название "Alternative Config"
- [x] "domain_service_enabled" Добавить _second
- [x] Установка Ru пакета в install.sh
- [x] Правка nft mark, tproxy
- [x] Правка перевода минимальная
- [x] Вставлять готовый outdbound вместо строки. Отдельная галка, которая в идеале должны скрывать поле для строки
- [ ] udp over tcp для ss сделать с выбором:
1) отключен (ПО на сервере -Shadowsocks)
2) включен, версия 2 (новые релизы xray-core, sing-box на сервере)
3) включен, версия 1 (старые релизы xray, sing-box на сервере)
Проблема в том, что это нужно только если SS. Выставлять выбор при парсинг из конфига вопрос можно ли. Если совсем тупо - сделать костыль в допонительные настройки
- [x] Проверка места в скрипте install. Если доступно меньше 20MB - exit 1 c выводом колько надо и сколько доступно. + показ модели роутера
- [x] Правило запрещающее QUIC
- [ ] Проверить обновление списков, отрабатывает ли
- [ ] Проверка на ванильную openwrt
- [ ] Проверка откуда установлен sing-box. Например, проверять установлен ли он из официального репозитория
- [x] TG в сервисы
- [ ] Диагностика: Proxy check completed successfully предположительно не показывает IP, если вернулся это IPv6.
- [ ] Сделать галку запрещающую подкопу редачить dhcp. Допилить в исключение вместе с пустыми полями proxy и vpn
- [x] Валидации предустановленных значений. Если прописаны другие, то вывод в лог о неизвестной переменной и продолжение работы
- [ ] Проверка, что версия в makefile совпадает с тегом
Приоритет 2
- [ ] Списки доменов и подсетей с роутера
- [ ] Кнопка обновления списка доменов и подсетей
- [x] Списки доменов и подсетей с роутера
- [x] Кнопка обновления списка доменов и подсетей. Запихнуть в главное меню
- [ ] IPv6
- [ ] Придумать автонастройку DNS через stubby итд. Как лучше это реализовать.
- [ ] Удаление подсетей CF из domain sets раз в N часов
- [x] Автонастройка wireguard по примеру getdomains
- [x] Автонастройка awg по примеру getdomains
Wiki
- [x] Тема
- [x] Изначальное наполнение
Низкий приоритет
- [ ] Переменная, раз во сколько часов обновлять списки
- [x] Переменная, раз во сколько часов обновлять списки
- [ ] Галочка, которая режет доступ к doh серверам
- [ ] Свой конфиг sing-box
- [x] Поменять curl на wget, убрать зависимость. Проверять доступность списков лучше всего curl`ом
Рефактор
- [ ] Handle для sing-box
@@ -120,10 +173,6 @@ Wiki
- [ ] Формирование json для sing-box на уровне jq, а не шаблонов
- [ ] Unit тесты (BATS)
- [ ] Интеграционые тесты бекенда (OpenWrt rootfs + BATS)
- [ ] RU перевод
Хз как сделать
- [ ] Добавить label от конфига vless\ss\etc в luci.
# Разработка
Есть два варианта:
@@ -173,6 +222,9 @@ make package/luci-app-podkop/{clean,compile} V=s
.ipk лежат в `bin/packages/x86_64/base/`
## Примеры строкs
https://github.com/itdoginfo/podkop/blob/main/String-example.md
## Ошибки
```
Makefile:17: /SDK/feeds/luci/luci.mk: No such file or directory

63
String-example.md Normal file
View File

@@ -0,0 +1,63 @@
# Shadowsocks
Тут всё просто
## Shadowsocks-old
```
ss://YWVzLTI1Ni1nY206RmJwUDJnSStPczJKK1kzdkVhTnVuOUZ2ZjJZYUhNUlN1L1BBdEVqMks1VT0@example.com:80?type=tcp#example-ss-old
```
## Shadowsocks-2022
```
ss://2022-blake3-aes-128-gcm:5NgF%2B9eM8h4OnrTbHp%2B8UA%3D%3D%3Am8tbs5aKLYG7dN9f3xsiKA%3D%3D@example.com:80#example-ss2022
```
```
ss://MjAyMi1ibGFrZTMtYWVzLTEyOC1nY206Y21lZklCdDhwMTJaZm1QWUplMnNCNThRd3R3NXNKeVpUV0Z6ZENKV2taOD06eEJHZUxiMWNPTjFIeE9CenF6UlN0VFdhUUh6YWM2cFhRVFNZd2dVV2R1RT0@example.com:81?type=tcp#example-ss2022
```
Может быть без `?type=tcp`
# VLESS
## Reality
```
vless://eb445f4b-ddb4-4c79-86d5-0833fc674379@example.com:443?type=tcp&security=reality&pbk=ARQzddtXPJZHinwkPbgVpah9uwPTuzdjU9GpbUkQJkc&fp=chrome&sni=yahoo.com&sid=6cabf01472a3&spx=%2F&flow=xtls-rprx-vision#vless-reality
```
```
vless://UUID@IP:2082?security=reality&sni=dash.cloudflare.com&alpn=h2,http/1.1&allowInsecure=1&fp=chrome&pbk=pukkey&sid=id&type=grpc&encryption=none#vless-reality-strange
```
## TLS
1.
```
vless://8100b6eb-3fd1-4e73-8ccf-b4ac961232d6@example.com:443?type=tcp&security=tls&fp=&alpn=h3%2Ch2%2Chttp%2F1.1#vless-tls
```
2.
```
vless://8b60389a-7a01-4365-9244-c87f12bb98cf@example.com:443?security=tls&sni=SITE&fp=chrome&type=tcp&flow=xtls-rprx-vision&encryption=none#vless-tls-withot-alpn
```
3.
```
vless://8b60389a-7a01-4365-9244-c87f12bb98cf@example.com:443/?type=ws&encryption=none&path=%2Fwebsocket&security=tls&sni=sni.server.com&fp=chrome#vless-tls-ws
```
4.
```
vless://[someid]@[someserver]?security=tls&sni=[somesni]&type=ws&path=/?ed%3D2560&host=[somesni]&encryption=none#vless-tls-ws-2
```
5.
```
vless://uuid@server:443?security=tls&sni=server&fp=chrome&type=ws&path=/websocket&encryption=none#vless-tls-ws-3
```
6.
```
vless://33333@example.com:443/?type=ws&encryption=none&path=%2Fwebsocket&security=tls&sni=example.com&fp=chrome#vless-tls-ws-4
```
## No security
```
vless://8b60389a-7a01-4365-9244-c87f12bb98cf@example.com:443?type=tcp&security=none#vless-tls-no-encrypt
```

View File

@@ -2,39 +2,27 @@
REPO="https://api.github.com/repos/itdoginfo/podkop/releases/latest"
IS_SHOULD_RESTART_NETWORK=false
IS_SHOULD_RESTART_NETWORK=
DOWNLOAD_DIR="/tmp/podkop"
COUNT=3
rm -rf "$DOWNLOAD_DIR"
mkdir -p "$DOWNLOAD_DIR"
main() {
wget -qO- "$REPO" | grep -o 'https://[^"]*\.ipk' | while read -r url; do
filename=$(basename "$url")
echo "Download $filename..."
wget -q -O "$DOWNLOAD_DIR/$filename" "$url"
done
check_system
sing_box
echo "opkg update"
opkg update
opkg update
if opkg list-installed | grep -q dnsmasq-full; then
echo "dnsmasq-full already installed"
else
echo "Installed dnsmasq-full"
cd /tmp/ && opkg download dnsmasq-full
opkg remove dnsmasq && opkg install dnsmasq-full --cache /tmp/
[ -f /etc/config/dhcp-opkg ] && cp /etc/config/dhcp /etc/config/dhcp-old && mv /etc/config/dhcp-opkg /etc/config/dhcp
fi
if [ -f "/etc/init.d/podkop" ]; then
if [ -f "/etc/init.d/podkop" ]; then
printf "\033[32;1mPodkop is already installed. Just upgrade it? (y/n)\033[0m\n"
printf "\033[32;1my - Only upgrade podkop\033[0m\n"
printf "\033[32;1mn - Upgrade and install proxy or tunnels\033[0m\n"
printf "\033[32;1mn - Upgrade and install tunnels (WG, AWG, OpenVPN, OC)\033[0m\n"
while true; do
read -r -p '' UPDATE
case $UPDATE in
y)
echo "Upgraded podkop..."
break
@@ -44,43 +32,97 @@ if [ -f "/etc/init.d/podkop" ]; then
add_tunnel
break
;;
*)
echo "Please enter y or n"
;;
esac
done
else
else
echo "Installed podkop..."
add_tunnel
fi
fi
opkg install $DOWNLOAD_DIR/podkop*.ipk
opkg install $DOWNLOAD_DIR/luci-app-podkop*.ipk
download_success=0
while read -r url; do
filename=$(basename "$url")
filepath="$DOWNLOAD_DIR/$filename"
rm -f $DOWNLOAD_DIR/podkop*.ipk $DOWNLOAD_DIR/luci-app-podkop*.ipk
attempt=0
while [ $attempt -lt $COUNT ]; do
echo "Download $filename (count $((attempt+1)))..."
if wget -q -O "$filepath" "$url"; then
if [ -s "$filepath" ]; then
echo "$filename successfully downloaded"
download_success=1
break
fi
fi
echo "Download error $filename. Retry..."
rm -f "$filepath"
attempt=$((attempt+1))
done
if [ "$IS_SHOULD_RESTART_NETWORK" ]; then
if [ $attempt -eq $COUNT ]; then
echo "Failed to download $filename after $COUNT attempts"
fi
done < <(wget -qO- "$REPO" | grep -o 'https://[^"[:space:]]*\.ipk')
if [ $download_success -eq 0 ]; then
echo "No packages were downloaded successfully"
exit 1
fi
for pkg in podkop luci-app-podkop; do
file=$(ls "$DOWNLOAD_DIR" | grep "^$pkg" | head -n 1)
if [ -n "$file" ]; then
echo "Installing $file"
opkg install "$DOWNLOAD_DIR/$file"
sleep 3
fi
done
ru=$(ls "$DOWNLOAD_DIR" | grep "luci-i18n-podkop-ru" | head -n 1)
if [ -n "$ru" ]; then
printf "\033[32;1mРусский язык интерфейса ставим? y/n (Need a Russian translation?)\033[0m "
while true; do
read -r -p '' RUS
case $RUS in
y)
opkg install "$DOWNLOAD_DIR/$ru"
break
;;
n)
break
;;
*)
echo "Введите y или n"
;;
esac
done
fi
find "$DOWNLOAD_DIR" -type f -name '*podkop*' -exec rm {} \;
if [ "$IS_SHOULD_RESTART_NETWORK" ]; then
printf "\033[32;1mRestart network\033[0m\n"
/etc/init.d/network restart
fi
fi
}
add_tunnel() {
echo "What type of VPN or proxy will be used? We also can automatically configure Wireguard and Amnezia WireGuard."
echo "1) VLESS, Shadowsocks (A sing-box will be installed)"
echo "2) Wireguard"
echo "3) AmneziaWG"
echo "4) OpenVPN"
echo "5) OpenConnect"
echo "6) Skip this step"
printf "\033[32;1mWill you be using Wireguard, AmneziaWG, OpenVPN, OpenConnect? If yes, select a number and they will be automatically installed\033[0m\n"
echo "1) Wireguard"
echo "2) AmneziaWG"
echo "3) OpenVPN"
echo "4) OpenConnect"
echo "5) I use VLESS/SS. Skip this step"
while true; do
read -r -p '' TUNNEL
case $TUNNEL in
1)
opkg install sing-box
break
;;
2)
opkg install wireguard-tools luci-proto-wireguard luci-app-wireguard
printf "\033[32;1mDo you want to configure the wireguard interface? (y/n): \033[0m\n"
@@ -95,7 +137,7 @@ add_tunnel() {
break
;;
3)
2)
install_awg_packages
printf "\033[32;1mThere are no instructions for manual configure yet. Do you want to configure the amneziawg interface? (y/n): \033[0m\n"
@@ -108,20 +150,20 @@ add_tunnel() {
break
;;
4)
3)
opkg install opkg install openvpn-openssl luci-app-openvpn
printf "\e[1;32mUse these instructions to configure https://itdog.info/nastrojka-klienta-openvpn-na-openwrt/\e[0m\n"
break
;;
5)
4)
opkg install opkg install openconnect luci-proto-openconnect
printf "\e[1;32mUse these instructions to configure https://itdog.info/nastrojka-klienta-openconnect-na-openwrt/\e[0m\n"
break
;;
6)
echo "Skip. Use this if you're installing an upgrade."
5)
echo "Installation without additional dependencies."
break
;;
@@ -353,4 +395,43 @@ wg_awg_setup() {
handler_network_restart
}
check_system() {
# Get router model
MODEL=$(cat /tmp/sysinfo/model)
echo "Router model: $MODEL"
# Check available space
AVAILABLE_SPACE=$(df /overlay | awk 'NR==2 {print $4}')
REQUIRED_SPACE=15360 # 15MB in KB
if [ "$AVAILABLE_SPACE" -lt "$REQUIRED_SPACE" ]; then
printf "\033[31;1mError: Insufficient space in flash\033[0m\n"
echo "Available: $((AVAILABLE_SPACE/1024))MB"
echo "Required: $((REQUIRED_SPACE/1024))MB"
exit 1
fi
if ! nslookup google.com >/dev/null 2>&1; then
printf "\033[31;1mDNS not working\033[0m\n"
exit 1
fi
if opkg list-installed | grep -qE "iptables|kmod-iptab"; then
printf "\033[31;1mFound incompatible iptables packages. If you're using FriendlyWrt: https://t.me/itdogchat/44512/181082\033[0m\n"
fi
}
sing_box() {
if ! opkg list-installed | grep -q "^sing-box"; then
return
fi
sing_box_version=$(sing-box version | head -n 1 | awk '{print $3}')
required_version="1.11.1"
if [ "$(echo -e "$sing_box_version\n$required_version" | sort -V | head -n 1)" != "$required_version" ]; then
opkg remove sing-box
fi
}
main

View File

@@ -1,19 +1,20 @@
# See /LICENSE for more information.
# This is free software, licensed under the GNU General Public License v2.
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-podkop
PKG_VERSION:=0.2.3
PKG_VERSION:=0.3.15
PKG_RELEASE:=1
LUCI_TITLE:=LuCI podkop app
LUCI_DEPENDS:=+luci-base +podkop
LUCI_PKGARCH:=all
LUCI_LANG.ru:=Русский (Russian)
LUCI_LANG.en:=English
PKG_LICENSE:=GPL-2.0-or-later
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
LUCI_LANGUAGES:=en ru
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@@ -0,0 +1,557 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "Podkop configuration"
msgstr "Настройка Podkop"
msgid "Basic Settings"
msgstr "Основные настройки"
msgid "Additional Settings"
msgstr "Дополнительные настройки"
msgid "Secondary Config"
msgstr "Второй маршрут"
msgid "Secondary VPN/Proxy Enable"
msgstr "Включить второй VPN/Proxy"
msgid "Enable secondary VPN/Proxy configuration"
msgstr "Включить конфигурацию второго VPN/Proxy"
msgid "Connection Type"
msgstr "Тип подключения"
msgid "Select between VPN and Proxy connection methods for traffic routing"
msgstr "Выберите между VPN и Proxy методами для маршрутизации трафика"
msgid "Configuration Type"
msgstr "Тип конфигурации"
msgid "Select how to configure the proxy"
msgstr "Выберите способ настройки прокси"
msgid "Connection URL"
msgstr "URL подключения"
msgid "Outbound Config"
msgstr "Конфигурация Outbound"
msgid "Proxy Configuration URL"
msgstr "URL конфигурации прокси"
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
msgstr "Введите строку подключения, начинающуюся с vless:// или ss:// для настройки прокси"
msgid "Outbound Configuration"
msgstr "Конфигурация исходящего соединения"
msgid "Enter complete outbound configuration in JSON format"
msgstr "Введите полную конфигурацию исходящего соединения в формате JSON"
msgid "Network Interface"
msgstr "Сетевой интерфейс"
msgid "Select network interface for VPN connection"
msgstr "Выберите сетевой интерфейс для VPN подключения"
msgid "Community Lists"
msgstr "Предустановленные списки"
msgid "Service List"
msgstr "Список сервисов"
msgid "Select predefined service for routing"
msgstr "Выберите предустановленные сервисы для маршрутизации"
msgid "User Domain List Type"
msgstr "Тип пользовательского списка доменов"
msgid "Select how to add your custom domains"
msgstr "Выберите способ добавления пользовательских доменов"
msgid "Disabled"
msgstr "Отключено"
msgid "Dynamic List"
msgstr "Динамический список"
msgid "Text List"
msgstr "Текстовый список"
msgid "User Domains"
msgstr "Пользовательские домены"
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
msgstr "Введите имена доменов без протоколов (пример: sub.example.com или example.com)"
msgid "User Domains List"
msgstr "Список пользовательских доменов"
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
msgstr "Введите имена доменов через запятую, пробел или новую строку (пример: sub.example.com, example.com или один домен на строку)"
msgid "Local Domain Lists"
msgstr "Локальные списки доменов"
msgid "Use the list from the router filesystem"
msgstr "Использовать список из файловой системы роутера"
msgid "Local Domain Lists Path"
msgstr "Путь к локальным спискам доменов"
msgid "Enter to the list file path"
msgstr "Введите путь к файлу списка"
msgid "Remote Domain Lists"
msgstr "Удаленные списки доменов"
msgid "Download and use domain lists from remote URLs"
msgstr "Загрузка и использование списков доменов с удаленных URL"
msgid "Remote Domain URLs"
msgstr "URL удаленных доменов"
msgid "Enter full URLs starting with http:// or https://"
msgstr "Введите полные URL, начинающиеся с http:// или https://"
msgid "User Subnet List Type"
msgstr "Тип пользовательского списка подсетей"
msgid "Select how to add your custom subnets"
msgstr "Выберите способ добавления пользовательских подсетей"
msgid "Text List (comma/space/newline separated)"
msgstr "Текстовый список (разделенный запятыми/пробелами/новыми строками)"
msgid "User Subnets"
msgstr "Пользовательские подсети"
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
msgstr "Введите подсети в нотации CIDR (пример: 103.21.244.0/22) или отдельные IP-адреса"
msgid "User Subnets List"
msgstr "Список пользовательских подсетей"
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
msgstr "Введите подсети в нотации CIDR или отдельные IP-адреса через запятую, пробел или новую строку"
msgid "Remote Subnet Lists"
msgstr "Удаленные списки подсетей"
msgid "Download and use subnet lists from remote URLs"
msgstr "Загрузка и использование списков подсетей с удаленных URL"
msgid "Remote Subnet URLs"
msgstr "URL удаленных подсетей"
msgid "IP for full redirection"
msgstr "Принудительные прокси IP"
msgid "Specify local IP addresses whose traffic will always use the configured route"
msgstr "Укажите локальные IP-адреса, трафик которых всегда будет использовать настроенный маршрут"
msgid "Local IPs"
msgstr "Локальные IP"
msgid "Enter valid IPv4 addresses"
msgstr "Введите действительные IPv4 адреса"
msgid "IP for exclusion"
msgstr "Исключения прокси IP"
msgid "Specify local IP addresses that will never use the configured route"
msgstr "Укажите локальные IP-адреса, которые никогда не будут использовать настроенный маршрут"
msgid "Mixed enable"
msgstr "Включить смешанный режим"
msgid "Browser port: 2080"
msgstr "Порт браузера: 2080"
msgid "Yacd enable"
msgstr "Включить Yacd"
msgid "Exclude NTP"
msgstr "Исключить NTP"
msgid "For issues with open connections sing-box"
msgstr "Для проблем с открытыми соединениями sing-box"
msgid "QUIC disable"
msgstr "Отключить QUIC"
msgid "For issues with the video stream"
msgstr "Для проблем с видеопотоком"
msgid "List Update Frequency"
msgstr "Частота обновления списков"
msgid "Select how often the lists will be updated"
msgstr "Выберите, как часто будут обновляться списки"
msgid "Every hour"
msgstr "Каждый час"
msgid "Every 2 hours"
msgstr "Каждые 2 часа"
msgid "Every 3 hours"
msgstr "Каждые 3 часа"
msgid "Every 4 hours"
msgstr "Каждые 4 часа"
msgid "Every 6 hours"
msgstr "Каждые 6 часов"
msgid "Every 12 hours"
msgstr "Каждые 12 часов"
msgid "Every day"
msgstr "Каждый день"
msgid "Every 3 days"
msgstr "Каждые 3 дня"
msgid "Once a day at 04:00"
msgstr "Раз в день в 04:00"
msgid "Once a week on Sunday at 04:00"
msgstr "Раз в неделю в воскресенье в 04:00"
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
msgstr "Неверный формат домена. Введите домен без протокола (пример: sub.example.com)"
msgid "URL must use http:// or https:// protocol"
msgstr "URL должен использовать протокол http:// или https://"
msgid "Invalid URL format. URL must start with http:// or https://"
msgstr "Неверный формат URL. URL должен начинаться с http:// или https://"
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
msgstr "Неверный формат. Используйте формат: X.X.X.X или X.X.X.X/Y"
msgid "IP address parts must be between 0 and 255"
msgstr "Части IP-адреса должны быть между 0 и 255"
msgid "CIDR must be between 0 and 32"
msgstr "CIDR должен быть между 0 и 32"
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
msgstr "Неверный формат IP. Используйте формат: X.X.X.X (например: 192.168.1.1)"
msgid "Invalid domain format: %s. Enter domain without protocol"
msgstr "Неверный формат домена: %s. Введите домен без протокола"
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
msgstr "Неверный формат: %s. Используйте формат: X.X.X.X или X.X.X.X/Y"
msgid "IP parts must be between 0 and 255 in: %s"
msgstr "Части IP-адреса должны быть между 0 и 255 в: %s"
msgid "CIDR must be between 0 and 32 in: %s"
msgstr "CIDR должен быть между 0 и 32 в: %s"
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
msgstr "Неверный формат пути. Путь должен начинаться с \"/\" и содержать только допустимые символы (буквы, цифры, \"-\", \"_\", \"/\", \".\")"
msgid "Invalid path format"
msgstr "Неверный формат пути"
msgid "JSON must contain at least type, server and server_port fields"
msgstr "JSON должен содержать как минимум поля type, server и server_port"
msgid "Invalid JSON format"
msgstr "Неверный формат JSON"
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
msgstr "Предупреждение: %s нельзя использовать вместе с %s. Предыдущие варианты были удалены."
msgid "Regional options cannot be used together"
msgstr "Нельзя использовать несколько региональных опций"
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
msgstr "Внимание: Russia inside может использоваться только с Meta, Twitter, Discord и Telegram. %s были удалены из выбора."
msgid "Russia inside restrictions"
msgstr "Ограничения Russia inside"
msgid "URL must start with vless:// or ss://"
msgstr "URL должен начинаться с vless:// или ss://"
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
msgstr "Неверный формат URL Shadowsocks: отсутствует разделитель метода и пароля \":\""
msgid "Invalid Shadowsocks URL format"
msgstr "Неверный формат URL Shadowsocks"
msgid "Invalid Shadowsocks URL: missing server address"
msgstr "Неверный URL Shadowsocks: отсутствует адрес сервера"
msgid "Invalid Shadowsocks URL: missing server"
msgstr "Неверный URL Shadowsocks: отсутствует сервер"
msgid "Invalid Shadowsocks URL: missing port"
msgstr "Неверный URL Shadowsocks: отсутствует порт"
msgid "Invalid port number. Must be between 1 and 65535"
msgstr "Неверный номер порта. Должен быть между 1 и 65535"
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
msgstr "Неверный URL Shadowsocks: отсутствует или неверный формат сервера/порта"
msgid "Invalid VLESS URL: missing UUID"
msgstr "Неверный URL VLESS: отсутствует UUID"
msgid "Invalid VLESS URL: missing server address"
msgstr "Неверный URL VLESS: отсутствует адрес сервера"
msgid "Invalid VLESS URL: missing server"
msgstr "Неверный URL VLESS: отсутствует сервер"
msgid "Invalid VLESS URL: missing port"
msgstr "Неверный URL VLESS: отсутствует порт"
msgid "Invalid VLESS URL: missing or invalid server/port format"
msgstr "Неверный URL VLESS: отсутствует или неверный формат сервера/порта"
msgid "Invalid VLESS URL: missing query parameters"
msgstr "Неверный URL VLESS: отсутствуют параметры запроса"
msgid "Invalid VLESS URL: missing type parameter"
msgstr "Неверный URL VLESS: отсутствует параметр type"
msgid "Invalid VLESS URL: missing security parameter"
msgstr "Неверный URL VLESS: отсутствует параметр security"
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
msgstr "Неверный URL VLESS: отсутствует параметр pbk для security reality"
msgid "Invalid VLESS URL: missing fp parameter for reality security"
msgstr "Неверный URL VLESS: отсутствует параметр fp для security reality"
msgid "Invalid VLESS URL: missing sni parameter for tls security"
msgstr "Неверный URL VLESS: отсутствует параметр sni для security tls"
msgid "Invalid URL format: %s"
msgstr "Неверный формат URL: %s"
msgid "Remote Domain Lists URL"
msgstr "URL удаленных списков доменов"
msgid "Enter URL to download domain list"
msgstr "Введите URL для загрузки списка доменов"
msgid "Update Interval"
msgstr "Интервал обновления"
msgid "Select how often to update the lists"
msgstr "Выберите, как часто обновлять списки"
msgid "Last Update"
msgstr "Последнее обновление"
msgid "Last update time"
msgstr "Время последнего обновления"
msgid "Next Update"
msgstr "Следующее обновление"
msgid "Next scheduled update time"
msgstr "Время следующего запланированного обновления"
msgid "Version"
msgstr "Версия"
msgid "Component version"
msgstr "Версия компонента"
msgid "Installed"
msgstr "Установлено"
msgid "Not installed"
msgstr "Не установлено"
msgid "Unknown version"
msgstr "Неизвестная версия"
msgid "Error parsing version"
msgstr "Ошибка разбора версии"
msgid "Error parsing status"
msgstr "Ошибка разбора статуса"
msgid "Service is running"
msgstr "Сервис запущен"
msgid "Service is stopped"
msgstr "Сервис остановлен"
msgid "Service is enabled"
msgstr "Сервис включен"
msgid "Service is disabled"
msgstr "Сервис отключен"
msgid "Service Status"
msgstr "Статус сервиса"
msgid "working"
msgstr "работает"
msgid "not working"
msgstr "не работает"
msgid "check error"
msgstr "ошибка проверки"
msgid "Diagnostic check in progress..."
msgstr "Выполняется диагностическая проверка..."
msgid "Diagnostic check completed"
msgstr "Диагностическая проверка завершена"
msgid "Diagnostic check failed"
msgstr "Диагностическая проверка не удалась"
msgid "Update in progress..."
msgstr "Выполняется обновление..."
msgid "Update completed"
msgstr "Обновление завершено"
msgid "Update failed"
msgstr "Обновление не удалось"
msgid "Check in progress..."
msgstr "Выполняется проверка..."
msgid "Check completed"
msgstr "Проверка завершена"
msgid "Check failed"
msgstr "Проверка не удалась"
msgid "Version Information"
msgstr "Информация о версии"
msgid "Copied!"
msgstr "Скопировано!"
msgid "Podkop Status"
msgstr "Статус Podkop"
msgid "Start Podkop"
msgstr "Запустить Podkop"
msgid "Stop Podkop"
msgstr "Остановить Podkop"
msgid "Restart Podkop"
msgstr "Перезапустить Podkop"
msgid "Enable Podkop"
msgstr "Включить Podkop"
msgid "Disable Podkop"
msgstr "Отключить Podkop"
msgid "Loading diagnostics..."
msgstr "Загрузка диагностики..."
msgid "Error loading diagnostics"
msgstr "Ошибка загрузки диагностики"
msgid "Sing-box Status"
msgstr "Статус Sing-box"
msgid "Diagnostic Tools"
msgstr "Инструменты диагностики"
msgid "Unknown"
msgstr "Неизвестно"
msgid "Device Model: "
msgstr "Модель устройства: "
msgid "OpenWrt Version: "
msgstr "Версия OpenWrt: "
msgid "Sing-box: "
msgstr "Sing-box: "
msgid "LuCI App: "
msgstr "LuCI App: "
msgid "Podkop: "
msgstr "Podkop: "
msgid "Check NFT Rules"
msgstr "Проверить правила NFT"
msgid "Update Lists"
msgstr "Обновить списки"
msgid "Lists Update Results"
msgstr "Результаты обновления списков"
msgid "DNS Protocol Type"
msgstr "Тип DNS протокола"
msgid "Select DNS protocol to use"
msgstr "Выберите протокол DNS"
msgid "DNS over HTTPS (DoH)"
msgstr "DNS через HTTPS (DoH)"
msgid "DNS over TLS (DoT)"
msgstr "DNS через TLS (DoT)"
msgid "UDP (Unprotected DNS)"
msgstr "UDP (Незащищённый DNS)"
msgid "DNS Server"
msgstr "DNS сервер"
msgid "Select or enter DNS server address"
msgstr "Выберите или введите адрес DNS сервера"
msgid "DNS server address cannot be empty"
msgstr "Адрес DNS сервера не может быть пустым"
msgid "Invalid DNS server format. Examples: 8.8.8.8 or dns.example.com"
msgstr "Неверный формат DNS сервера. Примеры: 8.8.8.8 или dns.example.com"
msgid "DNS Rewrite TTL"
msgstr "Перезапись TTL для DNS"
msgid "Time in seconds for DNS record caching (default: 600)"
msgstr "Время в секундах для кэширования DNS записей (по умолчанию: 600)"
msgid "TTL value cannot be empty"
msgstr "Значение TTL не может быть пустым"
msgid "TTL must be a positive number"
msgstr "TTL должно быть положительным числом"
msgid "Cache File Path"
msgstr "Путь к файлу кэша"
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
msgstr "Выберите или введите путь к файлу кэша sing-box. Меняйте ТОЛЬКО если знаете, что делаете"
msgid "Cache file path cannot be empty"
msgstr "Путь к файлу кэша не может быть пустым"
msgid "Path must be absolute (start with /)"
msgstr "Путь должен быть абсолютным (начинаться с /)"
msgid "Path must end with cache.db"
msgstr "Путь должен заканчиваться на cache.db"
msgid "Path must contain at least one directory (like /tmp/cache.db)"
msgstr "Путь должен содержать хотя бы одну директорию (например /tmp/cache.db)"
msgid "Invalid path format. Must be like /tmp/cache.db"
msgstr "Неверный формат пути. Пример: /tmp/cache.db"

View File

@@ -0,0 +1,911 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
msgid "Podkop configuration"
msgstr ""
msgid "Basic Settings"
msgstr ""
msgid "Additional Settings"
msgstr ""
msgid "Secondary Config"
msgstr ""
msgid "Secondary VPN/Proxy Enable"
msgstr ""
msgid "Enable secondary VPN/Proxy configuration"
msgstr ""
msgid "Connection Type"
msgstr ""
msgid "Select between VPN and Proxy connection methods for traffic routing"
msgstr ""
msgid "Configuration Type"
msgstr ""
msgid "Select how to configure the proxy"
msgstr ""
msgid "Connection URL"
msgstr ""
msgid "Outbound Config"
msgstr ""
msgid "Proxy Configuration URL"
msgstr ""
msgid "Enter connection string starting with vless:// or ss:// for proxy configuration"
msgstr ""
msgid "Outbound Configuration"
msgstr ""
msgid "Enter complete outbound configuration in JSON format"
msgstr ""
msgid "Network Interface"
msgstr ""
msgid "Select network interface for VPN connection"
msgstr ""
msgid "Community Lists"
msgstr ""
msgid "Service List"
msgstr ""
msgid "Select predefined service for routing"
msgstr ""
msgid "User Domain List Type"
msgstr ""
msgid "Select how to add your custom domains"
msgstr ""
msgid "Disabled"
msgstr ""
msgid "Dynamic List"
msgstr ""
msgid "Text List"
msgstr ""
msgid "User Domains"
msgstr ""
msgid "Enter domain names without protocols (example: sub.example.com or example.com)"
msgstr ""
msgid "User Domains List"
msgstr ""
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
msgstr ""
msgid "Local Domain Lists"
msgstr ""
msgid "Use the list from the router filesystem"
msgstr ""
msgid "Local Domain Lists Path"
msgstr ""
msgid "Enter to the list file path"
msgstr ""
msgid "Remote Domain Lists"
msgstr ""
msgid "Download and use domain lists from remote URLs"
msgstr ""
msgid "Remote Domain URLs"
msgstr ""
msgid "Enter full URLs starting with http:// or https://"
msgstr ""
msgid "User Subnet List Type"
msgstr ""
msgid "Select how to add your custom subnets"
msgstr ""
msgid "Text List (comma/space/newline separated)"
msgstr ""
msgid "User Subnets"
msgstr ""
msgid "Enter subnets in CIDR notation (example: 103.21.244.0/22) or single IP addresses"
msgstr ""
msgid "User Subnets List"
msgstr ""
msgid "Enter subnets in CIDR notation or single IP addresses, separated by comma, space or newline"
msgstr ""
msgid "Remote Subnet Lists"
msgstr ""
msgid "Download and use subnet lists from remote URLs"
msgstr ""
msgid "Remote Subnet URLs"
msgstr ""
msgid "IP for full redirection"
msgstr ""
msgid "Specify local IP addresses whose traffic will always use the configured route"
msgstr ""
msgid "Local IPs"
msgstr ""
msgid "Enter valid IPv4 addresses"
msgstr ""
msgid "IP for exclusion"
msgstr ""
msgid "Specify local IP addresses that will never use the configured route"
msgstr ""
msgid "Mixed enable"
msgstr ""
msgid "Browser port: 2080"
msgstr ""
msgid "Yacd enable"
msgstr ""
msgid "Exclude NTP"
msgstr ""
msgid "For issues with open connections sing-box"
msgstr ""
msgid "QUIC disable"
msgstr ""
msgid "For issues with the video stream"
msgstr ""
msgid "List Update Frequency"
msgstr ""
msgid "Select how often the lists will be updated"
msgstr ""
msgid "Every hour"
msgstr ""
msgid "Every 2 hours"
msgstr ""
msgid "Every 3 hours"
msgstr ""
msgid "Every 4 hours"
msgstr ""
msgid "Every 6 hours"
msgstr ""
msgid "Every 12 hours"
msgstr ""
msgid "Every day"
msgstr ""
msgid "Every 3 days"
msgstr ""
msgid "Once a day at 04:00"
msgstr ""
msgid "Once a week on Sunday at 04:00"
msgstr ""
msgid "Invalid domain format. Enter domain without protocol (example: sub.example.com)"
msgstr ""
msgid "URL must use http:// or https:// protocol"
msgstr ""
msgid "Invalid URL format. URL must start with http:// or https://"
msgstr ""
msgid "Invalid format. Use format: X.X.X.X or X.X.X.X/Y"
msgstr ""
msgid "IP address parts must be between 0 and 255"
msgstr ""
msgid "CIDR must be between 0 and 32"
msgstr ""
msgid "Invalid IP format. Use format: X.X.X.X (like 192.168.1.1)"
msgstr ""
msgid "Invalid domain format: %s. Enter domain without protocol"
msgstr ""
msgid "Invalid format: %s. Use format: X.X.X.X or X.X.X.X/Y"
msgstr ""
msgid "IP parts must be between 0 and 255 in: %s"
msgstr ""
msgid "CIDR must be between 0 and 32 in: %s"
msgstr ""
msgid "Invalid path format. Path must start with \"/\" and contain only valid characters (letters, numbers, \"-\", \"_\", \"/\", \".\")"
msgstr ""
msgid "Invalid path format"
msgstr ""
msgid "JSON must contain at least type, server and server_port fields"
msgstr ""
msgid "Invalid JSON format"
msgstr ""
msgid "Warning: %s cannot be used together with %s. Previous selections have been removed."
msgstr ""
msgid "Regional options cannot be used together"
msgstr ""
msgid "Warning: Russia inside can only be used with Meta, Twitter, Discord, and Telegram. %s already in Russia inside and have been removed from selection."
msgstr ""
msgid "Russia inside restrictions"
msgstr ""
msgid "URL must start with vless:// or ss://"
msgstr ""
msgid "Invalid Shadowsocks URL format: missing method and password separator \":\""
msgstr ""
msgid "Invalid Shadowsocks URL format"
msgstr ""
msgid "Invalid Shadowsocks URL: missing server address"
msgstr ""
msgid "Invalid Shadowsocks URL: missing server"
msgstr ""
msgid "Invalid Shadowsocks URL: missing port"
msgstr ""
msgid "Invalid port number. Must be between 1 and 65535"
msgstr ""
msgid "Invalid Shadowsocks URL: missing or invalid server/port format"
msgstr ""
msgid "Invalid VLESS URL: missing UUID"
msgstr ""
msgid "Invalid VLESS URL: missing server address"
msgstr ""
msgid "Invalid VLESS URL: missing server"
msgstr ""
msgid "Invalid VLESS URL: missing port"
msgstr ""
msgid "Invalid VLESS URL: missing or invalid server/port format"
msgstr ""
msgid "Invalid VLESS URL: missing query parameters"
msgstr ""
msgid "Invalid VLESS URL: missing type parameter"
msgstr ""
msgid "Invalid VLESS URL: missing security parameter"
msgstr ""
msgid "Invalid VLESS URL: missing pbk parameter for reality security"
msgstr ""
msgid "Invalid VLESS URL: missing fp parameter for reality security"
msgstr ""
msgid "Invalid VLESS URL: missing sni parameter for tls security"
msgstr ""
msgid "Invalid URL format: %s"
msgstr ""
msgid "Community Domain Lists"
msgstr ""
msgid "Domain List"
msgstr ""
msgid "Select a list"
msgstr ""
msgid "Community Subnet Lists"
msgstr ""
msgid "Enable routing for popular services like Twitter, Meta, and Discord"
msgstr ""
msgid "Service Networks"
msgstr ""
msgid "Select predefined service networks for routing"
msgstr ""
msgid "User Domain List"
msgstr ""
msgid "Enable and manage your custom list of domains for selective routing"
msgstr ""
msgid "User Domains List"
msgstr ""
msgid "Enter domain names separated by comma, space or newline (example: sub.example.com, example.com or one domain per line)"
msgstr ""
msgid "Remote Domain Lists URL"
msgstr ""
msgid "Enter URL to download domain list"
msgstr ""
msgid "Update Interval"
msgstr ""
msgid "Select how often to update the lists"
msgstr ""
msgid "Last Update"
msgstr ""
msgid "Last update time"
msgstr ""
msgid "Next Update"
msgstr ""
msgid "Next scheduled update time"
msgstr ""
msgid "Version"
msgstr ""
msgid "Component version"
msgstr ""
msgid "Installed"
msgstr ""
msgid "Not installed"
msgstr ""
msgid "Unknown version"
msgstr ""
msgid "Error parsing version"
msgstr ""
msgid "Error parsing status"
msgstr ""
msgid "Service is running"
msgstr ""
msgid "Service is stopped"
msgstr ""
msgid "Service is enabled"
msgstr ""
msgid "Service is disabled"
msgstr ""
msgid "Service Status"
msgstr ""
msgid "working"
msgstr ""
msgid "not working"
msgstr ""
msgid "check error"
msgstr ""
msgid "Diagnostic check in progress..."
msgstr ""
msgid "Diagnostic check completed"
msgstr ""
msgid "Diagnostic check failed"
msgstr ""
msgid "Update in progress..."
msgstr ""
msgid "Update completed"
msgstr ""
msgid "Update failed"
msgstr ""
msgid "Check in progress..."
msgstr ""
msgid "Check completed"
msgstr ""
msgid "Check failed"
msgstr ""
msgid "Version Information"
msgstr ""
msgid "Copied!"
msgstr ""
msgid "Podkop Status"
msgstr ""
msgid "Start Podkop"
msgstr ""
msgid "Stop Podkop"
msgstr ""
msgid "Restart Podkop"
msgstr ""
msgid "Enable Podkop"
msgstr ""
msgid "Disable Podkop"
msgstr ""
msgid "Loading diagnostics..."
msgstr ""
msgid "Error loading diagnostics"
msgstr ""
msgid "Sing-box Status"
msgstr ""
msgid "Diagnostic Tools"
msgstr ""
msgid "Unknown"
msgstr ""
msgid "Device Model: "
msgstr ""
msgid "OpenWrt Version: "
msgstr ""
msgid "Sing-box: "
msgstr ""
msgid "LuCI App: "
msgstr ""
msgid "Podkop: "
msgstr ""
msgid "Check NFT Rules"
msgstr ""
msgid "Update Lists"
msgstr ""
msgid "Lists Update Results"
msgstr ""
msgid "Extra configurations"
msgstr ""
msgid "Extra configuration"
msgstr ""
msgid "Add Section"
msgstr ""
msgid "Lists Update Results"
msgstr ""
msgid "Proxy Check"
msgstr ""
msgid "Check if sing-box proxy works correctly"
msgstr ""
msgid "Check Proxy"
msgstr ""
msgid "Proxy Check Results"
msgstr ""
msgid "NFT Rules"
msgstr ""
msgid "Show current nftables rules and statistics"
msgstr ""
msgid "Check Rules"
msgstr ""
msgid "GitHub Connectivity"
msgstr ""
msgid "Check GitHub connectivity and lists availability"
msgstr ""
msgid "Check GitHub"
msgstr ""
msgid "GitHub Connectivity Results"
msgstr ""
msgid "Sing-Box Logs"
msgstr ""
msgid "View recent sing-box logs from system journal"
msgstr ""
msgid "View Sing-Box Logs"
msgstr ""
msgid "Podkop Logs"
msgstr ""
msgid "View recent podkop logs from system journal"
msgstr ""
msgid "View Podkop Logs"
msgstr ""
msgid "Active Connections"
msgstr ""
msgid "View active sing-box network connections"
msgstr ""
msgid "Check Connections"
msgstr ""
msgid "DNSMasq Configuration"
msgstr ""
msgid "View current DNSMasq configuration settings"
msgstr ""
msgid "Check DNSMasq"
msgstr ""
msgid "Sing-Box Configuration"
msgstr ""
msgid "Show current sing-box configuration"
msgstr ""
msgid "Show Sing-Box Config"
msgstr ""
msgid "Lists Update Results"
msgstr ""
msgid "Warning"
msgstr ""
msgid "Success"
msgstr ""
msgid "Info"
msgstr ""
msgid "Error"
msgstr ""
msgid "Debug"
msgstr ""
msgid "Trace"
msgstr ""
msgid "Yes"
msgstr ""
msgid "No"
msgstr ""
msgid "OK"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Apply"
msgstr ""
msgid "Save"
msgstr ""
msgid "Delete"
msgstr ""
msgid "Edit"
msgstr ""
msgid "Add"
msgstr ""
msgid "Remove"
msgstr ""
msgid "Move Up"
msgstr ""
msgid "Move Down"
msgstr ""
msgid "Expand"
msgstr ""
msgid "Collapse"
msgstr ""
msgid "Show"
msgstr ""
msgid "Hide"
msgstr ""
msgid "Enable"
msgstr ""
msgid "Disable"
msgstr ""
msgid "Start"
msgstr ""
msgid "Stop"
msgstr ""
msgid "Restart"
msgstr ""
msgid "Reset"
msgstr ""
msgid "Refresh"
msgstr ""
msgid "Update"
msgstr ""
msgid "Install"
msgstr ""
msgid "Uninstall"
msgstr ""
msgid "Configure"
msgstr ""
msgid "Settings"
msgstr ""
msgid "Options"
msgstr ""
msgid "Advanced"
msgstr ""
msgid "Basic"
msgstr ""
msgid "General"
msgstr ""
msgid "Details"
msgstr ""
msgid "Status"
msgstr ""
msgid "Information"
msgstr ""
msgid "Configuration"
msgstr ""
msgid "Management"
msgstr ""
msgid "System"
msgstr ""
msgid "Network"
msgstr ""
msgid "Services"
msgstr ""
msgid "Remote Domain Lists URL"
msgstr ""
msgid "Enter URL to download domain list"
msgstr ""
msgid "Update Interval"
msgstr ""
msgid "Select how often to update the lists"
msgstr ""
msgid "Last Update"
msgstr ""
msgid "Last update time"
msgstr ""
msgid "Next Update"
msgstr ""
msgid "Next scheduled update time"
msgstr ""
msgid "Version"
msgstr ""
msgid "Component version"
msgstr ""
msgid "Installed"
msgstr ""
msgid "Not installed"
msgstr ""
msgid "Unknown version"
msgstr ""
msgid "Error parsing version"
msgstr ""
msgid "Error parsing status"
msgstr ""
msgid "Service is running"
msgstr ""
msgid "Service is stopped"
msgstr ""
msgid "Service is enabled"
msgstr ""
msgid "Service is disabled"
msgstr ""
msgid "Service Status"
msgstr ""
msgid "working"
msgstr ""
msgid "not working"
msgstr ""
msgid "check error"
msgstr ""
msgid "Diagnostic check in progress..."
msgstr ""
msgid "Diagnostic check completed"
msgstr ""
msgid "Diagnostic check failed"
msgstr ""
msgid "Update in progress..."
msgstr ""
msgid "Update completed"
msgstr ""
msgid "Update failed"
msgstr ""
msgid "Check in progress..."
msgstr ""
msgid "Check completed"
msgstr ""
msgid "Check failed"
msgstr ""
msgid "DNS Protocol Type"
msgstr ""
msgid "Select DNS protocol to use"
msgstr ""
msgid "DNS over HTTPS (DoH)"
msgstr ""
msgid "DNS over TLS (DoT)"
msgstr ""
msgid "UDP (Unprotected DNS)"
msgstr ""
msgid "DNS Server"
msgstr ""
msgid "Select or enter DNS server address"
msgstr ""
msgid "DNS Rewrite TTL"
msgstr ""
msgid "Time in seconds for DNS record caching (default: 600)"
msgstr ""
msgid "TTL value cannot be empty"
msgstr ""
msgid "TTL must be a positive number"
msgstr ""
msgid "Cache File Path"
msgstr ""
msgid "Select or enter path for sing-box cache file. Change this ONLY if you know what you are doing"
msgstr ""
msgid "Cache file path cannot be empty"
msgstr ""
msgid "Path must be absolute (start with /)"
msgstr ""
msgid "Path must end with cache.db"
msgstr ""
msgid "Path must contain at least one directory (like /tmp/cache.db)"
msgstr ""
msgid "Invalid path format. Must be like /tmp/cache.db"
msgstr ""

View File

@@ -2,10 +2,14 @@
"luci-app-podkop": {
"description": "Grant UCI and RPC access to LuCI app podkop",
"read": {
"file": {
"/etc/init.d/podkop": [
"exec"
]
},
"ubus": {
"luci.podkop": [
"get_sample1",
"get_sample2"
"service": [
"list"
]
},
"uci": [

View File

@@ -1,7 +1,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=podkop
PKG_VERSION:=0.2.3
PKG_VERSION:=0.3.15
PKG_RELEASE:=1
PKG_MAINTAINER:=ITDog <podkop@itdog.info>
@@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/package.mk
define Package/podkop
SECTION:=net
CATEGORY:=Network
DEPENDS:=+dnsmasq-full +curl +jq +kmod-nft-tproxy +coreutils-base64
DEPENDS:=+sing-box +curl +jq +kmod-nft-tproxy +coreutils-base64
TITLE:=Domain routing app
URL:=https://itdog.info
PKGARCH:=all
@@ -33,7 +33,7 @@ define Package/podkop/prerm
grep -q "105 podkop" /etc/iproute2/rt_tables && sed -i "/105 podkop/d" /etc/iproute2/rt_tables
rm -f /etc/hotplug.d/iface/50-podkop
/etc/init.d/podkop stop
exit 0
endef
@@ -49,12 +49,6 @@ define Package/podkop/install
$(INSTALL_DIR) $(1)/etc/config
$(INSTALL_CONF) ./files/etc/config/podkop $(1)/etc/config/podkop
$(INSTALL_DIR) $(1)/etc/podkop
$(INSTALL_DATA) ./files/etc/podkop/* $(1)/etc/podkop/
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_DATA) ./files/etc/hotplug.d/iface/50-podkop $(1)/etc/hotplug.d/iface/50-podkop
endef
$(eval $(call BuildPackage,podkop))

View File

@@ -1,17 +1,22 @@
config main 'main'
option mode ''
option interface ''
option mode 'proxy'
#option interface ''
option proxy_config_type ''
#option outbound_json ''
option proxy_string ''
option domain_list_enabled '1'
option domain_list 'ru_inside'
option domain_list 'russia_inside'
option subnets_list_enabled '0'
#list subnets 'twitter'
option custom_domains_list_enabled '0'
option custom_domains_list_type 'disable'
#list custom_domains ''
#option custom_domains_text ''
option custom_local_domains_list_enabled '0'
#list custom_local_domains ''
option custom_download_domains_list_enabled '0'
#list custom_download_domains ''
option custom_subnets_list_enabled '0'
option custom_domains_list_type 'disable'
#list custom_subnets ''
#custom_subnets_text ''
option custom_download_subnets_list_enabled '0'
#list custom_download_subnets ''
option all_traffic_from_ip_enabled '0'
@@ -23,15 +28,7 @@ config main 'main'
option yacd '0'
option socks5 '0'
option exclude_ntp '0'
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 ''
option quic_disable '0'
option dont_touch_dhcp '0'
option update_interval '1d'
option custom_domains_text

View File

@@ -1,28 +0,0 @@
#!/bin/sh
. /lib/functions.sh
config_load "/etc/config/podkop"
. /etc/init.d/podkop
config_get "interface" "main" "interface" "0"
config_get "mode" "main" "mode" "0"
if [ "$mode" = "vpn" ] && [ -n "$interface" ]; then
add_route_interface "$interface" "podkop"
fi
if [ "$mode" = "proxy" ]; then
echo "Add route for main tproxy"
add_route_tproxy podkop
fi
config_get second_enable "second" "second_enable" "0"
config_get interface "second" "interface" "0"
config_get "mode" "second" "mode" "0"
if [ "$second_enable" -eq "1" ] && [ "$mode" = "vpn" ] && [ -n "$interface" ]; then
add_route_interface "$interface" "podkop2"
fi
if [ "$second_enable" -eq "1" ] && [ "$mode" = "proxy" ]; then
echo "Add route for second tproxy"
add_route_tproxy podkop2
fi

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +0,0 @@
{
"outbounds": [
{
"type": "shadowsocks",
"server": "$HOST",
"server_port": "$PORT",
"method": "$METHOD",
"password": "$PASS",
"udp_over_tcp": {
"enabled": true,
"version": 2
},
"tag": "$TAG"
}
]
}

View File

@@ -1,29 +0,0 @@
{
"log": {
"level": "warn"
},
"inbounds": [
{
"type": "tproxy",
"listen": "::",
"listen_port": 1602,
"sniff": false
}
],
"outbounds": [
{
"type": "shadowsocks",
"server": "$HOST",
"server_port": "$PORT",
"method": "$METHOD",
"password": "$PASS",
"udp_over_tcp": {
"enabled": true,
"version": 2
}
}
],
"route": {
"auto_detect_interface": true
}
}

View File

@@ -1,35 +0,0 @@
{
"log": {
"level": "warn"
},
"inbounds": [
{
"type": "tproxy",
"listen": "::",
"listen_port": 1602,
"sniff": false,
"tag": "main"
},
{
"type": "tproxy",
"listen": "::",
"listen_port": 1603,
"sniff": false,
"tag": "second"
}
],
"outbounds": [],
"route": {
"rules": [
{
"inbound": "main",
"outbound": "main"
},
{
"inbound": "second",
"outbound": "second"
}
],
"auto_detect_interface": true
}
}

View File

@@ -1,26 +0,0 @@
{
"outbounds": [
{
"type": "vless",
"server": "$HOST",
"server_port": "$PORT",
"uuid": "$UUID",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"insecure": false,
"server_name": "$FAKE_SERVER",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "$PUBLIC_KEY",
"short_id": "$SHORT_ID"
}
},
"tag": "$TAG"
}
]
}

View File

@@ -1,39 +0,0 @@
{
"log": {
"level": "warn"
},
"inbounds": [
{
"type": "tproxy",
"listen": "::",
"listen_port": 1602,
"sniff": false
}
],
"outbounds": [
{
"type": "vless",
"server": "$HOST",
"server_port": "$PORT",
"uuid": "$UUID",
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"insecure": false,
"server_name": "$FAKE_SERVER",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "$PUBLIC_KEY",
"short_id": "$SHORT_ID"
}
}
}
],
"route": {
"auto_detect_interface": true
}
}