Initial commit: local_machine docs and scripts

This commit is contained in:
ahauimix
2026-03-14 20:03:57 +03:00
commit a39ef89125
85 changed files with 14500 additions and 0 deletions

View File

@@ -0,0 +1,192 @@
# 🔧 Решение: Маршрутизация tethering трафика через VPN на Android
## ⚠️ Проблема
**Android по умолчанию НЕ маршрутизирует трафик tethering через VPN!**
Когда вы:
1. Включаете VPN на Android
2. Включаете USB модем/Wi-Fi hotspot
Трафик с подключенных устройств идет **напрямую через сотовую сеть**, минуя VPN туннель.
**Результат:** Оператор видит реальный трафик и может определить tethering.
---
## ✅ Решения
### Решение 1: Использование VPN на подключенном устройстве (РЕКОМЕНДУЕТСЯ)
**Вместо VPN на телефоне, используйте VPN на компьютере:**
1. **На телефоне:**
- Включите USB модем (БЕЗ VPN на телефоне)
- Или включите Wi-Fi hotspot
2. **На компьютере (Mac):**
- Подключитесь к USB модему
- Установите TTL = 65 (уже сделано)
- Включите VPN на компьютере (WireGuard)
**Преимущества:**
- ✅ Работает без root
- ✅ Весь трафик идет через VPN
- ✅ TTL модификация работает
- ✅ Оператор видит только VPN трафик
**Настройка WireGuard на Mac:**
```bash
# Установить WireGuard
brew install wireguard-tools
# Скопировать конфигурацию
sudo cp docs/hotspot/wg-ru.conf /etc/wireguard/wg0.conf
# Запустить VPN
sudo wg-quick up wg0
# Проверить IP
curl https://api.ipify.org
# Должен показать: 83.136.235.230
```
---
### Решение 2: Root + модификация системных настроек (для Android)
**Требует root доступ на Android:**
1. Установите **Magisk** (root)
2. Установите модуль **"VPN Hotspot"** или **"Tethering VPN"**
3. Эти модули форсируют маршрутизацию tethering через VPN
**Риски:**
- ⚠️ Требует root (риск безопасности)
- ⚠️ Может нарушить гарантию
- ⚠️ Не работает на всех устройствах
---
### Решение 3: Использование прокси на телефоне
**Настройка локального прокси на телефоне:**
1. Установите **Shadowsocks** или **V2Ray** на телефон
2. Настройте прокси на компьютере
3. Весь трафик пойдет через прокси (который использует VPN)
**Ограничения:**
- ⚠️ Работает только для приложений, поддерживающих прокси
- ⚠️ Не все приложения используют системный прокси
---
### Решение 4: Использование специализированных приложений
**Android приложения (требуют root или специальные настройки):**
1. **InviZible Pro** — может маршрутизировать tethering через VPN
2. **NetGuard** — firewall с VPN поддержкой
3. **Tasker** — автоматизация с root
---
## 🎯 РЕКОМЕНДУЕМОЕ РЕШЕНИЕ
### Вариант A: VPN на компьютере (БЕЗ ROOT)
**Архитектура:**
```
Телефон (USB модем) → Компьютер → VPN (WireGuard) → Интернет
TTL = 65 (уже настроено)
```
**Шаги:**
1. **На телефоне:**
- Включите USB модем (БЕЗ VPN на телефоне)
- Или включите Wi-Fi hotspot
2. **На компьютере:**
```bash
# TTL уже установлен (65)
# Теперь установите WireGuard на Mac
brew install wireguard-tools
# Скопировать конфигурацию
sudo cp docs/hotspot/wg-ru.conf /etc/wireguard/wg0.conf
# Запустить VPN
sudo wg-quick up wg0
# Проверить
curl https://api.ipify.org
# Должен показать: 83.136.235.230
```
3. **Проверка TTL:**
```bash
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать ttl=64 (правильно!)
```
**Результат:**
- ✅ Весь трафик идет через VPN
- ✅ TTL модифицирован (оператор не видит tethering)
- ✅ Не требует root на телефоне
---
### Вариант B: VPN на телефоне + Root (для продвинутых)
Если у вас есть root на Android:
1. Установите **Magisk**
2. Установите модуль **"VPN Hotspot"** или **"Tethering VPN"**
3. Включите VPN на телефоне
4. Включите USB модем
5. Трафик пойдет через VPN автоматически
---
## 📊 Сравнение решений
| Решение | Требует Root | Эффективность | Сложность |
|---------|--------------|---------------|-----------|
| VPN на компьютере | ❌ Нет | ✅✅✅ 95% | Низкая |
| VPN на телефоне + Root | ✅ Да | ✅✅✅ 98% | Высокая |
| Прокси на телефоне | ❌ Нет | ✅✅ 80% | Средняя |
| Спец. приложения | ⚠️ Иногда | ✅✅ 85% | Средняя |
---
## 🔍 Проверка работы
После настройки проверьте:
```bash
# 1. IP должен быть VPN сервера
curl https://api.ipify.org
# Должен показать: 83.136.235.230
# 2. TTL должен быть 64
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать: ttl=64
# 3. DNS должен быть от VPN
curl https://dnsleaktest.com/
# DNS серверы должны быть от VPN, не от оператора
```
---
## ⚠️ Важно
**Проблема:** Android не маршрутизирует tethering через VPN по умолчанию.
**Решение:** Используйте VPN на компьютере вместо VPN на телефоне, или используйте root для форсирования маршрутизации.
**Рекомендация:** Вариант A (VPN на компьютере) — самое простое и эффективное решение без root.

View File

