Files
local_machine/docs/connectivity/vpn/SHADOWSOCKS.md
2026-03-14 20:03:57 +03:00

9.8 KiB
Raw Blame History

🚀 Shadowsocks VPN - Полное руководство

📋 Обзор

Shadowsocks VPN - лучший выбор для обхода строгих блокировок. Маскирует трафик под обычный веб-трафик, что делает его очень эффективным против DPI (Deep Packet Inspection) и интернет-цензуры.

Преимущества:

  • 90-95% от пропускной способности (очень быстрый)
  • Сложнее обнаружить через DPI
  • Эффективен против цензуры (разработан для Китая)
  • TCP протокол (проходит через корпоративные прокси)

Параметры подключения:

Server: 209.38.32.21
Port: 8388
Password: bNkSbuMQXgMXmuBLPQCA5cSUE
Method: chacha20-ietf-poly1305

URI для импорта:

ss://Y2hhY2hhMjAtaWV0Zi1wb2x5MTMwNTpiTmtTYnVNUVhnTVhtdUJMUFFDQTVjU1VFQDIwOS4zOC4zMi4yMTo4Mzg4

🔧 Развертывание сервера

Автоматическое развертывание

bash scripts/deployment/deploy-vpn-shadowsocks.sh

Скрипт автоматически:

  1. Проверит подключение к серверу
  2. Сгенерирует безопасный пароль
  3. Создаст необходимые директории
  4. Настроит Docker контейнер
  5. Обновит firewall правила
  6. Запустит VPN сервер
  7. Создаст клиентскую конфигурацию

Статус сервера

Контейнер: hunab-vpn-shadowsocks
Статус: Запущен и работает
Порт: 8388 (TCP/UDP)
Firewall: Настроен

Проверка статуса:

ssh hunab-prod "docker ps | grep shadowsocks"

📱 Настройка клиентов

Android

  1. Установите приложение Shadowsocks из Google Play (разработчик: Max Lv)
  2. Нажмите "+""Manual Settings"
  3. Введите параметры:
    Server: 209.38.32.21
    Remote Port: 8388
    Password: bNkSbuMQXgMXmuBLPQCA5cSUE
    Method: chacha20-ietf-poly1305
    
  4. Нажмите "Подключиться"

Альтернативные клиенты для Android:

  • ShadowsocksR - больше функций
  • Outline - очень простой
  • V2rayNG - много протоколов
  • Clash for Android - правила маршрутизации

macOS

Вариант 1: ShadowsocksX-NG (GUI)

brew install --cask shadowsocksx-ng
  1. Откройте приложение → Server Preferences"+"
  2. Введите параметры подключения
  3. Выберите сервер в меню и подключитесь
  4. Включите "System Proxy"

Вариант 2: shadowsocks-libev (CLI) - Рекомендуется

brew install shadowsocks-libev

Настройка:

mkdir -p ~/.shadowsocks
cat > ~/.shadowsocks/config.json <<EOF
{
    "server": "209.38.32.21",
    "server_port": 8388,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "bNkSbuMQXgMXmuBLPQCA5cSUE",
    "method": "chacha20-ietf-poly1305",
    "timeout": 300,
    "fast_open": true
}
EOF

Автозапуск:

cat > ~/Library/LaunchAgents/com.shadowsocks.local.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.shadowsocks.local</string>
    <key>ProgramArguments</key>
    <array>
        <string>/opt/homebrew/bin/ss-local</string>
        <string>-c</string>
        <string>${HOME}/.shadowsocks/config.json</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/tmp/shadowsocks.log</string>
    <key>StandardErrorPath</key>
    <string>/tmp/shadowsocks.error.log</string>
</dict>
</plist>
EOF

launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist

Настройка системного прокси:

  1. System Settings → Network → Wi-Fi/Ethernet → Details → Proxies
  2. Включите SOCKS Proxy: 127.0.0.1:1080

Или используйте скрипты:

