9.8 KiB
🚀 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
Скрипт автоматически:
- ✅ Проверит подключение к серверу
- ✅ Сгенерирует безопасный пароль
- ✅ Создаст необходимые директории
- ✅ Настроит Docker контейнер
- ✅ Обновит firewall правила
- ✅ Запустит VPN сервер
- ✅ Создаст клиентскую конфигурацию
Статус сервера
Контейнер: hunab-vpn-shadowsocks
Статус: ✅ Запущен и работает
Порт: 8388 (TCP/UDP)
Firewall: ✅ Настроен
Проверка статуса:
ssh hunab-prod "docker ps | grep shadowsocks"
📱 Настройка клиентов
Android
- Установите приложение Shadowsocks из Google Play (разработчик: Max Lv)
- Нажмите "+" → "Manual Settings"
- Введите параметры:
Server: 209.38.32.21 Remote Port: 8388 Password: bNkSbuMQXgMXmuBLPQCA5cSUE Method: chacha20-ietf-poly1305 - Нажмите "Подключиться"
Альтернативные клиенты для Android:
- ShadowsocksR - больше функций
- Outline - очень простой
- V2rayNG - много протоколов
- Clash for Android - правила маршрутизации
macOS
Вариант 1: ShadowsocksX-NG (GUI)
brew install --cask shadowsocksx-ng
- Откройте приложение → Server Preferences → "+"
- Введите параметры подключения
- Выберите сервер в меню и подключитесь
- Включите "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
Настройка системного прокси:
- System Settings → Network → Wi-Fi/Ethernet → Details → Proxies
- Включите 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
Проверка через браузер
- Настройте системный прокси (см. выше)
- Откройте: https://whatismyipaddress.com/
- Должен отображаться IP: 209.38.32.21
🔧 Решение проблем
Весь трафик не проходит через Shadowsocks
Используйте скрипты:
cd docs/servers/vpn
./scripts/check-proxy-status.sh # Проверка статуса
./scripts/fix-shadowsocks.sh # Автоматическое исправление
Ручная диагностика:
-
Проверка Shadowsocks:
launchctl list | grep shadowsocks curl --socks5 127.0.0.1:1080 ifconfig.me -
Проверка системного прокси:
networksetup -getsocksfirewallproxy "Wi-Fi" # Должно показать: Enabled: Yes, Server: 127.0.0.1, Port: 1080 -
Настройка прокси:
INTERFACE=$(networksetup -listallnetworkservices | grep -E "Wi-Fi|Ethernet" | head -1) networksetup -setsocksfirewallproxy "$INTERFACE" 127.0.0.1 1080 networksetup -setsocksfirewallproxystate "$INTERFACE" on
Chrome не использует системный прокси
- Отключите Chrome VPN расширение (если активно)
- Проверьте настройки:
chrome://settings/system→ "Use system proxy settings" - Полностью закройте Chrome: Cmd+Q (не просто закрыть окно)
- Откройте Chrome заново
Прокси не работает
-
Проверьте статус:
launchctl list | grep shadowsocks -
Проверьте логи:
cat /tmp/shadowsocks.error.log -
Перезапустите:
launchctl unload ~/Library/LaunchAgents/com.shadowsocks.local.plist launchctl load ~/Library/LaunchAgents/com.shadowsocks.local.plist
Порт 1080 занят
-
Проверьте, что использует порт:
lsof -i :1080 -
Измените порт в
~/.shadowsocks/config.json:"local_port": 1081 -
Обновите системный прокси на новый порт
📊 Мониторинг
Использование ресурсов
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"
🔒 Безопасность
Рекомендации
- ✅ Используйте порт 443 для маскировки под HTTPS трафик
- ✅ Регулярно меняйте пароль (каждые 1-3 месяца)
- ✅ Используйте современные методы шифрования (
chacha20-ietf-poly1305) - ✅ Мониторинг трафика - следите за использованием
- ✅ Обновляйте контейнер регулярно
🔗 Полезные ссылки
Версия: 2.0
Дата: 2025-01-XX