Shadowsocks на Windows
@Вася ПупкинЭтот файл распространяется под лицензией Creative Commons.
Создан на основе двух публикаций – первая, вторая c авторами @Sergey OSU, @Вася Пупкин
Текущая редакция 25.04.2023 v 1.0 beta
Программа бесплатна, исходный код открыт. Исходно разрабатывалась для обхода Великого Китайского Фаервола. Приложение Shadowsocks имеет простую, но гибкую настройку; стабильно в работе. Shadowsocks обеспечивает функционирование на операционных системах Windows 7 / 8 / 8.1 / 10 / 11, а также на Android вплоть до 14 версии.
Программа работает как прокси-сервер. В отличие от Outline, не меняет маршрутизацию и не заворачивает в себя весь трафик - а значит, позволяет гибкую настройку - что пускать напрямую, а что через VPN-канал. Кроме того, не создает TAP-адаптера, в отличие от Outline - который иногда путается с несколькими адаптерами, а так же зависим от языковых настроек системы. Более того, благодаря такой технологии, Shаdowsocks может успешно сосуществовать и с VPN-подключением, например в рабочую сеть, и с другим прокси-сервером на компьютере. Хотя программа разработана для одного протокола, она допускает установку плагина V2ray для поддержки других протоколов (отличия протокола shadowsocks).
По умолчанию, Shadowsocks запускается на адресе 127.0.0.1 и порту 1080. Если порт занят - его можно заменить или через таблицу, или через редактирование секции WebProxy файла gui-config.json.
Особенность работы в том, что Shadowsocks запущен всегда - когда в трее висит значок, даже если системный прокси отключен. Это следует учитывать - и можно использовать.
Если вы настроили Shadowsocks на компьютере - конфигурацию легко перенести на телефон. Серверы - поделиться конфигурацией сервера - и на экране компьютера появится QR-код. Дальше очевидно.
Для работы программы вам необходимо получить ключ (настройки и пароль к серверу) для протокола shadowsocks.

ПОЛУЧЕНИЕ И УСТАНОВКА ПРОГРАММЫ
Скачайте приложение Shadowsocks версия 4.4.1.0 для Windows – скачать. Файл "Shadowsocks-4.4.1.0.zip". Установщика у программы нет. Рекомендуем создать папку C:\SS и распаковать туда содержимое архива.
Shadowsocks написан на C#, поэтому без установленного в системе пакета .Net FrameWork 4.8 работать не будет. Обычно данный пакет сам устанавливается вместе с другими пакетами обновления ОС. В случае, если пакет .Net FrameWork 4.8 не установлен, приложение не запустится, либо при запуске появится сообщение об ошибке.
Проверить, установлен ли пакет .Net FrameWork 4.8, можно по наличию папки "v4.0.30319" в директории "%systemroot%\Microsoft.Net\Framework\"
(переменная %systemroot% обычно имеет значение "c:\Windows").
Примечания:
- Соответствие папки "v4.0.30319" установленному пакету .Net FrameWork 4.8 справедливо для ОС Windows 7 / 8 / 8.1 / 10 / 11.
- Все бинарные файлы (exe, dll) в папке "v4.0.30319" имеют версию 4.8.x.
Если пакет .Net FrameWork 4.8 отсутсвует в системе, его можно загрузить (для всех систем семейства Windows, кроме Win8)
Для Windows RT 8.1 – загрузить.
Установите загруженное программное обеспечение.
При установке пакета Net FrameWork 4.8 на неудачно взломанную ОС, могут возникнуть проблемы. Однозначного решения для этой ситуации не найдено.
ЗАПУСК ПРОГРАММЫ И ЕЁ НАСТРОЙКА.
Интерфейс Shadowsocks несложный, но несколько нестандартный. Запускаем исполняемый файл Shadowsocks.exe из директории, куда ранее распаковали архив (например, С:\SS). Запуск приложения не приводит к открытию каких-либо интерфейсных окон. Однако в системном трее (правый нижний угол, рядом с часами) появляется значок программы в виде бумажного самолётика (далее, "самолетик"). Если у вас значки по умолчанию скрываются, целесообразно включить отображение данного значка ("самолетик"). Все дальнейшие настройки идут именно через этот значок.

