Initial commit: local_machine docs and scripts
This commit is contained in:
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