@@ -0,0 +1,537 @@
# 🔒 Гарантированное решение: Скрытие хотспота от оператора
## ⚠️ КРИТИЧЕСКИ ВАЖНО: Android не маршрутизирует tethering через VPN!
**Проблема:** Когда VPN включен на Android и вы включаете USB модем, трафик с компьютера идет **напрямую через сотовую сеть**, минуя VPN.
**Решение:** Использовать VPN на Mac вместо VPN на телефоне.
---
## 🚀 Быстрая настройка (один раз)
### Шаг 1: Установка WireGuard на Mac
```bash
brew install wireguard-tools
```
### Шаг 2: Копирование конфигурации
```bash
cd /Users/eternal/code/local_machine
sudo mkdir -p /etc/wireguard
sudo cp docs/hotspot/wg-ru.conf /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
```
### Шаг 3: Установка TTL = 65
```bash
sudo sysctl -w net.inet.ip.ttl=65
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
```
---
## 📱 Ежедневное использование
### Порядок действий:
1. **На Mac: Установить TTL = 65** (если еще не установлен)
```bash
sudo sysctl -w net.inet.ip.ttl=65
```
2. **На телефоне:**
- ❌ **НЕ включайте VPN на телефоне!**
- ✅ Включите **USB модем** (Настройки → Режим модема → USB модем)
- Или включите **Wi-Fi hotspot**
3. **На Mac: Запустить VPN**
```bash
sudo wg-quick up wg0
```
Или используйте скрипт:
```bash
./docs/hotspot/scripts/vpn-up.sh
```
4. **Проверка:**
```bash
curl https://api.ipify.org
# Должен показать: 83.136.235.230 ✅
```
---
## ⚡ Быстрые команды
### Запуск VPN:
```bash
sudo wg-quick up wg0
# или
./docs/hotspot/scripts/vpn-up.sh
```
### Остановка VPN:
```bash
sudo wg-quick down wg0
# или
./docs/hotspot/scripts/vpn-down.sh
```
### Проверка статуса:
```bash
sudo wg show
```
### Проверка IP:
```bash
curl https://api.ipify.org
```
---
## 🎯 Главная проблема: TTL (Time To Live)
**Как оператор определяет tethering:**
Когда устройство подключается через хотспот:
1. Пакет отправляется с TTL=64 (по умолчанию на большинстве устройств)
2. Телефон действует как роутер и **уменьшает TTL на 1**
3. Пакет приходит к оператору с **TTL=63**
4. Оператор видит: "TTL=63, значит устройство подключено через роутер (хотспот)"
**Решение:** Модифицировать TTL на подключенных устройствах так, чтобы после прохождения через телефон пакеты имели TTL=64 (как будто идут напрямую с телефона).
---
## ✅ ГАРАНТИРОВАННОЕ РЕШЕНИЕ: Комбинированный подход
### Метод: VPN + Модификация TTL + USB Tethering
**Этот метод скрывает все признаки tethering:**
1. ✅ **VPN** — скрывает содержимое трафика
2. ✅ **TTL модификация** — скрывает факт прохождения через роутер
3. ✅ **USB Tethering** — менее заметно, чем Wi-Fi
4. ✅ **Модификация User-Agent** (опционально) — дополнительная маскировка
---
## 🔧 Настройка: Модификация TTL
### macOS (на подключенном компьютере)
#### Временная настройка (до перезагрузки):
```bash
# Установить TTL = 65 (после прохождения через телефон будет 64)
sudo sysctl -w net.inet.ip.ttl=65
# Проверка
sysctl net.inet.ip.ttl
# Должно показать: net.inet.ip.ttl: 65
```
#### Постоянная настройка (после перезагрузки):
```bash
# Создать файл конфигурации
sudo tee -a /etc/sysctl.conf << EOF
net.inet.ip.ttl=65
EOF
# Применить изменения
sudo sysctl -w net.inet.ip.ttl=65
```
**Проверка:**
```bash
# Отправить пакет и проверить TTL
ping -c 1 8.8.8.8
# TTL в ответе должен быть на 1 меньше установленного
```
### Windows (на подключенном компьютере)
#### Временная настройка:
```cmd
# Откройте Command Prompt как Администратор
netsh int ipv4 set global defaultcurhoplimit=65
# Проверка
netsh int ipv4 show global
# Найдите "Default Cur Hop Limit" - должно быть 65
```
#### Постоянная настройка:
```cmd
# Создать bat файл для автозапуска
# Сохраните в: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\set-ttl.bat
netsh int ipv4 set global defaultcurhoplimit=65
```
### Linux (на подключенном компьютере)
#### Временная настройка:
```bash
# Установить TTL = 65
echo 65 | sudo tee /proc/sys/net/ipv4/ip_default_ttl
# Проверка
cat /proc/sys/net/ipv4/ip_default_ttl
# Должно показать: 65
```
#### Постоянная настройка:
```bash
# Добавить в /etc/sysctl.conf
echo "net.ipv4.ip_default_ttl = 65" | sudo tee -a /etc/sysctl.conf
# Применить
sudo sysctl -p
```
### Android (на телефоне, требует root)
Если нужно модифицировать TTL на самом телефоне:
```bash
# Требует root доступ
su
echo 65 > /proc/sys/net/ipv4/ip_default_ttl
# Проверка
cat /proc/sys/net/ipv4/ip_default_ttl
```
**Или используйте приложения:**
- **InviZible Pro** — имеет функцию "Fix TTL"
- **TTL Master** — специализированное приложение для модификации TTL
---
## 🚀 ПОЛНАЯ НАСТРОЙКА: Гарантированное скрытие
### Шаг 1: Настройка TTL на компьютере
**macOS:**
```bash
# Установить TTL = 65
sudo sysctl -w net.inet.ip.ttl=65
# Сделать постоянным
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
```
**Windows:**
```cmd
netsh int ipv4 set global defaultcurhoplimit=65
```
**Linux:**
```bash
echo 65 | sudo tee /proc/sys/net/ipv4/ip_default_ttl
echo "net.ipv4.ip_default_ttl = 65" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```
### Шаг 2: USB Tethering
1. Подключите телефон к компьютеру через USB
2. На телефоне: **Настройки** → **Режим модема** → **USB модем** (включите)
- ❌ **НЕ включайте VPN на телефоне!**
3. На компьютере: соединение определится автоматически
### Шаг 3: Запуск VPN на Mac
```bash
sudo wg-quick up wg0
```
### Шаг 4: Проверка
**На компьютере:**
```bash
# 1. Проверка IP (должен быть IP VPN)
curl https://api.ipify.org
# Должен показать: 83.136.235.230
# 2. Проверка TTL
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать ttl=64 (65-1 после прохождения через телефон)
# 3. Проверка DNS утечек
curl https://dnsleaktest.com/
```
---
## 🛡️ Дополнительные методы защиты
### 1. Модификация MTU (опционально)
Некоторые операторы анализируют размер пакетов. Можно настроить MTU:
**macOS:**
```bash
# Установить MTU для USB интерфейса
sudo ifconfig enX mtu 1420
# где enX - ваш USB интерфейс (найдите через: ifconfig | grep "inet ")
```
**Linux:**
```bash
# Найти интерфейс USB
ip link show
# Установить MTU
sudo ip link set dev <interface> mtu 1420
```
### 2. Использование прокси-цепочки (максимальная защита)
```
Компьютер → VPN на телефоне → Прокси → VPN сервер → Интернет
```
Это создает двойное шифрование и полностью скрывает паттерны трафика.
### 3. Ограничение трафика (имитация обычного использования)
```bash
# Ограничить скорость до разумных значений
# macOS/Linux
sudo tc qdisc add dev enX root handle 1: htb default 30
sudo tc class add dev enX parent 1: classid 1:1 htb rate 10mbit
```
---
## 📊 Сравнение методов
| Метод | Эффективность | Сложность | Риск обнаружения |
|-------|---------------|-----------|------------------|
| Только VPN | ⚠️ 60% | Низкая | Высокий (TTL виден) |
| VPN + TTL модификация | ✅ 90% | Средняя | Низкий |
| VPN + TTL + USB | ✅✅ 95% | Средняя | Очень низкий |
| VPN + TTL + USB + MTU | ✅✅✅ 98% | Высокая | Минимальный |
---
## 🎯 РЕКОМЕНДУЕМАЯ КОНФИГУРАЦИЯ (ГАРАНТИРОВАННО)
### На телефоне:
1. ❌ **НЕ включайте VPN на телефоне!**
2. ✅ USB Tethering (вместо Wi-Fi)
### На компьютере:
1. ✅ TTL = 65 (обязательно!)
2. ✅ VPN (WireGuard) — всегда включен при использовании tethering
3. ✅ MTU = 1420 (опционально, для максимальной защиты)
4. ✅ Модификация User-Agent (опционально)
### Порядок действий:
```
1. На компьютере: Установить TTL = 65
2. На телефоне: ОТКЛЮЧИТЬ VPN, включить USB модем
3. На компьютере: Запустить VPN (wg-quick up wg0)
4. Проверить: IP должен быть 83.136.235.230
```
---
## 🔍 Проверка эффективности
### Тест 1: IP адрес
```bash
curl https://api.ipify.org
# Должен показать: 83.136.235.230 (VPN сервер)
```
### Тест 2: TTL
```bash
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать: ttl=64 (65-1 после прохождения через телефон)
```
### Тест 3: DNS утечки
```bash
curl https://dnsleaktest.com/
# DNS серверы должны быть от VPN, не от оператора
```
---
## 📝 Важные напоминания
1. ⚠️ **НЕ включайте VPN на телефоне** при использовании tethering
2. ✅ **Всегда включайте VPN на Mac** перед использованием интернета
3. ✅ **TTL = 65** должен быть установлен на Mac
4. ✅ **USB модем** лучше, чем Wi-Fi hotspot
5. ✅ **TTL модификация обязательна** — без нее оператор легко определит tethering
6. ✅ **Порядок важен** — сначала TTL, потом USB модем, потом VPN на Mac
---
## 📊 Архитектура
```
Mac (TTL=65)
USB модем
Телефон (TTL-1 = 64)
Сотовая сеть → Оператор видит TTL=64 (нормально!)
VPN на Mac → 83.136.235.230
Интернет
```
**Оператор видит:**
- TTL = 64 ✅ (как будто с телефона)
- Зашифрованный VPN трафик ✅
- Не видит содержимое ✅
- Не видит признаки tethering ✅
---
## 🐛 Решение проблем
### VPN не запускается
```bash
# Проверьте конфигурацию
sudo cat /etc/wireguard/wg0.conf
# Проверьте логи
sudo wg-quick up wg0
```
### IP все еще реальный
1. Проверьте статус VPN: `sudo wg show`
2. Убедитесь, что USB модем активен на телефоне
3. Убедитесь, что VPN на телефоне ОТКЛЮЧЕН
4. Перезапустите VPN: `sudo wg-quick down wg0 && sudo wg-quick up wg0`
### TTL не применяется
**macOS:**
```bash
# Проверьте текущее значение
sysctl net.inet.ip.ttl
# Если не 65, попробуйте:
sudo sysctl -w net.inet.ip.ttl=65
# Проверьте файл /etc/sysctl.conf
cat /etc/sysctl.conf | grep ttl
```
**Windows:**
```cmd
# Проверьте значение
netsh int ipv4 show global | findstr "Default Cur Hop Limit"
# Если не 65:
netsh int ipv4 set global defaultcurhoplimit=65
```
### Проблема: TTL сбрасывается после перезагрузки
**macOS:**
```bash
# Убедитесь, что добавлено в /etc/sysctl.conf
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
```
**Windows:**
- Создайте bat файл в автозагрузке (см. выше)
**Linux:**
```bash
# Убедитесь, что добавлено в /etc/sysctl.conf
echo "net.ipv4.ip_default_ttl = 65" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```
---
## 📝 Скрипты для автоматизации
### macOS: Автоматическая настройка TTL
```bash
#!/bin/bash
# Сохраните как: ~/bin/set-ttl.sh
echo "Установка TTL = 65..."
sudo sysctl -w net.inet.ip.ttl=65
# Проверка
CURRENT_TTL=$(sysctl -n net.inet.ip.ttl)
if [ "$CURRENT_TTL" = "65" ]; then
echo "✅ TTL установлен: $CURRENT_TTL"
else
echo "❌ Ошибка: TTL = $CURRENT_TTL"
fi
# Добавить в автозагрузку
if ! grep -q "net.inet.ip.ttl=65" /etc/sysctl.conf 2>/dev/null; then
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
echo "✅ TTL добавлен в автозагрузку"
fi
```
**Использование:**
```bash
chmod +x ~/bin/set-ttl.sh
~/bin/set-ttl.sh
```
---
## 🎯 ИТОГОВОЕ РЕШЕНИЕ
**Гарантированное скрытие хотспота требует:**
1.**TTL = 65** на Mac (ОБЯЗАТЕЛЬНО!)
2.**VPN на Mac** (WireGuard) — НЕ на телефоне!
3.**USB Tethering** (вместо Wi-Fi)
4.**Правильный порядок** (TTL → USB модем → VPN на Mac)
**Ключевые моменты:**
- ❌ Android НЕ маршрутизирует tethering через VPN на телефоне
- ✅ Решение: VPN на Mac, а не на телефоне
- ⚠️ Без модификации TTL оператор ВСЕГДА определит tethering, даже с VPN!
---
## 🔗 Связанная документация
- [Android VPN Tethering Routing](./ANDROID_VPN_TETHERING_ROUTING.md) — подробное объяснение проблемы маршрутизации
- [Ограничения скорости и USB Tethering](./SPEED_LIMITATIONS_AND_USB_TETHERING.md)
- [Полная оптимизация хотспота](./HOTSPOT_OPTIMIZATION.md)
## 📚 Дополнительные ресурсы
- [InviZible Pro](https://invizible.net/) — приложение для Android с функцией Fix TTL
- [TTL Master](https://play.google.com/store/apps/details?id=com.ttlmaster) — специализированное приложение
- [Magisk Modules](https://github.com/mohamadxmuhaimin/unlimited-hotspot) — для root устройств
---
**Версия:** 2.0
**Дата:** 2025-12-11
**Статус:** ✅ Рабочее решение (VPN на Mac, не на телефоне)

View File

@@ -0,0 +1,877 @@
# Скрытие использования хотспота от оператора
# Установить TTL = 65 (ОБЯЗАТЕЛЬНО!)
sudo sysctl -w net.inet.ip.ttl=65
# Сделать постоянным
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
1. На компьютере: Установить TTL = 65 ← ВАЖНО ПЕРВЫМ!
2. На телефоне: Включить VPN (WireGuard)
3. Подключить телефон к компьютеру через USB
4. На телефоне: Включить USB модем
5. Проверить: curl https://api.ipify.org (должен быть 83.136.235.230)
## Как операторы определяют использование хотспота
### 1. Анализ IMEI и User-Agent
- Каждый телефон имеет уникальный код **IMEI** (Международный идентификатор мобильного оборудования)
- При раздаче интернета телефон сообщает сети, что работает как маршрутизатор/модем через HTTP-заголовки (User-Agent)
- Сеть видит, что один IMEI "притворяется" несколькими устройствами
### 2. Анализ трафика
- Большой объем данных с одного номера, используемый другими IP-адресами (устройствами)
- Оператор видит, что телефон получает интернет по сотовой сети, а отдает по Wi-Fi/USB множеству устройств с уникальными IP
### 4. Анализ TTL (Time To Live) - КРИТИЧЕСКИ ВАЖНО! ⚠️
**Это основной метод обнаружения tethering!**
- Каждый пакет имеет TTL (Time To Live) — счетчик переходов через роутеры
- Когда устройство подключается через хотспот, телефон действует как роутер
- Телефон **уменьшает TTL на 1** при маршрутизации пакетов
- Оператор видит: пакеты с TTL=63 (вместо 64) = признак tethering
- **Без модификации TTL оператор ВСЕГДА определит tethering, даже с VPN!**
### 3. Особенности тарифов
- Разные условия для модема/хотспота vs обычного использования
- Трафик идет не на браузер/приложение, а на создание локальной сети
---
## Методы обеспечения невидимости
### ⭐ Метод 1: VPN на телефоне (РЕКОМЕНДУЕТСЯ)
**Принцип:** Весь трафик с телефона идет через VPN-туннель, оператор видит только зашифрованное VPN-соединение.
**Преимущества:**
- ✅ Оператор не видит реальный трафик приложений
-Не видит User-Agent подключенных устройств
- ✅ Весь трафик выглядит как одно VPN-соединение
-Не требует root-доступа на большинстве устройств
- ✅ Работает на любом устройстве
---
## 📱 Подробная настройка VPN на телефоне
### Вариант 1: WireGuard (РЕКОМЕНДУЕТСЯ)
**Почему WireGuard:**
- ✅ Очень быстрый (85-95% от пропускной способности)
- ✅ Простая настройка
- ✅ Полное туннелирование из коробки
- ✅ Низкое потребление батареи
- ✅ Современная криптография
#### Настройка на Android:
1. **Установите приложение WireGuard:**
- Google Play: [WireGuard](https://play.google.com/store/apps/details?id=com.wireguard.android)
- Или F-Droid: [WireGuard](https://f-droid.org/packages/com.wireguard.android/)
2. **Получите конфигурацию:**
**Способ 1: Скачать с сервера (если конфигурация уже создана):**
```bash
# Подключитесь к серверу
ssh hunab-prod
# Скопируйте конфигурацию с сервера
# Конфигурация находится в: /opt/app/vpn/wireguard/config/peer1/peer1.conf
scp hunab-prod:/opt/app/vpn/wireguard/config/peer1/peer1.conf ./wireguard-android.conf
# Или просмотрите содержимое и скопируйте вручную
ssh hunab-prod "cat /opt/app/vpn/wireguard/config/peer1/peer1.conf"
```
**Способ 2: Создать новую конфигурацию на сервере:**
```bash
# На сервере запустите скрипт развертывания (если еще не запущен)
ssh hunab-prod "cd /opt/app && bash scripts/deployment/deploy-vpn-wireguard.sh"
# После создания конфигурации скопируйте её
scp hunab-prod:/opt/app/vpn/wireguard/config/peer1/peer1.conf ./wireguard-android.conf
```
**Способ 3: Использовать шаблон:**
- Используйте файл-шаблон: [`wireguard-android.conf`](./wireguard-android.conf)
- Замените `YOUR_PRIVATE_KEY_HERE` и `YOUR_SERVER_PUBLIC_KEY_HERE` на реальные ключи с сервера
**Структура конфигурации:**
```
[Interface]
PrivateKey = <ваш_приватный_ключ_клиента>
Address = 10.13.13.2/24
DNS = 8.8.8.8, 1.1.1.1
[Peer]
PublicKey = <публичный_ключ_сервера>
Endpoint = 209.38.32.21:51820
AllowedIPs = 0.0.0.0/0
```
**Где найти ключи на сервере:**
```bash
# Подключитесь к серверу
ssh hunab-prod
# Просмотрите конфигурацию клиента
cat /opt/app/vpn/wireguard/config/peer1/peer1.conf
# Или просмотрите конфигурацию сервера для получения публичного ключа
docker exec hunab-vpn-wireguard wg show
```
3. **Передайте файл на Android:**
**Способ 1: Через USB (ADB):**
```bash
# Подключите телефон через USB
# Включите отладку по USB на телефоне
adb push wireguard-android.conf /sdcard/Download/
```
**Способ 2: Через облако (Google Drive, Dropbox и т.д.):**
- Загрузите файл `wireguard-android.conf` в облачное хранилище
- Откройте файл на телефоне через приложение облачного хранилища
- Выберите "Открыть с помощью" → WireGuard
**Способ 3: Через email или мессенджер:**
- Отправьте файл себе на email или в мессенджер
- Откройте файл на телефоне
- Выберите "Открыть с помощью" → WireGuard
**Способ 4: Через QR-код (удобно для быстрой настройки):**
```bash
# На компьютере создайте QR-код из конфигурации
# Установите qrencode (если еще не установлен)
brew install qrencode # macOS
# или
sudo apt install qrencode # Linux
# Создайте QR-код
qrencode -t PNG -o wireguard-qr.png < wireguard-android.conf
# Откройте изображение и отсканируйте QR-код в приложении WireGuard
```
**Способ 5: Вставить конфигурацию вручную:**
- Откройте файл `wireguard-android.conf` в текстовом редакторе
- Скопируйте всё содержимое
- В приложении WireGuard: **"+"** → **"Создать из файла или архива"** → **"Создать из буфера обмена"**
- Вставьте конфигурацию
4. **Импортируйте конфигурацию в WireGuard:**
- Откройте приложение WireGuard на Android
- Нажмите **"+"** (кнопка добавления)
- Выберите один из вариантов:
- **"Создать из файла или архива"** — выберите файл `.conf`
- **"Создать из QR-кода"** — отсканируйте QR-код
- **"Создать из буфера обмена"** — вставьте текст конфигурации
- Нажмите **"Создать туннель"**
- При необходимости дайте имя туннелю (например, "VPN Hotspot")
4. **Подключитесь:**
- Включите туннель (переключатель)
- Убедитесь, что статус показывает "Подключено"
5. **Проверьте подключение:**
- Откройте браузер на телефоне
- Перейдите на https://whatismyipaddress.com/
- Должен отображаться IP: **209.38.32.21**
6. **Включите хотспот:**
- **Настройки** → **Режим модема** → **Точка доступа Wi-Fi** (или USB/Bluetooth)
- **ВАЖНО:** VPN должен быть включен **ДО** активации хотспота
#### Настройка на iOS:
1. **Установите приложение WireGuard:**
- App Store: [WireGuard](https://apps.apple.com/app/wireguard/id1441195209)
2. **Импортируйте конфигурацию:**
- Откройте приложение WireGuard
- Нажмите **"+"** → **"Создать из файла или архива"**
- Выберите файл `.conf` или отсканируйте QR-код
- Нажмите **"Добавить туннель"**
3. **Подключитесь:**
- Включите туннель
- При первом подключении iOS запросит разрешение на VPN
4. **Проверьте и включите хотспот** (как в Android)
---
### Вариант 2: Shadowsocks (для обхода блокировок)
**Почему Shadowsocks:**
- ✅ Лучший для обхода строгих блокировок
- ✅ Сложнее обнаружить через DPI
- ✅ Эффективен против цензуры
**Параметры подключения (сервер 209.38.32.21):**
```
Server: 209.38.32.21
Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305
```
**URI для импорта:**
```
ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpiTmtTYnVNUVhnTVhtdUJMUFFDQTVjU1VFQDIwOS4zOC4zMi4yMTo4Mzg4
```
#### Настройка на Android:
1. **Установите приложение Shadowsocks:**
- Google Play: [Shadowsocks](https://play.google.com/store/apps/details?id=com.github.shadowsocks) (разработчик: Max Lv)
2. **Настройте подключение:**
- Откройте приложение
- Нажмите **"+"** → **"Manual Settings"**
- Введите параметры:
- **Server**: `209.38.32.21`
- **Remote Port**: `8388`
- **Password**: `bNkSbuMQXgMXmuBLPQCA5cSUE`
- **Method**: `chacha20-ietf-poly1305`
- Нажмите **"Подключиться"**
3. **Или импортируйте через URI:**
- Нажмите **"+"** → **"Scan QR code"** или **"Import from clipboard"**
- Вставьте URI выше
4. **Проверьте подключение и включите хотспот**
**Альтернативные клиенты для Android:**
- **ShadowsocksR** — больше функций
- **Outline** — очень простой
- **V2rayNG** — много протоколов
- **Clash for Android** — правила маршрутизации
#### Настройка на iOS:
1. **Установите приложение:**
- App Store: [Shadowrocket](https://apps.apple.com/app/shadowrocket/id932747118) (платное)
- Или [Outline](https://apps.apple.com/app/outline-app/id1356177741) (бесплатное)
2. **Настройте подключение** (аналогично Android)
---
### Вариант 3: OpenVPN
**Настройка:**
1. Установите приложение **OpenVPN Connect**
2. Импортируйте `.ovpn` конфигурационный файл
3. Подключитесь к серверу
---
## 🔍 Проверка работы VPN
### На телефоне:
1. **Проверьте IP адрес:**
- Откройте браузер: https://whatismyipaddress.com/
- Должен отображаться IP VPN-сервера (209.38.32.21)
2. **Проверьте статус VPN:**
- В приложении VPN должен быть статус "Connected"
- В настройках Android/iOS должен быть индикатор VPN
3. **Проверьте DNS:**
```bash
# Если доступен терминал на телефоне
nslookup google.com
# Должен показать DNS сервер VPN
```
### На подключенном устройстве (после включения хотспота):
1. **Проверьте IP адрес:**
```bash
curl https://api.ipify.org
# Должен показать IP VPN-сервера (209.38.32.21)
```
2. **Проверьте, что трафик идет через VPN:**
- Откройте https://dnsleaktest.com/
- Проверьте, что DNS серверы соответствуют VPN
---
## ⚠️ Важные моменты
1. **Порядок действий:**
- ✅ Сначала включите VPN
- ✅ Затем включите хотспот
- ❌ НЕ включайте хотспот до VPN
2. **Проверка утечек:**
- Используйте https://ipleak.net/ для проверки утечек DNS/IP
- Убедитесь, что весь трафик идет через VPN
3. **Автоподключение VPN:**
- Настройте автоподключение VPN при включении хотспота
- В WireGuard: **Настройки туннеля** → **Автоподключение**
4. **Батарея:**
- VPN потребляет дополнительную батарею
- WireGuard более экономичен, чем OpenVPN
---
## 📚 Дополнительная документация
- [Полное руководство по WireGuard](../vpn/WIREGUARD.md)
- [Полное руководство по Shadowsocks](../vpn/SHADOWSOCKS.md)
- [VPN клиенты для macOS](../vpn/MAC_CLIENTS.md)
- [Обзор VPN решений](../vpn/README.md)
---
**Результат:** Оператор видит только VPN-трафик, не может определить, что телефон раздает интернет другим устройствам.
---
### Метод 2: Модификация User-Agent на подключенных устройствах
**Что такое User-Agent?**
**User-Agent** — это HTTP-заголовок, который браузер или приложение отправляет на сервер при каждом запросе. Он содержит информацию об устройстве, операционной системе и браузере.
**Примеры User-Agent:**
- macOS Chrome: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36`
- Android Chrome: `Mozilla/5.0 (Linux; Android 13; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36`
- iPhone Safari: `Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1`
**Принцип:** Изменение HTTP-заголовков на устройствах, подключенных к хотспоту, чтобы они выглядели как мобильные приложения или обычное использование телефона.
**Почему это важно:**
- Оператор может анализировать User-Agent для определения типа устройства
- Desktop User-Agent на мобильном соединении может указывать на tethering
- Мобильный User-Agent выглядит более естественно
---
**Настройка на macOS:**
#### Вариант 1: Использование mitmproxy (рекомендуется)
**Установка:**
```bash
brew install mitmproxy
```
**Создание скрипта для модификации User-Agent:**
Создайте файл `~/.mitmproxy/user-agent-modifier.py`:
```python
from mitmproxy import http
# Мобильные User-Agent для маскировки
MOBILE_USER_AGENTS = [
"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1",
"Mozilla/5.0 (Linux; Android 13; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Mobile Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1"
]
import random
def request(flow: http.HTTPFlow) -> None:
# Заменяем User-Agent на мобильный
if flow.request.headers.get("User-Agent"):
flow.request.headers["User-Agent"] = random.choice(MOBILE_USER_AGENTS)
print(f"Modified User-Agent to: {flow.request.headers['User-Agent']}")
```
**Запуск mitmproxy:**
```bash
# Запустите mitmproxy с вашим скриптом
mitmproxy -s ~/.mitmproxy/user-agent-modifier.py
```
**Настройка прокси на macOS:**
1. **System Settings** → **Network** → выберите активное соединение
2. **Details...** → **Proxies**
3. Включите **HTTP Proxy**: `127.0.0.1:8080`
4. Включите **HTTPS Proxy**: `127.0.0.1:8080`
5. Нажмите **OK**
**Или через командную строку:**
```bash
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
networksetup -setwebproxy "$INTERFACE" 127.0.0.1 8080
networksetup -setsecurewebproxy "$INTERFACE" 127.0.0.1 8080
networksetup -setwebproxystate "$INTERFACE" on
networksetup -setsecurewebproxystate "$INTERFACE" on
```
**Установка сертификата mitmproxy (для HTTPS):**
1. Откройте браузер: http://mitm.it
2. Скачайте сертификат для macOS
3. Установите сертификат: **Keychain Access** → импортируйте `.pem` файл
4. Дважды кликните на сертификат → **Trust** → **Always Trust**
#### Вариант 2: Использование Charles Proxy (GUI)
**Установка:**
```bash
brew install --cask charles
```
**Настройка:**
1. Откройте Charles Proxy
2. **Proxy** → **Proxy Settings** → порт `8888`
3. **Tools** → **Rewrite** → **Enable Rewrite**
4. Добавьте правило:
- **Name**: Modify User-Agent
- **Type**: Request Headers
- **Match**: `User-Agent`
- **Replace**: `Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1`
#### Вариант 3: Браузерные расширения (только для браузера)
**Chrome/Edge:**
- Установите расширение "User-Agent Switcher and Manager"
- Выберите мобильный User-Agent
**Firefox:**
- Установите расширение "User-Agent Switcher"
- Выберите мобильный User-Agent
**Ограничение:** Работает только для браузера, не для всех приложений.
---
**Настройка на Android (требует root):**
#### Вариант 1: Xposed модули
1. Установите Xposed Framework
2. Установите модуль "XPrivacyLua" или "User Agent Switcher"
3. Настройте мобильный User-Agent для приложений
#### Вариант 2: Приложения
- **User Agent Switcher** (требует root)
- **XPrivacyLua** (требует Xposed)
#### Вариант 3: Настройка в браузере
- Chrome: `chrome://flags` → поиск "User-Agent"
- Firefox: Установите расширение "User-Agent Switcher"
---
**Настройка на iOS:**
#### Вариант 1: Safari (без jailbreak)
1. Установите расширение "User-Agent Switcher" (если доступно)
2. Или используйте профили конфигурации (ограниченная функциональность)
#### Вариант 2: Jailbreak решения
- **Flex 3** — патчи для изменения User-Agent
- **XCon** — обход проверок
**Ограничение:** Без jailbreak возможности очень ограничены.
---
**Проверка модификации User-Agent:**
1. Откройте в браузере: https://www.whatismybrowser.com/
2. Проверьте отображаемый User-Agent
3. Убедитесь, что он соответствует мобильному устройству
**Или через командную строку:**
```bash
# С прокси
curl -x http://127.0.0.1:8080 -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)" https://httpbin.org/headers
# Без прокси (для сравнения)
curl https://httpbin.org/headers
```
---
**Ограничения:**
- ⚠️ Не все приложения используют системный User-Agent
- ⚠️ Некоторые приложения имеют собственные заголовки (нельзя изменить)
- ⚠️ Оператор может анализировать другие параметры (TTL, размер пакетов)
- ⚠️ HTTPS трафик требует установки сертификата (mitmproxy)
- ⚠️ Некоторые приложения проверяют сертификаты (certificate pinning)
**Рекомендация:** Используйте в сочетании с VPN для максимальной эффективности.
---
### Метод 3: Использование USB/Bluetooth Tethering вместо Wi-Fi
**Что такое Tethering?**
**Tethering (привязка)** — это технология, позволяющая использовать интернет-соединение одного устройства (телефона) для подключения других устройств (компьютера, планшета) к интернету.
**Типы tethering:**
1. **Wi-Fi Hotspot (Точка доступа Wi-Fi)**
- Телефон создает Wi-Fi сеть
- Другие устройства подключаются как к обычной Wi-Fi сети
- **Наиболее заметно для оператора** (создает отдельную сеть)
2. **USB Tethering (USB модем)**
- Телефон подключается к компьютеру через USB кабель
- Компьютер использует интернет телефона через USB
- **Менее заметно** (выглядит как прямое подключение)
3. **Bluetooth Tethering (Bluetooth модем)**
- Телефон подключается к устройству через Bluetooth
- Использует другой протокол идентификации
- **Менее заметно** (другой протокол связи)
**Принцип:** USB и Bluetooth tethering могут быть менее заметны, чем Wi-Fi hotspot, так как не создают отдельную Wi-Fi сеть.
**Преимущества:**
- ✅ Wi-Fi hotspot создает отдельную сеть (более заметно для оператора)
- ✅ USB tethering выглядит как прямое подключение (менее подозрительно)
- ✅ Bluetooth использует другой протокол идентификации (PAN - Personal Area Network)
- ✅ Меньше энергопотребление (особенно USB)
- ✅ Более стабильное соединение (USB)
- ✅ Не требует пароля Wi-Fi
**Настройка USB Tethering:**
**Android:**
1. Подключите телефон к компьютеру через USB кабель
2. На телефоне: **Настройки** → **Режим модема** → **USB модем** (включите)
3. На компьютере (macOS): Соединение определится автоматически
4. На компьютере (Windows): Установите драйверы, если потребуется
5. На компьютере (Linux): Обычно работает из коробки
**Проверка подключения (macOS):**
```bash
# Проверить активное соединение
networksetup -listallnetworkservices | grep -i usb
# Проверить IP адрес
ifconfig | grep -A 5 "en.*:" | grep "inet "
```
**iOS:**
1. Подключите iPhone к компьютеру через USB
2. На iPhone: **Настройки** → **Режим модема** → **USB модем** (включите)
3. На macOS: Соединение определится автоматически
4. На Windows: Установите iTunes для драйверов
**Настройка Bluetooth Tethering:**
**Android:**
1. Включите Bluetooth на телефоне и компьютере
2. Сопрягите устройства:
- На телефоне: **Настройки** → **Bluetooth** → найдите компьютер → **Сопряжение**
- На компьютере: Примите запрос на сопряжение
3. На телефоне: **Настройки** → **Режим модема** → **Bluetooth модем** (включите)
4. На компьютере (macOS):
- **System Settings** → **Network** → **Bluetooth PAN**
- Выберите телефон и подключитесь
**iOS:**
1. Включите Bluetooth на iPhone и компьютере
2. Сопрягите устройства
3. На iPhone: **Настройки** → **Режим модема** → **Bluetooth модем** (включите)
4. На macOS: Подключитесь через Bluetooth в настройках сети
**Сравнение методов:**
| Метод | Скорость | Стабильность | Энергопотребление | Заметность |
|-------|----------|--------------|-------------------|------------|
| Wi-Fi Hotspot | Высокая | Средняя | Высокое | ⚠️ Высокая |
| USB Tethering | Очень высокая | Очень высокая | Низкое | ✅ Низкая |
| Bluetooth Tethering | Низкая | Средняя | Среднее | ✅ Низкая |
**Ограничения:**
- ⚠️ Оператор все еще может анализировать трафик (рекомендуется VPN)
- ⚠️ Bluetooth tethering медленнее Wi-Fi и USB
- ⚠️ USB tethering требует кабель (неудобно для мобильности)
- ⚠️ Не все операторы разрешают tethering на всех тарифах
**Рекомендация:** Используйте USB tethering в сочетании с VPN для максимальной невидимости.
---
### Метод 4: Ограничение и распределение трафика
**Принцип:** Ограничение скорости и объема трафика, чтобы он выглядел как обычное использование телефона.
**Стратегии:**
1. **Ограничение скорости:**
```bash
# На Linux/macOS используйте tc (traffic control)
sudo tc qdisc add dev en0 root handle 1: htb default 30
sudo tc class add dev en0 parent 1: classid 1:1 htb rate 5mbit
```
2. **Ограничение одновременных подключений:**
- Подключайте только одно устройство за раз
- Избегайте одновременного использования нескольких устройств
3. **Имитация поведения обычного пользователя:**
- Не используйте хотспот постоянно
- Чередуйте использование интернета на телефоне и через хотспот
- Избегайте больших объемов трафика в короткое время
**Ограничения:**
- ⚠️ Не гарантирует полную невидимость
- ⚠️ Может быть неудобно в использовании
---
### Метод 5: Использование специализированных приложений
**Android (требует root):**
1. **Tethering Manager:**
- Позволяет скрывать факт раздачи интернета
- Модифицирует системные параметры
2. **Xposed модули:**
- XTether (скрывает tethering)
- Tethering Manager модули
**iOS (требует jailbreak):**
1. **TetherMe:**
- Обходит ограничения оператора
- Работает через Cydia
**Ограничения:**
- ⚠️ Требует root/jailbreak (риск безопасности)
- ⚠️ Может нарушать гарантию устройства
- ⚠️ Не все приложения работают на новых версиях ОС
---
### ⭐⭐ Метод 6: Модификация TTL (КРИТИЧЕСКИ ВАЖНО!)
**Почему это важно:**
- Оператор определяет tethering по TTL пакетов
- Без модификации TTL оператор **ВСЕГДА** определит tethering
- Это основной метод обнаружения, который обходит VPN!
**Принцип:**
- Установить TTL = 65 на подключенном устройстве
- После прохождения через телефон (TTL-1) пакет придет с TTL=64
- Оператор видит TTL=64 = как будто пакет идет напрямую с телефона
**Настройка на macOS (на подключенном компьютере):**
```bash
# Временная настройка
sudo sysctl -w net.inet.ip.ttl=65
# Постоянная настройка
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf
```
**Настройка на Windows:**
```cmd
netsh int ipv4 set global defaultcurhoplimit=65
```
**Настройка на Linux:**
```bash
echo 65 | sudo tee /proc/sys/net/ipv4/ip_default_ttl
echo "net.ipv4.ip_default_ttl = 65" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```
**Проверка:**
```bash
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать ttl=64 (65-1 после прохождения через телефон)
```
**📖 Полная инструкция:** [`GUARANTEED_TETHERING_HIDE.md`](./GUARANTEED_TETHERING_HIDE.md)
---
### Метод 7: Комбинированный подход (ГАРАНТИРОВАННО ЭФФЕКТИВНЫЙ)
**Рекомендуемая комбинация (в порядке важности):**
1. **Модификация TTL** (ОБЯЗАТЕЛЬНО!) ⭐⭐⭐
- TTL = 65 на подключенном устройстве
- Без этого оператор ВСЕГДА определит tethering
2. **VPN на телефоне** (обязательно) ⭐⭐
- WireGuard или OpenVPN
- Всегда включен при использовании хотспота
3. **USB Tethering** (вместо Wi-Fi) ⭐
- Менее заметно, чем Wi-Fi hotspot
4. **Ограничение трафика** (рекомендуется)
- Разумное использование объема данных
- Избегание пиковых нагрузок
5. **Модификация User-Agent** (опционально)
- На подключенных устройствах
**Пример настройки (ПРАВИЛЬНЫЙ ПОРЯДОК):**
```bash
# 1. На компьютере: Установить TTL = 65 (ОБЯЗАТЕЛЬНО ПЕРВЫМ!)
sudo sysctl -w net.inet.ip.ttl=65 # macOS
# или
netsh int ipv4 set global defaultcurhoplimit=65 # Windows
# 2. На телефоне: Включить VPN (WireGuard)
# 3. Подключить телефон к компьютеру через USB
# 4. На телефоне: Включить USB модем
# 5. На компьютере: Проверить IP через VPN
curl https://api.ipify.org
# Должен показать: 83.136.235.230
# 6. Проверить TTL
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать ttl=64 (правильно!)
```
---
## Проверка эффективности
### Тест 1: Проверка видимости трафика
1. Включите хотспот с VPN
2. Откройте сайт на подключенном устройстве
3. Проверьте, видит ли оператор реальный трафик:
```bash
# Используйте Wireshark или tcpdump на телефоне (требует root)
# Или проверьте логи оператора (если доступны)
```
### Тест 2: Проверка User-Agent
1. Откройте https://www.whatismybrowser.com/ на подключенном устройстве
2. Проверьте, какой User-Agent виден
3. Убедитесь, что он не выдает факт использования хотспота
### Тест 3: Проверка IP-адресов
1. На телефоне: Проверьте IP
```bash
curl https://api.ipify.org
```
2. На подключенном устройстве: Проверьте IP
```bash
curl https://api.ipify.org
```
3. **Ожидаемый результат:** Оба устройства должны показывать IP VPN-сервера
---
## Дополнительные рекомендации
### Безопасность
- ✅ Используйте надежные VPN-серверы
- ✅ Включайте VPN **до** активации хотспота
- ✅ Используйте шифрование (WireGuard, OpenVPN с AES-256)
- ✅ Регулярно обновляйте VPN клиенты
### Оптимизация
- ✅ Используйте VPN серверы с низкой задержкой
- ✅ Выбирайте серверы в той же стране (меньше подозрений)
- ✅ Избегайте VPN серверов, известных оператору
### Избегание обнаружения
- ❌ Не используйте хотспот постоянно (чередуйте с обычным использованием)
- ❌ Не передавайте большие объемы данных (торренты, стриминг)
- ❌ Не подключайте много устройств одновременно
- ❌ Не используйте хотспот в пиковые часы
---
## Юридические предупреждения
⚠️ **Важно:**
- Использование методов обхода ограничений оператора может нарушать условия использования тарифа
- В некоторых юрисдикциях это может быть незаконно
- Используйте только на своих устройствах и для личных целей
- Не нарушайте законы вашей страны
✅ **Рекомендации:**
- Изучите условия вашего тарифа
- Используйте легальные методы (VPN разрешены в большинстве стран)
- Рассмотрите тарифы с разрешенным tethering
---
## Решение проблем
### Проблема: Оператор все еще определяет хотспот
**Решения:**
1. Убедитесь, что VPN включен **до** активации хотспота
2. Проверьте, что весь трафик идет через VPN (нет утечек)
3. Используйте USB tethering вместо Wi-Fi
4. Попробуйте другой VPN сервер/провайдер
### Проблема: Медленная скорость через VPN
**Решения:**
1. Выберите VPN сервер ближе к вашему местоположению
2. Используйте WireGuard (быстрее OpenVPN)
3. Проверьте скорость без VPN (возможно, проблема у оператора)
4. Используйте выделенный VPN сервер (не shared)
### Проблема: VPN не работает на телефоне
**Решения:**
1. Проверьте настройки VPN клиента
2. Убедитесь, что сервер доступен
3. Проверьте файрвол на телефоне
4. Перезагрузите телефон
5. Попробуйте другой VPN протокол
---
## Связанная документация
- [VPN настройки](../vpn/README.md)
- [WireGuard конфигурация](../vpn/WIREGUARD.md)
- [Shadowsocks настройка](../vpn/SHADOWSOCKS.md)
- [MAC spoofing](../security/MAC_SPOOFING_GUIDE.md)
---
## Заключение
**ГАРАНТИРОВАННО эффективный метод:**
1. ⭐⭐⭐ **Модификация TTL = 65** (на подключенном устройстве) — ОБЯЗАТЕЛЬНО!
2. ⭐⭐ **VPN на телефоне** (WireGuard)
3. ⭐ **USB Tethering** (вместо Wi-Fi)
4. Разумное использование трафика
**⚠️ КРИТИЧЕСКИ ВАЖНО:** Без модификации TTL оператор ВСЕГДА определит tethering, даже с VPN! TTL модификация — это основа гарантированного скрытия.
**📖 Полная инструкция:** [`GUARANTEED_TETHERING_HIDE.md`](./GUARANTEED_TETHERING_HIDE.md)
Этот комбинированный подход обеспечивает максимальную невидимость для оператора при сохранении удобства использования.

View File

@@ -0,0 +1,143 @@
# 🚀 Быстрое решение: VPN на Mac вместо VPN на телефоне
## ⚠️ Проблема
Android **НЕ маршрутизирует** трафик tethering через VPN по умолчанию!
Когда VPN включен на телефоне, трафик с компьютера идет **напрямую**, минуя VPN.
## ✅ Решение: VPN на Mac
**Вместо VPN на телефоне → используйте VPN на Mac!**
---
## 📋 Пошаговая инструкция
### Шаг 1: Установите WireGuard на Mac
```bash
brew install wireguard-tools
```
### Шаг 2: Скопируйте конфигурацию
```bash
cd /Users/eternal/code/local_machine
sudo mkdir -p /etc/wireguard
sudo cp docs/hotspot/wg-ru.conf /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
```
### Шаг 3: На телефоне
1. **Отключите VPN на телефоне** (WireGuard)
2. Включите **USB модем** (Настройки → Режим модема → USB модем)
3. Или включите **Wi-Fi hotspot**
### Шаг 4: На Mac - запустите VPN
```bash
sudo wg-quick up wg0
```
### Шаг 5: Проверка
```bash
# IP должен быть VPN сервера
curl https://api.ipify.org
# Должен показать: 83.136.235.230
# Проверка TTL
ping -c 1 8.8.8.8 | grep "ttl="
# Должно показать: ttl=64 (правильно!)
```
---
## 🎯 Правильный порядок действий
```
1. ✅ TTL = 65 (уже сделано на Mac)
2. На телефоне: ОТКЛЮЧИТЬ VPN, включить USB модем
3. На Mac: Запустить VPN (sudo wg-quick up wg0)
4. Проверить: curl https://api.ipify.org (должен быть 83.136.235.230)
```
---
## 🔧 Управление VPN на Mac
**Запуск:**
```bash
sudo wg-quick up wg0
```
**Остановка:**
```bash
sudo wg-quick down wg0
```
**Статус:**
```bash
sudo wg show
```
**Автозапуск (опционально):**
```bash
# Создать LaunchDaemon для автозапуска
sudo tee /Library/LaunchDaemons/com.wireguard.wg0.plist << EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.wireguard.wg0</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/wg-quick</string>
<string>up</string>
<string>wg0</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
sudo launchctl load /Library/LaunchDaemons/com.wireguard.wg0.plist
```
---
## ✅ Результат
После настройки:
- ✅ Весь трафик с Mac идет через VPN
- ✅ TTL модифицирован (оператор не видит tethering)
- ✅ IP = 83.136.235.230 (VPN сервер)
- ✅ Оператор видит только VPN трафик
---
## 🐛 Решение проблем
### VPN не запускается
```bash
# Проверьте конфигурацию
sudo cat /etc/wireguard/wg0.conf
# Проверьте логи
sudo wg-quick up wg0
```
### IP все еще реальный
1. Проверьте, что VPN запущен: `sudo wg show`
2. Проверьте маршруты: `netstat -rn | grep default`
3. Перезапустите VPN: `sudo wg-quick down wg0 && sudo wg-quick up wg0`
---
**Выполните команды выше и проверьте IP!**

View File

@@ -0,0 +1,237 @@
# 🚀 Ограничения скорости и USB Tethering
## 1. Почему ограничена скорость интернета через хотспот?
### Причины ограничения скорости:
#### A. Ограничения оператора (даже с VPN)
**Оператор может ограничивать скорость на уровне:**
- **Тарифа** — некоторые тарифы имеют ограничения на tethering
- **IMEI устройства** — оператор видит, что устройство работает как модем
- **Паттернов трафика** — большие объемы данных могут триггерить ограничения
- **DPI (Deep Packet Inspection)** — анализ трафика даже через VPN
**Важно:** VPN скрывает содержимое трафика, но оператор все еще видит:
- Объем трафика
- Время использования
- Паттерны подключения
- IMEI устройства
#### B. Технические ограничения
1. **Wi-Fi Hotspot:**
- Ограничения Wi-Fi модуля телефона
- Двойное шифрование (Wi-Fi + VPN)
- Нагрузка на процессор телефона
2. **VPN overhead:**
- Шифрование/дешифрование трафика
- Задержка через VPN сервер
- Расстояние до VPN сервера
3. **Сотовая сеть:**
- Ограничения оператора на уровне базовой станции
- Приоритизация трафика (обычный интернет > tethering)
#### C. Ограничения самого хотспота
- **Android/iOS** могут ограничивать скорость хотспота программно
- **Настройки оператора** могут ограничивать tethering на уровне прошивки
---
## 2. Как использовать USB Tethering вместо Wi-Fi?
### Преимущества USB Tethering:
-**Быстрее** — прямое USB соединение (до 480 Мбит/с USB 2.0, до 5 Гбит/с USB 3.0)
-**Стабильнее** — нет помех Wi-Fi
-**Менее заметно** для оператора
-**Меньше энергопотребление** — телефон заряжается через USB
-**Нет ограничений Wi-Fi модуля**
---
## 📱 Пошаговая инструкция: USB Tethering
### Android → macOS/Windows/Linux
#### Шаг 1: Подготовка
1. **Подключите телефон к компьютеру через USB кабель**
- Используйте качественный кабель (желательно USB 3.0)
- Убедитесь, что кабель поддерживает передачу данных (не только зарядку)
2. **На телефоне:**
- Разблокируйте телефон
- При появлении уведомления "USB подключение" выберите **"Передача файлов"** или **"MTP"**
- Или: **Настройки****Подключения****USB****Передача файлов**
#### Шаг 2: Включение USB модема
**На Android телефоне:**
1. Откройте **Настройки**
2. Перейдите в **Сеть и интернет****Режим модема и точка доступа**
- Или: **Настройки****Режим модема** (зависит от версии Android)
3. Включите **USB модем** (переключатель)
4. Телефон покажет уведомление "USB модем активен"
**Альтернативный путь:**
- Откройте **Настройки**
- Поиск: "USB модем" или "USB tethering"
- Включите переключатель
#### Шаг 3: Настройка на компьютере
**macOS:**
- Соединение определится автоматически
- Проверка: **System Settings****Network** → должно появиться новое соединение (например, "iPhone USB" или "Android USB")
**Windows:**
- Windows автоматически установит драйверы (может потребоваться интернет)
- Если драйверы не установились:
1. Скачайте **USB драйверы для Android** с сайта производителя
2. Или установите **Universal ADB Driver**
3. Или используйте **Google USB Driver** из Android SDK
**Linux:**
- Обычно работает из коробки
- Если не работает: `sudo apt install usb-modeswitch`
#### Шаг 4: Проверка подключения
**macOS:**
```bash
# Проверить активное соединение
networksetup -listallnetworkservices | grep -i usb
# Проверить IP адрес
ifconfig | grep -A 5 "en.*:" | grep "inet "
# Или проще:
ifconfig | grep "inet " | grep -v 127.0.0.1
```
**Windows:**
```cmd
ipconfig
# Найдите адаптер с именем типа "Ethernet adapter Local Area Connection" или "USB Ethernet"
```
**Linux:**
```bash
ip addr show
# Или
ifconfig
```
#### Шаг 5: Включение VPN на телефоне
**ВАЖНО:** Включите VPN **ДО** активации USB модема!
1. Откройте приложение **WireGuard** на телефоне
2. Подключитесь к VPN (туннель должен быть активен)
3. Проверьте статус: должен быть "Подключено"
4. **Только после этого** включите USB модем
#### Шаг 6: Проверка работы VPN
На подключенном компьютере:
```bash
# Проверка IP адреса (должен быть IP VPN сервера)
curl https://api.ipify.org
# Должен показать: 83.136.235.230
# Проверка DNS утечек
curl https://dnsleaktest.com/
```
---
## 🔧 Решение проблем с USB Tethering
### Проблема: Компьютер не видит USB модем
**Решения:**
1. Попробуйте другой USB порт
2. Попробуйте другой USB кабель
3. На Android: **Настройки****Для разработчиков** → включите **Отладка по USB**
4. Перезагрузите телефон и компьютер
### Проблема: Низкая скорость через USB
**Решения:**
1. Используйте USB 3.0 порт и кабель (синий разъем)
2. Проверьте, что кабель поддерживает передачу данных
3. Отключите другие USB устройства
4. Проверьте настройки энергосбережения USB портов
### Проблема: VPN не работает через USB модем
**Решения:**
1. Убедитесь, что VPN включен **ДО** активации USB модема
2. Перезапустите VPN на телефоне
3. Проверьте настройки VPN: **AllowedIPs = 0.0.0.0/0** (весь трафик)
4. Перезагрузите телефон
---
## 📊 Сравнение методов подключения
| Метод | Скорость | Стабильность | Заметность | Энергопотребление |
|-------|----------|-------------|------------|-------------------|
| **Wi-Fi Hotspot** | Средняя | Средняя | ⚠️ Высокая | Высокое |
| **USB Tethering** | ✅ Высокая | ✅ Высокая | ✅ Низкая | Низкое |
| **Bluetooth** | Низкая | Средняя | ✅ Низкая | Среднее |
---
## ⚡ Оптимизация скорости
### 1. Используйте USB 3.0
- USB 3.0 кабель (обычно синий разъем)
- USB 3.0 порт на компьютере
- Скорость до 5 Гбит/с
### 2. Выберите ближайший VPN сервер
- Меньше задержка = выше скорость
- Российский сервер (83.136.235.230) для России
### 3. Используйте WireGuard
- Быстрее OpenVPN
- Меньше overhead
### 4. Закройте ненужные приложения на телефоне
- Освободите ресурсы процессора
- Закройте фоновые приложения
---
## 🎯 Рекомендуемая настройка
**Для максимальной скорости и невидимости:**
1.**USB Tethering** (вместо Wi-Fi)
2.**VPN на телефоне** (WireGuard)
3.**USB 3.0 кабель**
4.**VPN включен ДО активации модема**
**Порядок действий:**
```
1. Подключите телефон к компьютеру через USB
2. Включите VPN на телефоне (WireGuard)
3. Включите USB модем на телефоне
4. Проверьте IP на компьютере (должен быть IP VPN)
```
---
## 📝 Примечания
- USB Tethering работает только когда телефон подключен к компьютеру
- Для мобильности используйте Wi-Fi Hotspot, но с VPN
- Некоторые операторы могут ограничивать скорость независимо от метода подключения
- VPN добавляет небольшую задержку, но скрывает факт использования хотспота

View File

@@ -0,0 +1,163 @@
# Гайд по скриптам 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 модем** (или WiFi точку доступа).
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.

View File

@@ -0,0 +1,47 @@
#!/bin/bash
# Скрипт для установки TTL = 65 на macOS
# Это критически важно для скрытия tethering от оператора!
echo "=== Установка TTL = 65 для скрытия tethering ==="
echo ""
# Проверка текущего TTL
CURRENT_TTL=$(sysctl -n net.inet.ip.ttl 2>/dev/null || echo "unknown")
echo "Текущий TTL: $CURRENT_TTL"
# Установка TTL = 65
echo ""
echo "Установка TTL = 65..."
sudo sysctl -w net.inet.ip.ttl=65
# Проверка
NEW_TTL=$(sysctl -n net.inet.ip.ttl)
if [ "$NEW_TTL" = "65" ]; then
echo "✅ TTL успешно установлен: $NEW_TTL"
else
echo "❌ Ошибка: TTL = $NEW_TTL (ожидалось 65)"
exit 1
fi
# Добавление в автозагрузку
echo ""
echo "Добавление в автозагрузку..."
if ! grep -q "net.inet.ip.ttl=65" /etc/sysctl.conf 2>/dev/null; then
echo "net.inet.ip.ttl=65" | sudo tee -a /etc/sysctl.conf > /dev/null
echo "✅ TTL добавлен в /etc/sysctl.conf (будет применяться после перезагрузки)"
else
echo " TTL уже добавлен в /etc/sysctl.conf"
fi
echo ""
echo "=== Проверка ==="
echo "Текущий TTL: $(sysctl -n net.inet.ip.ttl)"
echo ""
echo "✅ Готово! Теперь оператор не сможет определить tethering по TTL."
echo ""
echo "Следующие шаги:"
echo "1. Включите VPN на телефоне (WireGuard)"
echo "2. Подключите телефон к компьютеру через USB"
echo "3. Включите USB модем на телефоне"
echo "4. Проверьте IP: curl https://api.ipify.org"

View File

@@ -0,0 +1,65 @@
#!/bin/bash
# Скрипт для установки и настройки WireGuard на macOS
# Используется для маршрутизации tethering трафика через VPN
set -e
echo "=== Установка WireGuard на macOS ==="
echo ""
# Проверка установки
if ! command -v wg-quick &> /dev/null; then
echo "1. Установка WireGuard..."
brew install wireguard-tools
else
echo "✅ WireGuard уже установлен"
fi
# Создание директории для конфигураций
echo ""
echo "2. Создание директории для конфигураций..."
sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard
# Копирование конфигурации
echo ""
echo "3. Копирование конфигурации..."
CONFIG_FILE="docs/hotspot/wg-ru.conf"
if [ -f "$CONFIG_FILE" ]; then
sudo cp "$CONFIG_FILE" /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf
echo "✅ Конфигурация скопирована: /etc/wireguard/wg0.conf"
else
echo "❌ Файл конфигурации не найден: $CONFIG_FILE"
exit 1
fi
# Запуск VPN
echo ""
echo "4. Запуск WireGuard VPN..."
sudo wg-quick up wg0
# Проверка
echo ""
echo "5. Проверка подключения..."
sleep 2
VPN_IP=$(curl -s --max-time 5 https://api.ipify.org)
if [ "$VPN_IP" = "83.136.235.230" ]; then
echo "✅ VPN работает! IP: $VPN_IP"
else
echo "⚠️ IP: $VPN_IP (ожидалось: 83.136.235.230)"
echo "Проверьте подключение к серверу"
fi
echo ""
echo "=== Готово! ==="
echo ""
echo "Управление VPN:"
echo " Запуск: sudo wg-quick up wg0"
echo " Остановка: sudo wg-quick down wg0"
echo " Статус: sudo wg show"
echo ""
echo "Проверка IP:"
echo " curl https://api.ipify.org"

View File

@@ -0,0 +1,7 @@
#!/bin/bash
# Остановка WireGuard VPN
echo "🛑 Остановка WireGuard VPN..."
sudo wg-quick down wg0
echo "✅ VPN остановлен"

27
docs/hotspot/scripts/vpn-up.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
# Быстрый запуск WireGuard VPN на Mac для tethering
set -e
echo "🚀 Запуск WireGuard VPN..."
sudo wg-quick up wg0
sleep 2
echo ""
echo "✅ VPN запущен!"
echo ""
echo "Проверка IP:"
IP=$(curl -s --max-time 5 https://api.ipify.org)
echo "IP: $IP"
if [ "$IP" = "83.136.235.230" ]; then
echo "✅ VPN работает! IP корректный"
else
echo "⚠️ IP не соответствует VPN серверу"
fi
echo ""
echo "Статус VPN:"
sudo wg show