Примечание: если приложение Shadowsocks.exe (либо его ярлык) запускается из какой-либо поддиректории папки "C:\Program Files\" либо "C:\Program Files (x86)\", его необходимо запускать с правами администратора. Это необходимо для обеспечения возможности обновления конфигурации. Для настройки запуска приложения с правами администратора, необходимо правой кнопкой мышки кликнуть по приложению (либо его ярлыку), открыть его свойства, перейти на вкладку "Совместимость", установить флажок "Выполнять эту программу от имени администратора" и нажать кнопку "OK".
При правом клике мышкой по "самолетику" открывается каскадное меню. Выбираем Серверы - открывается подменю, последняя строчка - импорт адреса из буфера обмена (предполагается, что ключ вы скопировали в буфер обмена). Самый простой способ - скопировать присланный ботом ключ (начинается с ss://...) в буфер обмена из бота в приложении Телеграм.
В этом случае будут исключены возможные ошибки копирования. Откройте сообщение бота, тапните на строку с ключом, - он скопируется в буфер обмена. Если вы используете Телеграм для Windows - выполните три клика по строке с ключом (выделится вся строка) и скопируйте ее в буфер при помощи комбинации Ctrl+C либо Ctrl+Ins.

После успешного импорта появится сообщение об этом, и откроется таблица с вашими серверами. Эту таблицу также можно вызвать двойным левым кликом по значку в трее. В таблице указаны адрес сервера, порт, пароль и так далее. Проверьте, что слева вы выбрали именно нужный сервер. Таблицу закройте. Правый клик по значку - меню, строка "Системный прокси-сервер". Включить режим "Для всей системы". Через строчку "Серверы" и подменю можно проверить, что у вас включен именно нужный сервер, и переключить его при необходимости.

Теперь сервер работает, значок ("самолетик") меняет цвет на синий. При осуществлении обмена данными через этот сервер кратковременно появляется оранжевая и синяя точка (признак обмена данными).

НАСТРОЙКИ В СИСТЕМЕ.
Настройки системного прокси.
Win7 - такой настройки "системного прокси-сервера" нет, но сам системный прокси может быть запущен. Программы, имеющие флажок "Автоматическая настройка прокси-сервера" или "Использовать системный прокси-сервер, будут работать через Shadowsocks в режиме "Системный прокси-сервер": "Для всей системы".
Win8 - Пуск - Параметры - Сеть - Прокси. Установить флажок: "Определять параметры автоматически". Снять флажки: "Использовать сценарий автоматической настройки" и "Настройка прокси вручную". (Если используется настроенный вручную прокси, его желательно отключить).
Win10 - Пуск - параметры - Сеть и интернет. Вкладка Прокси-сервер. Установить флажок: "Определять параметры автоматически". Снять флажки: "Использовать сценарий автоматической настройки" и "Настройка прокси вручную". (Если используется настроенный вручную прокси, его желательно отключить).
Win11 - Пуск - параметры - Сеть и Интернет - Прокси-сервер. Установить флажок: "Определять параметры автоматически". Снять флажки:
"Использовать сценарий настройки" и "Настройка прокси вручную". (Если используется настроенный вручную прокси, его желательно отключить).
Настройки браузеров.
Firefox. Открываем пункт меню "Инструменты" -> "Настройки". Далее выбираем: "Основные" -> "Настроить, как Firefox соединяется с Интернетом" (раздел "Параметры сети") -> Настроить. Выбрать пункт "Использовать системные настройки прокси". Остальные галочки будут сняты.
Internet Explorer (Windows 7-10). Открываем пункт меню "Настройки" -> "Свойства браузера" -> "Подключения". Настройка сети. Использовать прокси-сервер для локальных подключений... Введите адрес localhost и порт 1080. IE в Win7 не имеет настройки "Системный прокси".
EDGE. Открываем меню "Три точки" -> "Настройки" -> "Сеть и производительность". Имеется единственный неотключаемый режим работы "Системный прокси", ручной настройки прокси-сервера нет. Данная настройка будет успешно функционировать для режима Shadowsocks "Системный прокси": "Для всей системы".
Chrome. Приложение Chrome умеет работать со своим собственным прокси-сервером, который обычно управляется при помощи дополнений. Для работы Chrome через системный прокси-сервер, роль которого в данном случае выполняет Shadowsocks, необходимо в разделе "Настройки" -> "Дополнения" отключить расширения, предназначенные для обхода блокировок.
Проверка функционирования.
Зайдите браузером на whoer.net или ipinfo.io - вы должны увидеть "ваш" новый IP-адрес из той страны, ключ которой вы запросили.
Зайдите на заведомо запрещенный в РФ сайт - например, svoboda.org. Он должен работать.
Выключение Shadowsocks.
В трее есть значок Shadowsocks (самолетик). На значке правый клик мыши, появится меню, нижний пункт - "Выход"
Изменение режима Shadowsocks.
Через правый клик на значке "самолетик" можно выбрать другой VPN сервер или отключить системный прокси-сервер. Это не совсем правильно - Shadowsocks будет работать, просто потеряет статус системного. И если какая-то программа настроена на ручное указание адреса и порта прокси-сервера, то для неё проксирование продолжится. Переключение и восстановление настроек системы идёт несколько секунд - не мгновенно.
НЕКОТОРЫЕ ПРОБЛЕМЫ И РЕШЕНИЯ. FAQ.
1** Shadowsocks я нажал - но ничего не произошло.
*Shadowsocks при запуске не создаёт окно - появляется значок с самолётиком в системном трее (справа около часов). Возможно, у вас значки скрываются по умолчанию. Ищите среди скрытых значков, а лучше включите отображение значков.
*Проверьте, что в системе установлен Net Framework 4.8 (см. секцию ПОЛУЧЕНИЕ И УСТАНОВКА ПРОГРАМЫ.)
*Проверьте, что Shadowsocks у вас распакован в папку с коротким английским названием, например C:\SS.
*Если вы распаковали Shadowsocks в другую папку, например Program Files - проверьте и при отсутствии установите к папке и файлам Shadowsocks полный доступ.
2** Shadowsocks работает, и браузеры тоже - но при закрытии Shadowsocks пропадает интернет.
*Одна из возможных причин - Shadowsocks вы используете в режиме Системный прокси, а в настройках системы не указали настраивать прокси - сервер автоматически.
*Возможно, ваш браузер (ИЕ) не понимает или не имеет настройки "Системный прокси", и вы прописали прокси-сервер вручную: localhost:1080
Тогда при выгрузке Shadowsocks вам придётся вручную отключать эту настройку браузера. Или установите Firefox - там есть все необходимые настройки.
3** Shadowsocks первый раз запустился, импорт ключа я сделал, но не соединяется!
*Проверьте, разрешили ли вы проход Shadowsocks через брандмауер.
*Проверьте настройку вашего браузера.
*Проверьте, что ваш ключ актуален – через бота и кнопку статус.
*Можно проверить, доступен ли сервер - из консоли выполнить ping [адрес сервера]. Адрес посмотреть в таблице Shadowsocks. Также можно обратиться telnet-ом на соответствующий порт.
4** Я хочу использовать торрент или смотреть фильмы напрямую - а чтоб браузер работал через VPN. Одновременно!
*Отключите "Системный прокси - для всей системы. Тогда торрент-клиент будет идти напрямую. А в одном из браузеров сделайте настройку прокси вручную, адрес 127.0.0.1 или localhost, порт 1080. Тогда при запущенном Shadowsocks этот браузер будет работать через VPN.
РАСШИРЕННЫЕ НАСТРОЙКИ SHADOWSOCKS ДЛЯ WINDOWS.
(By Sergey OSU) от 17.09.2022.
1. Добавление нового сервера
* Вариант 1.
** Выбрать пункт меню: Серверы -> Редактировать серверы.
** Задать IP-адрес, порт, пароль, примечание (название сервера).
* Вариант 2.
** В буфер обмена поместить строку с ключом.
** Выбрать пункт меню: Серверы -> Импорт адреса из буфера обмена...
Импортировать адрес: ... -> Yes.
** При необходимости задать примечание (название сервера).
** При необходимости задать значение timeout (10 сек).
2. Проксирование трафика в приложении Shadowsocks под Windows.
Сразу после запуска приложение Shadowsocks (Windows) инициирует процесс проксирования (передачи) данных, поступающих на заданный в конфигурации Shadowsocks порт (по умолчанию, порт 1080). Проксирование (передача) данных осуществляется согласно настройкам выбранного (активного) ключа.
Примечание: даже при выборе пункта меню "Системный прокси-сервер" -> "Отключен" все данные, поступающие на заданный в конфигурации порт Shadowsocks (по умолчанию, порт 1080), будут передаваться (проксироваться) согласно настройкам активного ключа. Т.о., если в браузере или другом приложении принудительно задать прокси-сервер 127.0.0.1:1080 (либо другой порт, указанный в настройках Shadowsocks), проксирование будет осуществляться независимо от значения пункта меню "Системный прокси-сервер" (как будто включен режим проксирования "Для всей системы").
Настройка "Системный прокси-сервер" актуальна для приложений, использующих системные настройки прокси-сервера:
2.1) В этом случае текущий прокси-сервер определяется операционной системой, а не настройками конкретного приложения (browser и пр.);
2.2) Если требуется использовать режим проксирования "Сценарий настройки (PAC)" (альтернатива режиму "Для всей системы").
Примечание: если для доступа в сеть необходимо использовать определенный proxy-сервер, его необходимо задать в настройках Shadowsocks (пункт меню "Прямой прокси...").
3. Включение / отключение проксирования трафика через Shadowsocks для приложений, использующих системные настройки прокси-сервера.
* Выбрать пункт меню: Системный прокси-сервер.
* Отключение проксирования трафика: выбрать пункт "Отключен".
* Включение проксирования трафика: выбрать пункт "Для всей системы" либо
* "Сценарий настройки (PAC)" (см. пункт "Режимы проксирования трафика").
4. Режимы проксирования трафика через Shadowsocks для приложений, использующих системные настройки прокси-сервера.
*Если требуется, чтобы весь трафик проходил через Shadowsocks, необходимо включить режим проксирования "Для всей системы".
*Если необходимо, чтобы часть трафика проходила, минуя Shadowsocks (к примеру, через другой VPN-клиент, либо уходила в сеть напрямую), необходимо включить режим проксирования "Сценарий настройки (PAC)". В этом случае проксирование будет осуществляться согласно настройкам файла pac.txt, лежащего в корневой папке Shadowsocks. (См. пункт "Краткая информация по файлу pac.txt").
5. Краткая информация по файлу pac.txt.
При использовании режима проксирования "Сценарий настройки (PAC)" трафик, удовлетворяющий значениям переменных __USERRULES__, privateNet,
__RULES__, не будет обрабатываться Shadowsocks.
* Описание переменной privateNet из pac.txt
var privateNet = [
["10.0.0.0", "255.0.0.0"],
["127.0.0.0", "255.0.0.0"],
["172.16.0.0", "255.240.0.0"],
["192.168.0.0", "255.255.0.0"],
];
* Пример описания пользовательской переменной __USERRULES__ (By OSU)
var __USERRULES__ = [
"@@||100.223.24.in-addr.arpa", // Test IP 1
"@@||100.223.28.in-addr.arpa", // Test IP 2
"@@||100.223.52.in-addr.arpa", // Test IP 3
"@@||test.ru", // Test URL
"@@||100.223.255.in-addr.arpa", // Test IP 4
"@@||108.254.55.in-addr.arpa", // Test IP 5
"@@||108.254.74.in-addr.arpa" // Test IP 6
];
В переменной __USERRULES__ можно использовать для разрешения трафика к конкретным узлам не только IP, но и символьные имена сайтов:
"@@||ru", // Все сайты зоны ru будут проходить в обход прокси”
"@@||youtube.com", //youtube Разрешение работы youtube напрямую ”
Примечание.
Подключение внешнего PAC - укажите, например,
https://antizapret.prostovpn.org/proxy.pac
6. Логирование.
Клиент Shadowsocks под Windows не сообщает, что ключ недействителен. В подобной ситуации просто трафик не идет, что выражается, например, в невозможности загрузить страницу. Для просмотра трафика, проходящего через Shadowsocks, можно использовать журнал.
Необходимо выбрать пункт меню: Помощь -> Показать журнал. При необходимости можно осуществлять расширенное протоколирование данных.
Выбрать пункт меню: Помощь -> Подробный журнал (наличие / отсутствие флажка рядом с пунктом "Подробный журнал").

