Версия: 2.0
Дата: 2026-02-11
Статус: Working
Утилита для обхода блокировок через SSH SOCKS5 туннели с умной маршрутизацией.
Принцип: Разные сайты идут через разные серверы в зависимости от геолокации.
┌─────────────────────────────────────────────────────────────┐
│ Компьютер пользователя (Россия) │
│ Chrome + PAC файл │
└─────────────────────────────────────────────────────────────┘
│
├─→ Русские сайты (.ru, vk.com) → DIRECT (напрямую)
│
├─→ YouTube → SSH туннель → 155.212.223.80 (🇷🇺 Россия)
│ │
│ └─→ Beget LLC, Санкт-Петербург
│ YouTube работает!
│
└─→ Остальные (claude.com) → SSH туннель → 91.218.142.168 (🇱🇻 Латвия)
│
└─→ RETN Limited, Рига
Нет блокировок
| Домен | Маршрут | Причина |
|---|---|---|
| .ru, .рф, .su, .moscow, .москва | DIRECT | Русские домены - быстро напрямую |
| vk.com, yandex.*, habr.com, dzen.com | DIRECT | Русские сервисы на .com |
| youtube.com, googlevideo.com, ytimg.com | SOCKS5 127.0.0.1:8080 | Через Россию (Beget) |
| claude.com, google.com, остальные | SOCKS5 127.0.0.1:8081 | Через Латвию |
| localhost, 192.168., 10. | DIRECT | Локальные сети |
function FindProxyForURL(url, host) {
// 1. Российские домены → DIRECT
if (host.endsWith('.ru') || host.endsWith('.рф')) return "DIRECT";
// 2. Российские сервисы → DIRECT
if (host === 'vk.com' || host.includes('yandex')) return "DIRECT";
// 3. YouTube → через Россию (порт 8080)
if (host.includes('youtube.com')) return "SOCKS5 127.0.0.1:8080";
// 4. Остальные → через Латвию (порт 8081)
return "SOCKS5 127.0.0.1:8081; DIRECT";
}
| Файл | Путь | Назначение |
|---|---|---|
| Launcher | /var/www/html/files/youtube-via-ssh.sh |
Основной скрипт запуска |
| PAC файл | /var/www/html/files/youtube-proxy.pac |
Правила маршрутизации |
| Installer | /var/www/html/files/install-youtube-button.sh |
Установка кнопки на рабочий стол |
| Диагностика | /var/www/html/files/test-tunnels.sh |
Проверка туннелей |
| Файл | Путь | Назначение |
|---|---|---|
| Launcher | ~/.local/bin/youtube-launcher |
Локальный запускатель |
| Desktop | ~/.local/share/applications/youtube.desktop |
Кнопка на рабочем столе |
| PAC (кеш) | /tmp/youtube-proxy.pac |
Скачанный PAC файл |
Пользователь запускает:
bash <(curl -s http://91.218.142.168/files/youtube-via-ssh.sh)
Скрипт создаёт два SSH SOCKS5 туннеля:
# Туннель #1: YouTube → Россия
ssh -D 8080 -N -f root@155.212.223.80
# Туннель #2: Остальные → Латвия
ssh -D 8081 -N -f root@91.218.142.168
curl http://91.218.142.168/files/youtube-proxy.pac -o /tmp/youtube-proxy.pac
google-chrome --proxy-pac-url="file:///tmp/youtube-proxy.pac" https://www.youtube.com
Chrome читает PAC файл и для каждого запроса:
- Проверяет домен по правилам
- Направляет через нужный туннель или напрямую
bash <(curl -s http://91.218.142.168/files/youtube-via-ssh.sh)
bash <(curl -s http://91.218.142.168/files/install-youtube-button.sh)
После установки появится кнопка "YouTube" в меню приложений.
# На компьютере пользователя
bash <(curl -s http://91.218.142.168/files/test-tunnels.sh)
# Проверить запущены ли туннели
ps aux | grep ssh | grep -E "8080|8081"
# Проверить порты
netstat -tln | grep -E "8080|8081"
# Проверить IP через каждый туннель
curl --socks5 127.0.0.1:8080 ifconfig.me # → 155.212.223.80
curl --socks5 127.0.0.1:8081 ifconfig.me # → 91.218.142.168
# Проверить маршрутизацию в Chrome
# Открыть: chrome://net-internals/#proxy
Причина: Туннель 8080 не создался
Решение:
# Убить старые туннели
pkill -f "ssh.*8080"
# Создать заново
sshpass -p 'q&R4X3Mjf8Nc' ssh -D 8080 -N -f root@155.212.223.80
# Проверить
curl --socks5 127.0.0.1:8080 ifconfig.me
Причина: Туннель 8081 не работает
Проверка:
curl --socks5 127.0.0.1:8081 ifconfig.me
# Должно быть: 91.218.142.168
Решение:
# Убедиться что на 91.218.142.168 включен парольный вход
ssh root@91.218.142.168 "grep PasswordAuthentication /etc/ssh/sshd_config"
# Должно быть: PasswordAuthentication yes
Причина: Отключена парольная аутентификация
Решение (на сервере 91.218.142.168):
# Включить парольный вход
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
# Установить пароль
echo "root:q&R4X3Mjf8Nc" | chpasswd
# Перезапустить SSH
systemctl restart sshd
Причина: Chrome кеширует настройки
Решение:
# Перезапустить Chrome
killall chrome
google-chrome --proxy-pac-url="file:///tmp/youtube-proxy.pac" https://www.youtube.com
q&R4X3Mjf8Nc хранится в открытом виде в скрипте# На 91.218.142.168 включен парольный вход для туннелей
PasswordAuthentication yes
PermitRootLogin yes
# Рекомендация: ограничить доступ по IP
AllowUsers root@<IP_пользователя>
# На сервере 91.218.142.168
vim /var/www/html/files/youtube-via-ssh.sh
chmod +x /var/www/html/files/youtube-via-ssh.sh
# На сервере 91.218.142.168
vim /var/www/html/files/youtube-proxy.pac
# Пользователь получит обновление при следующем запуске
Редактировать /var/www/html/files/youtube-proxy.pac:
// Добавить в блок российских сервисов
if (dnsDomainIs(host, "новый-сайт.com") ||
dnsDomainIs(host, ".новый-сайт.com")) {
return "DIRECT";
}
Простая схема - один туннель для всех заблокированных сайтов:
# Только YouTube и заблокированные → через Россию
# Остальные → напрямую
ssh -D 8080 -N -f root@155.212.223.80
google-chrome --proxy-server="socks5://127.0.0.1:8080"
Минус: Claude.com будет видеть русский IP
# Всё иностранное → через Латвию
# Русские сайты → напрямую
ssh -D 8080 -N -f root@91.218.142.168
# PAC: русские → DIRECT, остальные → 8080
Минус: YouTube может работать медленнее
# На компьютере пользователя
journalctl -f | grep ssh
# Проверить доступность
ping -c 3 155.212.223.80
ping -c 3 91.218.142.168
# Проверить SSH
ssh -o ConnectTimeout=5 root@155.212.223.80 "echo OK"
ssh -o ConnectTimeout=5 root@91.218.142.168 "echo OK"
Версия документа: 1.0
Обновлено: 2026-02-11 23:15