docs: sync README/QUICK_START/EFFORT_MAPPING with current code
- Update ai-openrouter models in ai-setup.sh output and header - Fix effort persistence wording (statusbar -> launcher) - Unify KS_EXCEPTIONS -> KILL_SWITCH_EXCEPTIONS in docs and setup.sh prompt - Clarify menu item 7 only updates AI launchers - Add IPv6 note after ks-off.sh - Scope UFW before.rules insertion to *filter section Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,9 @@
|
||||
| `ks-off.sh` | Временно отключить UFW kill switch (доступ без VPN) |
|
||||
| `ks-on.sh` | Восстановить UFW kill switch |
|
||||
|
||||
Все скрипты запускаются явно от root. Никакой автоустановки нет.
|
||||
Сетевые скрипты запускаются от root. Обычно их дергает `setup.sh` через `sudo` и сохраняет
|
||||
профиль в `~/.config/ai-setup/network_<profile>.conf`; сам `ru-bypass.sh` дополнительно
|
||||
пишет root-конфиг `/etc/ru-bypass.conf` для systemd и NetworkManager dispatcher.
|
||||
|
||||
---
|
||||
|
||||
@@ -29,7 +31,7 @@ Amnezia поднимает интерфейс `amn0` и захватывает
|
||||
- `128.0.0.0/1 dev amn0`
|
||||
|
||||
`ru-bypass.sh` добавляет тысячи **более специфичных** маршрутов для .ru IP-блоков через
|
||||
локальный роутер (например `95.173.0.0/16 via 192.168.1.1 dev wlp1s0`). Ядро Linux
|
||||
локальный роутер (например `95.173.0.0/16 via <GATEWAY> dev <DEV>`). Ядро Linux
|
||||
выбирает самый специфичный маршрут - .ru уходит напрямую, всё остальное - в amn0.
|
||||
|
||||
### UFW kill switch
|
||||
@@ -37,13 +39,13 @@ Amnezia поднимает интерфейс `amn0` и захватывает
|
||||
```
|
||||
default deny outgoing — запрещено всё по умолчанию
|
||||
allow out on amn0 — через Amnezia можно всё
|
||||
before.rules: ipset ru-direct — для .ru IP разрешён прямой выход на wlp1s0
|
||||
before.rules: ipset ru-direct — для .ru IP разрешён прямой выход на DEV
|
||||
before.rules: 10/8, 172.16/12,
|
||||
192.168/16 — RFC1918 (*.loc) разрешён прямой выход на wlp1s0
|
||||
192.168/16 — RFC1918 (*.loc) разрешён прямой выход на DEV
|
||||
```
|
||||
|
||||
Если Amnezia падает: `amn0` исчезает, не-.ru трафик блокируется UFW. Маршруты .ru
|
||||
через wlp1s0 и правило UFW для ipset остаются - .ru работает.
|
||||
через `DEV` и правило UFW для ipset остаются - .ru работает.
|
||||
|
||||
### Что делает скрипт при запуске
|
||||
|
||||
@@ -52,7 +54,12 @@ before.rules: 10/8, 172.16/12,
|
||||
3. Сохраняет ipset в `/etc/ipset.conf`
|
||||
4. Добавляет маршруты через локальный роутер для всех .ru блоков
|
||||
5. Добавляет маршруты для RFC1918 диапазонов (`10/8`, `172.16/12`, `192.168/16`) - нужно для `*.loc`
|
||||
6. При первом запуске: добавляет правила в `/etc/ufw/before.rules` и устанавливает systemd сервисы
|
||||
6. Добавляет встроенные исключения kill switch (`mattermost.eltex-co.ru`, `elph.eltex-co.ru`, `10.80.0.15`)
|
||||
7. Добавляет пользовательские исключения из `AMNEZIA_SERVER` и `KILL_SWITCH_EXCEPTIONS`
|
||||
8. Обновляет блок локальных Eltex-хостов в `/etc/hosts`
|
||||
9. Если задан `LOCAL_DNS`, настраивает `resolvectl` для `~loc` на интерфейсе `DEV`
|
||||
10. Обновляет `/etc/ufw/before.rules`, прямые iptables-правила и отключает IPv6 при активном kill switch
|
||||
11. При первом запуске: устанавливает systemd service/timer и NetworkManager dispatcher
|
||||
|
||||
### Сервисы (устанавливаются однократно)
|
||||
|
||||
@@ -60,6 +67,7 @@ before.rules: 10/8, 172.16/12,
|
||||
Нужен потому что UFW стартует рано и не знает об ipset `ru-direct`.
|
||||
- `ru-bypass.service` - запускается после network-online, качает свежий RIPE-список и
|
||||
добавляет маршруты.
|
||||
- `ru-bypass.timer` - ежедневно запускает `ru-bypass.service` для обновления RIPE-списка.
|
||||
- NM dispatcher `/etc/NetworkManager/dispatcher.d/99-ru-bypass` - автоматически перезапускает
|
||||
скрипт когда amn0 поднимается (Amnezia переподключилась).
|
||||
|
||||
@@ -67,21 +75,39 @@ before.rules: 10/8, 172.16/12,
|
||||
|
||||
## Запуск
|
||||
|
||||
### Первый запуск / обновление
|
||||
### Первый запуск / обновление через меню
|
||||
|
||||
```bash
|
||||
bash setup.sh
|
||||
# выбери пункт 2) Сеть: ru-bypass + kill switch
|
||||
```
|
||||
|
||||
Меню предложит значения из `ip route show default`, даст выбрать профиль (`home`, `office`,
|
||||
`$(hostname)` и т.д.) и сохранит:
|
||||
|
||||
```bash
|
||||
GATEWAY=...
|
||||
DEV=...
|
||||
LOCAL_DNS=...
|
||||
AMNEZIA_SERVER=...
|
||||
KILL_SWITCH_EXCEPTIONS=...
|
||||
```
|
||||
|
||||
### Прямой запуск скрипта
|
||||
|
||||
```bash
|
||||
sudo bash scripts/ru-bypass.sh
|
||||
```
|
||||
|
||||
Скрипт сам установит сервисы, добавит правило UFW и настроит NM dispatcher.
|
||||
Если env-переменные не переданы, скрипт сначала читает `/etc/ru-bypass.conf`, а потом
|
||||
использует legacy-дефолты `GATEWAY=192.168.1.1`, `DEV=wlp1s0`.
|
||||
|
||||
### Параметры для другой сети
|
||||
|
||||
По умолчанию используется домашняя сеть (`GATEWAY=192.168.1.1`, `DEV=wlp1s0`).
|
||||
Для другой машины передай параметры через env:
|
||||
Для другой сети передай параметры через env:
|
||||
|
||||
```bash
|
||||
sudo GATEWAY=10.0.0.1 DEV=enp3s0 bash ru-bypass.sh
|
||||
sudo GATEWAY=10.0.0.1 DEV=enp3s0 LOCAL_DNS=10.0.0.53 bash scripts/ru-bypass.sh
|
||||
```
|
||||
|
||||
Чтобы узнать нужные значения:
|
||||
@@ -94,12 +120,13 @@ ip route show default
|
||||
|
||||
### Офисная машина
|
||||
|
||||
Если в офисе другой gateway и другой сетевой интерфейс - просто передай их через env.
|
||||
Amnezia там тоже поднимает `amn0`, так что остальное работает одинаково.
|
||||
Если в офисе другой gateway и другой сетевой интерфейс - создай отдельный профиль через
|
||||
пункт 2 в `setup.sh` или передай значения через env. Amnezia там тоже поднимает `amn0`,
|
||||
так что остальное работает одинаково.
|
||||
|
||||
Пример (офис с проводным интерфейсом):
|
||||
```bash
|
||||
sudo GATEWAY=192.168.0.1 DEV=eth0 bash ru-bypass.sh
|
||||
sudo GATEWAY=192.168.0.1 DEV=eth0 LOCAL_DNS=192.168.0.53 bash scripts/ru-bypass.sh
|
||||
```
|
||||
|
||||
---
|
||||
@@ -118,6 +145,9 @@ sudo bash scripts/ks-off.sh
|
||||
Отключает UFW. После этого - отключить Amnezia через GUI. Трафик пойдёт напрямую через
|
||||
провайдера (российский IP).
|
||||
|
||||
**Примечание:** IPv6 остаётся отключённым после `ks-off.sh` (если он был выключен `ks-on.sh`
|
||||
или `ru-bypass.sh`). Он восстановится автоматически при следующем `ks-on.sh` или перезагрузке.
|
||||
|
||||
**Важно:** выйди из Claude Code перед этим - сессия будет идти с другого IP.
|
||||
|
||||
### ks-on.sh - восстановить kill switch
|
||||
@@ -150,7 +180,7 @@ sudo bash scripts/ks-on.sh
|
||||
```bash
|
||||
# Эти команды без sudo:
|
||||
ip route get 8.8.8.8 # -> dev amn0 (Google через VPN)
|
||||
ip route get 95.173.136.1 # -> dev wlp1s0 (ozon.ru напрямую)
|
||||
ip route get 95.173.136.1 # -> dev <DEV> (ozon.ru напрямую)
|
||||
ip route get $(dig +short api.anthropic.com A | head -1) # -> dev amn0
|
||||
|
||||
# Полные тесты:
|
||||
|
||||
Reference in New Issue
Block a user