Пакет: убрать docker.io из metadata и улучшить help/docs layout
Удалён Recommends: docker.io из control. Ужесточено предупреждение, что --install не является production-path. В .deb docs переведены на repo-like структуру (/usr/share/doc/awg2-harness/repo/...), чтобы не ломались относительные ссылки.
This commit is contained in:
@@ -126,6 +126,8 @@
|
||||
- [ ] Пакет ставит unit в `/lib/systemd/system/awg2-harness.service`.
|
||||
- [ ] Пакет не устанавливает `/etc/awg2-harness/config.toml` автоматически.
|
||||
- [ ] Пакет не включает/не стартует сервис автоматически.
|
||||
- [ ] Пакет не имеет `Depends`/`Recommends` на `docker.io`; установка Amnezia/Docker внешняя.
|
||||
- [ ] `apt install ./awg2-harness_<version>_amd64.deb` не устанавливает и не заменяет Docker.
|
||||
- [ ] `apt install ./awg2-harness_<version>_amd64.deb` проходит на clean Debian 13 Amnezia host.
|
||||
- [ ] После ручной установки config `awg2-harness validate-config` проходит.
|
||||
- [ ] Сервис стартует только после явного `systemctl enable --now awg2-harness.service`.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## 1. Цель
|
||||
|
||||
Не детектить BitTorrent как протокол. Цель проще: ограничить количество одновременных conntrack flows на один VPN peer IP. Торрент-клиенты обычно пытаются держать сотни TCP/UDP peer-сессий, DHT/uTP/trackers. Лимит на 200–250 одновременных flows резко ухудшает P2P-поведение, но почти не затрагивает обычные сценарии.
|
||||
Не детектить BitTorrent как протокол. Цель проще: ограничить количество одновременных conntrack flows на один VPN peer IP. Торрент-клиенты обычно пытаются держать сотни TCP/UDP peer-сессий, DHT/uTP/trackers. Лимит в диапазоне 100–250 одновременных flows заметно ухудшает P2P-поведение, но почти не затрагивает обычные сценарии при корректной настройке.
|
||||
|
||||
Это мягкий технический барьер, а не abuse-система со страйками.
|
||||
|
||||
@@ -54,7 +54,7 @@ table inet awg2_harness {
|
||||
type filter hook forward priority filter; policy accept;
|
||||
|
||||
ip saddr 10.8.1.0/24 ct state new \
|
||||
meter awg2_peer_connlimit_v4 { ip saddr ct count over 200 } \
|
||||
meter awg2_peer_connlimit_v4 { ip saddr ct count over 100 } \
|
||||
counter name antitorrent_dropped_v4 \
|
||||
drop
|
||||
}
|
||||
@@ -76,8 +76,9 @@ max_connections_per_peer = 100
|
||||
Практические варианты:
|
||||
|
||||
- `150` — агрессивнее, больше риск задеть редкие легитимные сценарии.
|
||||
- `200` — хороший default для VPN peer с лимитом 70 Mbit/s.
|
||||
- `250` — более осторожный вариант, если хочется минимизировать риск жалоб от тяжёлых браузерных/WebRTC/WebSocket-сценариев.
|
||||
- `100` — production default.
|
||||
- `150` — мягче и более permissive при редких жалобах.
|
||||
- `200/250` — ещё более permissive варианты, если нужно дополнительно снизить риск false positives.
|
||||
|
||||
## 5. Почему это должно быть в orchestrator
|
||||
|
||||
@@ -91,7 +92,7 @@ max_connections_per_peer = 100
|
||||
|
||||
## 6. Conntrack и производительность
|
||||
|
||||
`ct count` использует conntrack. На текущем масштабе это нормально: даже 23 peers × 200 flows = около 4600 активных flows до ограничения. Это не выглядит опасно для production-хоста само по себе.
|
||||
`ct count` использует conntrack. На текущем масштабе это нормально: даже 23 peers × 100 flows = около 2300 активных flows до ограничения. Это не выглядит опасно для production-хоста само по себе.
|
||||
|
||||
Что надо мониторить:
|
||||
|
||||
|
||||
+9
-7
@@ -70,8 +70,8 @@ Flags:
|
||||
--skip-fmt Skip cargo fmt --check
|
||||
--help Show this help
|
||||
Notes:
|
||||
--install is for manual source-tree installs (staging/debug).
|
||||
Preferred production flow is package-based deployment via apt install ./awg2-harness_<version>_amd64.deb
|
||||
--install is not the production deployment path; it is for manual source-tree installs (staging/debug).
|
||||
Use generated .deb packages on production hosts: apt install ./awg2-harness_<version>_amd64.deb
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -295,13 +295,16 @@ package_deb() {
|
||||
install -d -m 0755 "$staging/DEBIAN"
|
||||
install -d -m 0755 "$staging/usr/sbin"
|
||||
install -d -m 0755 "$staging/lib/systemd/system"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo/docs"
|
||||
install -d -m 0755 "$staging/usr/share/doc/awg2-harness/repo/tools"
|
||||
|
||||
install -m 0755 "$TARGET_BIN" "$staging/usr/sbin/awg2-harness"
|
||||
install -m 0644 "$ROOT_DIR/awg2-harness.service" "$staging/lib/systemd/system/awg2-harness.service"
|
||||
install -m 0644 "$ROOT_DIR/config.example.toml" "$staging/usr/share/doc/awg2-harness/config.example.toml"
|
||||
install -m 0644 "$ROOT_DIR/README.md" "$staging/usr/share/doc/awg2-harness/README.md"
|
||||
install -m 0644 "$ROOT_DIR/docs/INSTALLATION.md" "$staging/usr/share/doc/awg2-harness/INSTALLATION.md"
|
||||
install -m 0644 "$ROOT_DIR/config.example.toml" "$staging/usr/share/doc/awg2-harness/repo/config.example.toml"
|
||||
install -m 0644 "$ROOT_DIR/README.md" "$staging/usr/share/doc/awg2-harness/repo/README.md"
|
||||
install -m 0644 "$ROOT_DIR/docs/INSTALLATION.md" "$staging/usr/share/doc/awg2-harness/repo/docs/INSTALLATION.md"
|
||||
install -m 0644 "$ROOT_DIR/tools/README.md" "$staging/usr/share/doc/awg2-harness/repo/tools/README.md"
|
||||
|
||||
cat >"$staging/DEBIAN/control" <<EOF
|
||||
Package: awg2-harness
|
||||
@@ -311,7 +314,6 @@ Priority: optional
|
||||
Architecture: amd64
|
||||
Maintainer: AWG2 Harness
|
||||
Depends: libc6, iproute2, wireguard-tools, nftables, kmod, util-linux, procps, systemd
|
||||
Recommends: docker.io
|
||||
Description: Host-side orchestrator for AmneziaWG traffic shaping and lifecycle recovery
|
||||
AWG2 Harness manages AmneziaWG traffic shaping, IFB ingress shaping,
|
||||
nftables anti-torrent guard, reboot scheduling, swap setup and daemonized
|
||||
|
||||
Reference in New Issue
Block a user