Initial commit: local_machine docs and scripts
This commit is contained in:
192
docs/hotspot/ANDROID_VPN_TETHERING_ROUTING.md
Normal file
192
docs/hotspot/ANDROID_VPN_TETHERING_ROUTING.md
Normal 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.
|
||||
537
docs/hotspot/GUARANTEED_TETHERING_HIDE.md
Normal file
537
docs/hotspot/GUARANTEED_TETHERING_HIDE.md
Normal 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, не на телефоне)
|
||||
877
docs/hotspot/HOTSPOT_OPTIMIZATION.md
Normal file
877
docs/hotspot/HOTSPOT_OPTIMIZATION.md
Normal 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)
|
||||
|
||||
Этот комбинированный подход обеспечивает максимальную невидимость для оператора при сохранении удобства использования.
|
||||
143
docs/hotspot/QUICK_FIX_VPN_ROUTING.md
Normal file
143
docs/hotspot/QUICK_FIX_VPN_ROUTING.md
Normal 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!**
|
||||
237
docs/hotspot/SPEED_LIMITATIONS_AND_USB_TETHERING.md
Normal file
237
docs/hotspot/SPEED_LIMITATIONS_AND_USB_TETHERING.md
Normal 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 добавляет небольшую задержку, но скрывает факт использования хотспота
|
||||
163
docs/hotspot/scripts/README.md
Normal file
163
docs/hotspot/scripts/README.md
Normal 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 модем** (или 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.
|
||||
47
docs/hotspot/scripts/set-ttl-macos.sh
Executable file
47
docs/hotspot/scripts/set-ttl-macos.sh
Executable 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"
|
||||
65
docs/hotspot/scripts/setup-wireguard-mac.sh
Executable file
65
docs/hotspot/scripts/setup-wireguard-mac.sh
Executable 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"
|
||||
7
docs/hotspot/scripts/vpn-down.sh
Executable file
7
docs/hotspot/scripts/vpn-down.sh
Executable 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
27
docs/hotspot/scripts/vpn-up.sh
Executable 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
|
||||
Reference in New Issue
Block a user