7. Горячие клавиши.
Выбрать пункт меню: Горячие клавиши. Настройте желаемые комбинации и сохраните.
Наиболее полезными для меня оказались следующие горячие клавиши:
* Ctrl+S - ВКЛ/ВЫКЛ системный прокси-сервер.
Включение / отключение проксирования через Shadowsocks (пункт меню: Системный прокси-сервер).
* Ctrl+M - Переключение режима прокси-сервера.
Если системный прокси-сервер включен (пункт меню: Системный прокси-сервер) происходит переключение режима проксирования трафика: "Для всей системы" либо "Сценарий настройки (PAC)".
Если системный прокси-сервер выключен, изменения режима проксирования не происходит (изменение режима не запоминается).
* Ctrl+L - Просмотр журналов (пункт меню: Помощь -> Показать журнал).
8. Информация по настройке proxy-сервера Windows в зависимости от режима функционирования Shadowsocks.
1) Например, вы включили в системе режим автоматического определения настроек proxy (automatic proxy setup -> automatically detect settings: on).
2) Запускаем Shadowsocks
(или он уже был запущен, но системный proxy-сервер был отключен)
("Системный proxy-сервер": "Отключен").
*Shadowsocks: включаем "Системный proxy-сервер":
Сценарий настройки (PAC)". При этом в настройках OS:
* отключается автоматическое определение настроек прокси (automatic proxy setup -> automatically detect settings: off);
* включается режим использования автоматизированного скрипта (automatic proxy setup -> use automatic configuration script: on), расположенного по адресу http://127.0.0.1:1080/pac?hash=...,
(осуществление управления при помощи Shadowsocks согласно заданному сценарию (PAC)).
3) Shadowsocks: включаем "Системный proxy-сервер": "Для всей системы".
При этом в настройках OS:
* отключается автоматическое определение настроек прокси (automatic proxy setup -> automatically detect settings: off);
* включается ручной режим использования proxy-сервера (manual proxy setup -> use a proxy server: on), работающего на адресе 127.0.0.1:1080 (localhost:1080).
4) Shadowsocks: отключаем системный proxy-сервер
("Системный proxy-сервер": "Отключен").
При этом в настройках OS восстанавливаются исходные настройки proxy-сервера (рассматриваем вариант из п.1, когда в системе включено автоматическое определение настроек proxy (automatic proxy setup -> automatically detect settings: on)):
* отключается ручной режим использования proxy-сервера (manual proxy setup -> use a proxy server: off);
* отключается режим использования автоматизированного скрипта (automatic proxy setup -> use automatic configuration script: off);
* включается автоматическое определение настроек прокси (automatic proxy setup -> automatically detect settings: on).
4.1) Если вы завершили функционирование Shadowsocks штатным образом:
*системный proxy-сервер не отключили,
*("Системный proxy-сервер": НЕ "Отключен"), но тем не менее был выбран пункт меню "Выход" - будет отработана ситуация согласно п.4).
Однако необходимо помнить, что при следующем запуске Shadowsocks включит системное проксирование согласно ранее заданным настройкам.
Примечания:
* Eсли Shadowsocks не был выгружен штатным образом, могут возникнуть различные проблемы доступа в интернет.
* Eсли для доступа в сеть необходимо использовать дополнительно определенный proxy-сервер, его необходимо задать в настройках Shadowsocks: (пункт меню "Прямой прокси...").