cd docs/servers/vpn
./scripts/enable-shadowsocks-full.sh  # Включить для всего трафика
./scripts/toggle-shadowsocks-proxy.sh  # Переключить прокси
./scripts/check-proxy-status.sh        # Проверить статус

Альтернативные клиенты для macOS:

  • ClashX - очень популярный
  • V2rayU - простой интерфейс
  • Outline - очень простой
  • Surge - платный, но мощный

🔧 Управление

Проверка статуса

# На сервере
ssh hunab-prod "docker ps | grep shadowsocks"

# На клиенте (macOS CLI)
launchctl list | grep shadowsocks

Просмотр логов

# Сервер
ssh hunab-prod "docker logs hunab-vpn-shadowsocks"

# Клиент (macOS)
tail -f /tmp/shadowsocks.log
tail -f /tmp/shadowsocks.error.log

Перезапуск

# Сервер
ssh hunab-prod "cd /opt/app && docker compose -f docker-compose.vpn-shadowsocks.yml restart"

# Клиент (macOS)
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist
launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist

Изменение пароля

ssh hunab-prod
cd /opt/app/vpn/shadowsocks

NEW_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-25)
sed -i "s/\"password\": \".*\"/\"password\": \"${NEW_PASSWORD}\"/" config.json
docker restart hunab-vpn-shadowsocks

🧪 Тестирование

Проверка подключения

# Через SOCKS5 прокси (macOS CLI)
curl --socks5 127.0.0.1:1080 ifconfig.me
# Должен показать: 209.38.32.21

# Прямое подключение
curl ifconfig.me
# Покажет ваш реальный IP

Проверка через браузер

  1. Настройте системный прокси (см. выше)
  2. Откройте: https://whatismyipaddress.com/
  3. Должен отображаться IP: 209.38.32.21

🔧 Решение проблем

Весь трафик не проходит через Shadowsocks

Используйте скрипты:

cd docs/servers/vpn
./scripts/check-proxy-status.sh  # Проверка статуса
./scripts/fix-shadowsocks.sh     # Автоматическое исправление

Ручная диагностика:

  1. Проверка Shadowsocks:

    launchctl list | grep shadowsocks
    curl --socks5 127.0.0.1:1080 ifconfig.me
    
  2. Проверка системного прокси:

    networksetup -getsocksfirewallproxy "Wi-Fi"
    # Должно показать: Enabled: Yes, Server: 127.0.0.1, Port: 1080
    
  3. Настройка прокси:

    INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1)
    networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080
    networksetup -setsocksfirewallproxystate "$INTERFACE" on
    

Chrome не использует системный прокси

  1. Отключите Chrome VPN расширение (если активно)
  2. Проверьте настройки: chrome://settings/system → "Use system proxy settings"
  3. Полностью закройте Chrome: Cmd+Q (не просто закрыть окно)
  4. Откройте Chrome заново

Прокси не работает

  1. Проверьте статус:

    launchctl list | grep shadowsocks
    
  2. Проверьте логи:

    cat /tmp/shadowsocks.error.log
    
  3. Перезапустите:

    launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist
    launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
    

Порт 1080 занят

  1. Проверьте, что использует порт:

    lsof -i :1080
    
  2. Измените порт в ~/.shadowsocks/config.json:

    "local_port": 1081
    
  3. Обновите системный прокси на новый порт


📊 Мониторинг

Использование ресурсов

ssh hunab-prod "docker stats hunab-vpn-shadowsocks --no-stream"

Активные подключения

ssh hunab-prod "docker exec hunab-vpn-shadowsocks ss-server -c /etc/shadowsocks-libev/config.json -v"

🔒 Безопасность

Рекомендации

  1. Используйте порт 443 для маскировки под HTTPS трафик
  2. Регулярно меняйте пароль (каждые 1-3 месяца)
  3. Используйте современные методы шифрования (chacha20-ietf-poly1305)
  4. Мониторинг трафика - следите за использованием
  5. Обновляйте контейнер регулярно

🔗 Полезные ссылки


Версия: 2.0
Дата: 2025-01-XX