# Гайд по скриптам hotspot

Скрипты для настройки и использования хотспота с VPN на Mac: установка WireGuard, TTL, запуск и остановка VPN.

**Контекст:** [GUARANTEED_TETHERING_HIDE.md](../GUARANTEED_TETHERING_HIDE.md) — полная схема скрытия tethering (VPN на Mac, не на телефоне; TTL=65; USB модем).

---

## Обзор скриптов

| Скрипт | Назначение | Когда запускать |
|--------|------------|-----------------|
| `setup-wireguard-mac.sh` | Первичная установка WireGuard и конфига | Один раз при настройке |
| `set-ttl-macos.sh` | Установка TTL=65 (скрытие tethering) | Один раз, при необходимости — после перезагрузки |
| `vpn-up.sh` | Запуск WireGuard VPN | Каждый раз при использовании USB/хотспота |
| `vpn-down.sh` | Остановка WireGuard VPN | По окончании работы через хотспот |

---

## 1. setup-wireguard-mac.sh

**Назначение:** Установка WireGuard на macOS и разовая настройка (конфиг в `/etc/wireguard/wg0.conf`, первый запуск VPN).

**Запуск:**
```bash
cd /Users/eternal/code/local_machine
./docs/hotspot/scripts/setup-wireguard-mac.sh
```

**Что делает:**
1. Проверяет наличие `wg-quick`; при отсутствии ставит `wireguard-tools` через Homebrew.
2. Создаёт `/etc/wireguard` (права `700`).
3. Копирует `docs/hotspot/wg-ru.conf` в `/etc/wireguard/wg0.conf` (права `600`).
4. Запускает `wg-quick up wg0`.
5. Проверяет внешний IP (ожидается `83.136.235.230`).

**Требования:**
- Файл конфигурации: `docs/hotspot/wg-ru.conf` (относительно корня репозитория).
- Запуск из корня репо или с путём, где доступен `docs/hotspot/wg-ru.conf`.
- `sudo` для установки в `/etc/wireguard` и для `wg-quick up`.

**После установки:** VPN уже поднят; для следующих сессий используйте `vpn-up.sh` / `vpn-down.sh`.

---

## 2. set-ttl-macos.sh

**Назначение:** Установка TTL=65 на Mac, чтобы после прохождения через телефон (TTL-1) оператор видел TTL=64 и не определял tethering.

**Запуск:**
```bash
./docs/hotspot/scripts/set-ttl-macos.sh
```

**Что делает:**
1. Показывает текущий TTL.
2. Выполняет `sudo sysctl -w net.inet.ip.ttl=65`.
3. Проверяет, что TTL стал 65.
4. Добавляет `net.inet.ip.ttl=65` в `/etc/sysctl.conf`, если ещё нет (сохранится после перезагрузки).

**Требования:** `sudo`.

**Когда запускать:** Один раз после установки ОС/нового Mac; при необходимости — после каждой перезагрузки, если значение не подхватывается из `sysctl.conf`.

**Проверка:**
```bash
sysctl net.inet.ip.ttl
# net.inet.ip.ttl: 65
```

---

## 3. vpn-up.sh

**Назначение:** Быстрый запуск WireGuard VPN на Mac при использовании интернета через USB модем/хотспот.

**Запуск:**
```bash
./docs/hotspot/scripts/vpn-up.sh
```

**Что делает:**
1. Выполняет `sudo wg-quick up wg0`.
2. Ждёт 2 секунды.
3. Проверяет внешний IP через `api.ipify.org` (ожидается `83.136.235.230`).
4. Выводит `sudo wg show`.

**Требования:**
- WireGuard уже настроен (`setup-wireguard-mac.sh` выполнен хотя бы раз).
- Конфиг: `/etc/wireguard/wg0.conf`.
- `sudo`.

**Порядок при использовании хотспота:** сначала TTL=65 (если ещё не стоит), на телефоне включить USB модем **без VPN**, затем на Mac запустить этот скрипт.

---

## 4. vpn-down.sh

**Назначение:** Остановка WireGuard VPN на Mac.

**Запуск:**
```bash
./docs/hotspot/scripts/vpn-down.sh
```

**Что делает:** Выполняет `sudo wg-quick down wg0`.

**Требования:** `sudo`.

---

## Типичный сценарий

### Первая настройка (один раз)

```bash
cd /Users/eternal/code/local_machine

# 1. Установить WireGuard и конфиг, поднять VPN
./docs/hotspot/scripts/setup-wireguard-mac.sh

# 2. Установить TTL=65
./docs/hotspot/scripts/set-ttl-macos.sh
```

### Каждое использование хотспота

1. На телефоне: **не** включать VPN, включить **USB модем** (или Wi‑Fi точку доступа).
2. На Mac:
   ```bash
   ./docs/hotspot/scripts/vpn-up.sh
   ```
3. Проверка:
   ```bash
   curl https://api.ipify.org
   # 83.136.235.230
   ```
4. По окончании:
   ```bash
   ./docs/hotspot/scripts/vpn-down.sh
   ```

---

## Права на выполнение

Если скрипты не запускаются:

```bash
chmod +x docs/hotspot/scripts/setup-wireguard-mac.sh
chmod +x docs/hotspot/scripts/set-ttl-macos.sh
chmod +x docs/hotspot/scripts/vpn-up.sh
chmod +x docs/hotspot/scripts/vpn-down.sh
```

---

## Связанные документы

- [GUARANTEED_TETHERING_HIDE.md](../GUARANTEED_TETHERING_HIDE.md) — полная схема: TTL, VPN на Mac, USB модем, порядок действий, решение проблем.
- [QUICK_FIX_VPN_ROUTING.md](../QUICK_FIX_VPN_ROUTING.md) — быстрый фикс: VPN на Mac вместо телефона.
- [ANDROID_VPN_TETHERING_ROUTING.md](../ANDROID_VPN_TETHERING_ROUTING.md) — почему tethering не идёт через VPN на Android.
- [SPEED_LIMITATIONS_AND_USB_TETHERING.md](../SPEED_LIMITATIONS_AND_USB_TETHERING.md) — ограничения скорости и настройка USB tethering.
