mirror of
https://github.com/remittor/zapret-openwrt.git
synced 2026-01-03 15:18:50 +03:00
Compare commits
15 Commits
master
...
v72.202512
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5550820fdc | ||
|
|
0e8366f7d1 | ||
|
|
ea3c774537 | ||
|
|
57b7e65532 | ||
|
|
eeacc486f9 | ||
|
|
101382faf7 | ||
|
|
21229ef152 | ||
|
|
9aaf2b29e3 | ||
|
|
246f4a08a0 | ||
|
|
3d3eb82b7b | ||
|
|
8aff441b88 | ||
|
|
1c866d5de1 | ||
|
|
57d5ab5060 | ||
|
|
5a685cfa27 | ||
|
|
21017047a8 |
80
.github/ISSUE_TEMPLATE/bug_report_en.yml
vendored
Normal file
80
.github/ISSUE_TEMPLATE/bug_report_en.yml
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
name: 🐛 Bug Report
|
||||
description: Report a reproducible bug
|
||||
title: "[BUG] "
|
||||
labels: ["bug"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting a bug! Please fill out the form below.
|
||||
|
||||
Before sending, please:
|
||||
- Check [existing issues](https://github.com/remittor/zapret-openwrt/issues)
|
||||
- Read [documentation](https://github.com/remittor/zapret-openwrt/wiki/)
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: 📝 Bug description
|
||||
description: A clear and concise description of what is not working
|
||||
placeholder: A clear and concise description of the bug
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: Steps to reproduce the problem. If you're following a manual, please include a link to it.
|
||||
placeholder: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: ✅ Expected behavior
|
||||
description: A clear and concise description of what was to happen
|
||||
placeholder: Describe the expected behavior
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: 🖥️ System Information
|
||||
description: |
|
||||
Information about your system (fill in all that used)
|
||||
value: |
|
||||
- **OpenWrt version**:
|
||||
- **Zapret version**:
|
||||
- **Router model**:
|
||||
render: markdown
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: strategy
|
||||
attributes:
|
||||
label: ✅ The NFQWS strategy used
|
||||
description: All parameters of the NFQWS strategy, or its name
|
||||
placeholder: If the problem is caused by the NFQWS strategy
|
||||
|
||||
- type: textarea
|
||||
id: config
|
||||
attributes:
|
||||
label: ⚙️ System Configurations
|
||||
description: |
|
||||
Relevant parts of the configuration (remove sensitive information!)
|
||||
placeholder: |
|
||||
For example:
|
||||
- Contents of /etc/config/zapret
|
||||
- Firewall configuration (Flow offloading, etc.)
|
||||
- Additional configurations required for wireless/network/dhcp, etc.
|
||||
render: shell
|
||||
80
.github/ISSUE_TEMPLATE/bug_report_ru.yml
vendored
Normal file
80
.github/ISSUE_TEMPLATE/bug_report_ru.yml
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
---
|
||||
name: 🐛 Сообщение об ошибке
|
||||
description: Сообщить об ошибке
|
||||
title: "[BUG] "
|
||||
labels: ["bug"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Спасибо за создание отчета об ошибке!
|
||||
|
||||
Перед отправкой, пожалуйста:
|
||||
- Проверьте [существующие issues](https://github.com/remittor/zapret-openwrt/issues)
|
||||
- Просмотрите [документацию](https://github.com/remittor/zapret-openwrt/wiki/)
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: 📝 Описание проблемы
|
||||
description: Четкое и краткое описание того, что не работает
|
||||
placeholder: Опишите проблему
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Шаги для воспроизведения
|
||||
description: Шаги для воспроизведения проблемы. Если вы настраваете что-то по какому либо мануалу, приложите ссылку на него.
|
||||
placeholder: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
4.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: ✅ Ожидаемое поведение
|
||||
description: Четкое и краткое описание того, что должно было произойти
|
||||
placeholder: Опишите ожидаемое поведение
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: environment
|
||||
attributes:
|
||||
label: 🖥️ Информация о системе
|
||||
description: |
|
||||
Информация о вашей системе (заполните всё применяемое)
|
||||
value: |
|
||||
- **OpenWrt версия**:
|
||||
- **Zapret версия**:
|
||||
- **Роутер модель**:
|
||||
render: markdown
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: strategy
|
||||
attributes:
|
||||
label: ✅ Используемая стратегия NFQWS
|
||||
description: Все параметры стратегии NFQWS, либо её название
|
||||
placeholder: Если проблема вызвана стратегией NFQWS
|
||||
|
||||
- type: textarea
|
||||
id: config
|
||||
attributes:
|
||||
label: ⚙️ Конфигурация
|
||||
description: |
|
||||
Релевантные части конфигурации (удалите чувствительную информацию!)
|
||||
placeholder: |
|
||||
Например:
|
||||
- Содержимое /etc/config/zapret
|
||||
- Конфигурация файервола (опция Flow offloading и т.п.)
|
||||
- Дополнительные конфиги, которые потребуются wireless/network/dhcp и т.д.
|
||||
render: shell
|
||||
9
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
9
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 💬 Installation instructions / Инструкция по установке
|
||||
url: https://github.com/remittor/zapret-openwrt/wiki/Installing-zapret%E2%80%90openwrt-package
|
||||
about: Installation instructions / Инструкция по установке
|
||||
|
||||
- name: 📚 Original documetation / Оригинальная документация к zapret'у
|
||||
url: https://github.com/bol-van/zapret/blob/master/docs/readme.md
|
||||
about: README zapret
|
||||
66
.github/ISSUE_TEMPLATE/feature_request_en.yml
vendored
Normal file
66
.github/ISSUE_TEMPLATE/feature_request_en.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
name: ✨ Feature Request
|
||||
description: Suggest a new feature or improvement
|
||||
title: "[FEATURE] "
|
||||
labels: ["enhancement", "needs-discussion"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Before sending, please:
|
||||
- Check [existing requests](https://github.com/remittor/zapret-openwrt/issues?q=is%3Aissue+label%3Aenhancement)
|
||||
- Make sure the function doesn't exist in [documentation](https://github.com/remittor/zapret-openwrt/wiki/)
|
||||
|
||||
- type: textarea
|
||||
id: summary
|
||||
attributes:
|
||||
label: Brief description
|
||||
description: Brief description of the proposed function
|
||||
placeholder: In one sentence, describe what you want to add...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: The problem it solves
|
||||
description: |
|
||||
Description of the problem or inconvenience this feature will solve
|
||||
placeholder: |
|
||||
There is no possibility now [...]
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: 💡 Proposed solution
|
||||
description: A clear and concise description of what you want to achieve
|
||||
placeholder: |
|
||||
I want Zapret to be able to [...]
|
||||
I suggest adding a feature that [...]
|
||||
Could be improved [...]
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Workaround
|
||||
description: |
|
||||
Describe any alternative solutions or features you considered.
|
||||
Are there any workarounds you currently use?
|
||||
placeholder: |
|
||||
I'm currently solving this problem by [...]
|
||||
An alternative would be [...]
|
||||
I tried using [...], but it doesn't work because [...]
|
||||
|
||||
- type: textarea
|
||||
id: implementation
|
||||
attributes:
|
||||
label: Implementation ideas (optional)
|
||||
description: |
|
||||
If you have any ideas on how this could be implemented, please share them. Please keep LuCI's limitations in mind.
|
||||
placeholder: |
|
||||
This can be achieved using [...]
|
||||
68
.github/ISSUE_TEMPLATE/feature_request_ru.yml
vendored
Normal file
68
.github/ISSUE_TEMPLATE/feature_request_ru.yml
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
name: ✨ Запрос новой функции
|
||||
description: Предложите новую функцию или улучшение для Zapret
|
||||
title: "[FEATURE] "
|
||||
labels: ["enhancement", "needs-discussion"]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Спасибо за предложение новой функции!
|
||||
|
||||
Перед отправкой, пожалуйста:
|
||||
- Проверьте [существующие запросы](https://github.com/remittor/zapret-openwrt/issues?q=is%3Aissue+label%3Aenhancement)
|
||||
- Убедитесь, что функции не существует в [документации](https://github.com/remittor/zapret-openwrt/wiki/)
|
||||
|
||||
- type: textarea
|
||||
id: summary
|
||||
attributes:
|
||||
label: Краткое описание
|
||||
description: Краткое описание предлагаемой функции
|
||||
placeholder: В одном предложении опишите, что вы хотите добавить...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: Проблема, которую решает
|
||||
description: |
|
||||
Описание проблемы или неудобства, которое решит эта функция
|
||||
placeholder: |
|
||||
Сейчас нет возможности [...]
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: 💡 Предлагаемое решение
|
||||
description: Четкое и краткое описание того, что вы хотите реализовать
|
||||
placeholder: |
|
||||
Я хочу, чтобы Zapret мог [...]
|
||||
Предлагаю добавить функцию, которая [...]
|
||||
Можно было бы улучшить [...] путем [...]
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Workaround
|
||||
description: |
|
||||
Опишите альтернативные решения или функции, которые вы рассматривали
|
||||
Есть ли обходные пути, которые вы используете сейчас?
|
||||
placeholder: |
|
||||
Сейчас я решаю это проблему путем [...]
|
||||
Альтернативой могло бы быть [...]
|
||||
Пробовал использовать [...], но это не подходит потому что [...]
|
||||
|
||||
- type: textarea
|
||||
id: implementation
|
||||
attributes:
|
||||
label: Идеи реализации (опционально)
|
||||
description: |
|
||||
Если у вас есть идеи о том, как это можно реализовать, поделитесь ими. Помните про ограничения LuCI.
|
||||
placeholder: |
|
||||
Это можно реализовать с помощью [...]
|
||||
@@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-zapret
|
||||
PKG_VERSION:=72.20251218
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=72.20251225
|
||||
PKG_RELEASE:=2
|
||||
PKG_LICENSE:=MIT
|
||||
PKG_MAINTAINER:=remittor <https://github.com/remittor>
|
||||
|
||||
|
||||
@@ -544,8 +544,6 @@ return baseclass.extend({
|
||||
}
|
||||
value = value.replace(/˂/g, '<');
|
||||
value = value.replace(/˃/g, '>');
|
||||
uci.set('zapret', this.cfgsec, this.cfgparam, value);
|
||||
uci.save();
|
||||
let elem = document.getElementById("cbi-zapret-" + this.cfgsec + "-_" + this.cfgparam);
|
||||
if (elem) {
|
||||
let val = value.trim();
|
||||
@@ -558,19 +556,8 @@ return baseclass.extend({
|
||||
elem.querySelector('div').textContent = val;
|
||||
}
|
||||
}
|
||||
ui.hideModal();
|
||||
/*
|
||||
return uci.save()
|
||||
.then(L.bind(ui.changes.init, ui.changes))
|
||||
.then(L.bind(ui.changes.displayChanges, ui.changes))
|
||||
//.then(L.bind(ui.changes.apply, ui.changes))
|
||||
.then(ui.addNotification(null, E('p', _('Contents have been saved.')), 'info'))
|
||||
.catch(e => {
|
||||
ui.addNotification(null, E('p', _('Unable to save the contents') + ': %s'.format(e.message)));
|
||||
}).finally(() => {
|
||||
ui.hideModal();
|
||||
});
|
||||
*/
|
||||
uci.set('zapret2', this.cfgsec, this.cfgparam, value);
|
||||
uci.save().then(ui.hideModal);
|
||||
},
|
||||
|
||||
error: function(e) {
|
||||
@@ -589,13 +576,17 @@ return baseclass.extend({
|
||||
},
|
||||
|
||||
show: function() {
|
||||
//ui.showModal(null, E('p', { 'class': 'spinning' }, _('Loading')) );
|
||||
let content = this.load();
|
||||
//ui.hideModal();
|
||||
if (content === null) {
|
||||
return this.error('Cannot load parameter');
|
||||
}
|
||||
return this.render(content);
|
||||
ui.showModal(null,
|
||||
E('p', { 'class': 'spinning' }, _('Loading'))
|
||||
);
|
||||
L.resolveDefault(this.load(), null)
|
||||
.then(content => {
|
||||
ui.hideModal();
|
||||
return this.render(content);
|
||||
}).catch(e => {
|
||||
ui.hideModal();
|
||||
return this.error(e);
|
||||
})
|
||||
},
|
||||
}),
|
||||
|
||||
|
||||
@@ -132,7 +132,11 @@ return baseclass.extend({
|
||||
}
|
||||
let lastLen = 0;
|
||||
let retCode = -1;
|
||||
let timerBusy = false;
|
||||
let timer = setInterval(async () => {
|
||||
if (timerBusy)
|
||||
return; // skip iteration
|
||||
timerBusy = true;
|
||||
try {
|
||||
let res = await fs.exec('/bin/cat', [ logFile ], null, rpc_opt);
|
||||
if (res.stdout && res.stdout.length > lastLen) {
|
||||
@@ -169,7 +173,10 @@ return baseclass.extend({
|
||||
} catch (e) {
|
||||
clearInterval(timer);
|
||||
this.appendLog('ERROR: installUpdates: ' + e.message);
|
||||
this.appendLog('ERROR: installUpdates: ' + e.stack?.trim().split('\n').pop());
|
||||
this.setStage(999);
|
||||
} finally {
|
||||
timerBusy = false;
|
||||
}
|
||||
}, 500);
|
||||
},
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zapret-ip2net
|
||||
PKG_VERSION:=72.20251218
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=72.20251225
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=bol-van
|
||||
PKG_LICENSE:=MIT
|
||||
@@ -10,8 +10,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=994e9c34883ddc95e51c8285f134bd01fd6b6732
|
||||
PKG_SOURCE_DATE:=2025-12-18
|
||||
PKG_SOURCE_VERSION:=e95a06c7eeff87e166a5f9ca71547b169c9852e0
|
||||
PKG_SOURCE_DATE:=2025-12-25
|
||||
|
||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zapret-mdig
|
||||
PKG_VERSION:=72.20251218
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=72.20251225
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=bol-van
|
||||
PKG_LICENSE:=MIT
|
||||
@@ -10,8 +10,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=994e9c34883ddc95e51c8285f134bd01fd6b6732
|
||||
PKG_SOURCE_DATE:=2025-12-18
|
||||
PKG_SOURCE_VERSION:=e95a06c7eeff87e166a5f9ca71547b169c9852e0
|
||||
PKG_SOURCE_DATE:=2025-12-25
|
||||
|
||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zapret-tpws
|
||||
PKG_VERSION:=72.20251218
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=72.20251225
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=bol-van
|
||||
PKG_LICENSE:=MIT
|
||||
@@ -10,8 +10,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=994e9c34883ddc95e51c8285f134bd01fd6b6732
|
||||
PKG_SOURCE_DATE:=2025-12-18
|
||||
PKG_SOURCE_VERSION:=e95a06c7eeff87e166a5f9ca71547b169c9852e0
|
||||
PKG_SOURCE_DATE:=2025-12-25
|
||||
|
||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zapret
|
||||
PKG_VERSION:=72.20251218
|
||||
PKG_RELEASE:=1
|
||||
PKG_VERSION:=72.20251225
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_MAINTAINER:=bol-van
|
||||
PKG_LICENSE:=MIT
|
||||
@@ -14,8 +14,8 @@ PKG_LICENSE_FILES:=docs/LICENSE.txt
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/bol-van/zapret.git
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_VERSION:=994e9c34883ddc95e51c8285f134bd01fd6b6732
|
||||
PKG_SOURCE_DATE:=2025-12-18
|
||||
PKG_SOURCE_VERSION:=e95a06c7eeff87e166a5f9ca71547b169c9852e0
|
||||
PKG_SOURCE_DATE:=2025-12-25
|
||||
|
||||
#PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
#PKG_SOURCE_URL:=https://github.com/bol-van/zapret/archive/refs/tags/v$(PKG_VERSION).tar.gz?
|
||||
|
||||
@@ -168,7 +168,7 @@ function merge_cfg_with_def_values
|
||||
function remove_cron_task_logs
|
||||
{
|
||||
if [ -f "$CRONTAB_FILE" ]; then
|
||||
sed -i "/-name 'zapret\*.log' -size +/d" "$CRONTAB_FILE"
|
||||
sed -i "/-name 'zapret+\*.log' -size +/d" "$CRONTAB_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -177,7 +177,7 @@ function insert_cron_task_logs
|
||||
[ ! -f "$CRONTAB_FILE" ] && touch "$CRONTAB_FILE"
|
||||
[ ! -f "$CRONTAB_FILE" ] && return 1
|
||||
if ! grep -q -e "-name 'zapret\*\.log' -size \+" "$CRONTAB_FILE"; then
|
||||
echo "*/2 * * * * /usr/bin/find /tmp -maxdepth 1 -type f -name 'zapret*.log' -size +2600k -exec rm -f {} \;" >> "$CRONTAB_FILE"
|
||||
echo "*/2 * * * * /usr/bin/find /tmp -maxdepth 1 -type f -name 'zapret+*.log' -size +2600k -exec rm -f {} \;" >> "$CRONTAB_FILE"
|
||||
/etc/init.d/cron restart 2> /dev/null
|
||||
fi
|
||||
return 0
|
||||
@@ -190,7 +190,7 @@ function init_before_start
|
||||
[ ! -f "$HOSTLIST_FN" ] && touch "$HOSTLIST_FN"
|
||||
chmod 644 $ZAPRET_BASE/ipset/*.txt
|
||||
chmod 666 $ZAPRET_BASE/ipset/*.log
|
||||
rm -f /tmp/zapret*.log
|
||||
rm -f /tmp/zapret+*.log
|
||||
#*/
|
||||
if [ "$DAEMON_LOG_ENABLE" = "1" ]; then
|
||||
insert_cron_task_logs
|
||||
|
||||
@@ -247,6 +247,84 @@ function set_cfg_nfqws_strat
|
||||
commit $cfgname
|
||||
EOF
|
||||
fi
|
||||
if [ "$strat" = "ALT7_by_Flowseal" ]; then
|
||||
uci batch <<-EOF
|
||||
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
|
||||
set $cfgname.config.NFQWS_PORTS_UDP='443'
|
||||
set $cfgname.config.NFQWS_OPT="
|
||||
# Strategy $strat
|
||||
|
||||
--filter-tcp=443
|
||||
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
|
||||
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
|
||||
--hostlist-exclude-domains=openwrt.org
|
||||
--ip-id=zero
|
||||
--dpi-desync=multisplit
|
||||
--dpi-desync-split-pos=2,sniext+1
|
||||
--dpi-desync-split-seqovl=679
|
||||
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
|
||||
|
||||
--new
|
||||
--filter-tcp=80,443 <HOSTLIST>
|
||||
--hostlist-exclude-domains=openwrt.org
|
||||
--dpi-desync=multisplit
|
||||
--dpi-desync-split-pos=2,sniext+1
|
||||
--dpi-desync-split-seqovl=679
|
||||
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
|
||||
|
||||
--new
|
||||
--filter-udp=443
|
||||
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
|
||||
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
|
||||
--dpi-desync=fake
|
||||
--dpi-desync-repeats=6
|
||||
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
|
||||
"
|
||||
commit $cfgname
|
||||
EOF
|
||||
fi
|
||||
if [ "$strat" = "TLS_AUTO_ALT3_by_Flowseal" ]; then
|
||||
uci batch <<-EOF
|
||||
set $cfgname.config.NFQWS_PORTS_TCP='80,443'
|
||||
set $cfgname.config.NFQWS_PORTS_UDP='443'
|
||||
set $cfgname.config.NFQWS_OPT="
|
||||
# Strategy $strat
|
||||
|
||||
--filter-tcp=443
|
||||
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
|
||||
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
|
||||
--hostlist-exclude-domains=openwrt.org
|
||||
--ip-id=zero
|
||||
--dpi-desync=fake,multisplit
|
||||
--dpi-desync-split-seqovl=681
|
||||
--dpi-desync-split-pos=1
|
||||
--dpi-desync-fooling=ts
|
||||
--dpi-desync-repeats=8
|
||||
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
|
||||
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
|
||||
--new
|
||||
--filter-tcp=80,443 <HOSTLIST>
|
||||
--hostlist-exclude-domains=openwrt.org
|
||||
--dpi-desync=fake,multisplit
|
||||
--dpi-desync-split-seqovl=681
|
||||
--dpi-desync-split-pos=1
|
||||
--dpi-desync-fooling=ts
|
||||
--dpi-desync-repeats=8
|
||||
--dpi-desync-split-seqovl-pattern=/opt/zapret/files/fake/tls_clienthello_www_google_com.bin
|
||||
--dpi-desync-fake-tls-mod=rnd,dupsid,sni=www.google.com
|
||||
|
||||
--new
|
||||
--filter-udp=443
|
||||
--hostlist=/opt/zapret/ipset/zapret-hosts-google.txt
|
||||
--hostlist-exclude=/opt/zapret/ipset/zapret-hosts-user-exclude.txt
|
||||
--dpi-desync=fake
|
||||
--dpi-desync-repeats=11
|
||||
--dpi-desync-fake-quic=/opt/zapret/files/fake/quic_initial_www_google_com.bin
|
||||
"
|
||||
commit $cfgname
|
||||
EOF
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
BIN
zapret/files/fake/tls_clienthello_max_ru.bin
Normal file
BIN
zapret/files/fake/tls_clienthello_max_ru.bin
Normal file
Binary file not shown.
@@ -72,7 +72,7 @@ function download_json
|
||||
function get_pkg_version
|
||||
{
|
||||
local pkg_name="$1"
|
||||
local ver line pkg_prefix
|
||||
local ver line base
|
||||
if [ "$PKG_MGR" = opkg ]; then
|
||||
ver=$( opkg list-installed "$pkg_name" 2>/dev/null | awk -F' - ' '{print $2}' | tr -d '\r' )
|
||||
if [ -n "$ver" ]; then
|
||||
@@ -83,16 +83,16 @@ function get_pkg_version
|
||||
if [ "$PKG_MGR" = apk ]; then
|
||||
line=$( apk info -e "$pkg_name" 2>/dev/null || true )
|
||||
if [ -n "$line" ]; then
|
||||
pkg_prefix="${pkg_name}-"
|
||||
base=${line%-r[0-9]*}
|
||||
ver=${base##*-}
|
||||
case "$line" in
|
||||
"$pkg_prefix"*)
|
||||
ver=${line#"$pkg_prefix"}
|
||||
*-r[0-9]*)
|
||||
echo -n "$ver${line#$base}"
|
||||
;;
|
||||
*)
|
||||
ver=${line##*-}
|
||||
echo -n "$ver"
|
||||
;;
|
||||
esac
|
||||
echo -n "$ver"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
@@ -106,7 +106,7 @@ function normalize_version
|
||||
local base
|
||||
local major minor rel
|
||||
case "$ver" in
|
||||
*-r*)
|
||||
*-r[0-9]*)
|
||||
rel="${ver##*-r}"
|
||||
base="${ver%-r*}"
|
||||
;;
|
||||
@@ -356,6 +356,10 @@ if [ "$opt_update" != "" ]; then
|
||||
echo "ERROR: downloaded package is incorrect! (size = $ZAP_PKG_SZ)"
|
||||
return 216
|
||||
fi
|
||||
if ! command -v unzip >/dev/null 2>&1; then
|
||||
echo "ERROR: package \"upzip\" not installed!"
|
||||
return 218
|
||||
fi
|
||||
unzip -q "$ZAP_PKG_FN" -d $ZAP_PKG_DIR
|
||||
rm -f "$ZAP_PKG_FN"
|
||||
if [ "$PKG_MGR" = "apk" ]; then
|
||||
@@ -372,15 +376,19 @@ if [ "$opt_update" != "" ]; then
|
||||
echo "------ Downloaded packages:"
|
||||
echo "$ZAP_PKG_LIST"
|
||||
echo "------"
|
||||
ZAP_PKG_BASE_FN=$( find "$ZAP_PKG_DIR" -maxdepth 1 -type f -name "zapret_*.${ZAP_PKG_EXT}" | head -n 1 )
|
||||
ZAP_PKG_LUCI_FN=$( find "$ZAP_PKG_DIR" -maxdepth 1 -type f -name "luci-app-*.${ZAP_PKG_EXT}" | head -n 1 )
|
||||
if [ "$PKG_MGR" != "apk" ]; then
|
||||
ZAP_PKG_BASE_FN=$( find "$ZAP_PKG_DIR" -maxdepth 1 -type f -name "zapret_*.${ZAP_PKG_EXT}" | head -n 1 )
|
||||
else
|
||||
ZAP_PKG_BASE_FN=$( find "$ZAP_PKG_DIR" -maxdepth 1 -type f -name "zapret-[0-9]*.?*.${ZAP_PKG_EXT}" | head -n 1 )
|
||||
fi
|
||||
ZAP_PKG_LUCI_FN=$( find "$ZAP_PKG_DIR" -maxdepth 1 -type f -name "luci-app-zapret2*.${ZAP_PKG_EXT}" | head -n 1 )
|
||||
if [ ! -f "$ZAP_PKG_BASE_FN" ]; then
|
||||
echo "ERROR: File \"zapret_*.${ZAP_PKG_EXT}\" not found!"
|
||||
echo "ERROR: File \"zapret*.${ZAP_PKG_EXT}\" not found!"
|
||||
return 231
|
||||
fi
|
||||
echo "ZAP_PKG_BASE_FN = $ZAP_PKG_BASE_FN"
|
||||
if [ ! -f "$ZAP_PKG_LUCI_FN" ]; then
|
||||
echo "ERROR: File \"luci-app-*.${ZAP_PKG_EXT}\" not found!"
|
||||
echo "ERROR: File \"luci-app-zapret*.${ZAP_PKG_EXT}\" not found!"
|
||||
return 232
|
||||
fi
|
||||
echo "ZAP_PKG_LUCI_FN = $ZAP_PKG_LUCI_FN"
|
||||
|
||||
Reference in New Issue
Block a user