Создание своего VPN с помощью Shadowsocks
Провайдеры детектят любой подозрительный трафик и намеренно занижают скорость интернет-соединения
Они же (и те, кто держат сервера с VPN) идут на поводу у РосКомНадзора/Федеральной комисси по связи/etc. , и при надобности могут выдать последним ключи шифрования
Некоторые провайдеры VPN вообще не шифруют трафик
Как правило, на серверах VPN используют OpenVPN, либо же его модифицированную версию (минус ли это - решать вам)
Провайдеры VPN ограничивают количество устройств на тарифе, или режут определённый вид трафика (например, торренты)
Tor, хоть и шифрует трафик, не обеспечивает полную анонимность - на выходной ноде вполне возможно перехватывать трафик, да и на многие сайты с ним невозможно зайти
Возникает закономерный вопрос - так чем, черт возьми, пользоваться? Тут ответ приходит, внезапно, из Китая - Shadowsocks.
Что это такое?
Как говорит нам англоязычная Википедия: "Shadowsocks - это бесплатный проект протокола шифрования с открытым исходным кодом, широко используемый в материковом Китае для обхода цензуры в Интернете". Действительно, он там используется для обхода знаменитого "Золотого щита", которым так гордится китайское правительство, и делает это весьма успешно.
Работает он в связке "Сервер-клиент" - трафик шифруется у клиента, пересылается на сервер, там расшифровывается и выпускается в Интернет. Причём и сервер, и клиент вы настраиваете сами - никакой утечки информации или попадании её не в те руки, плюс вы сами вольны выбирать алгоритм шифрования. Более подробную информацию можно получить на сайте проекта
Подготовительный этап
Для начала нам потребуется сервер. Где его брать я вам говорить не буду, т.к. в интернете много компаний предоставляют облачные сервера. Для Shadowsocks достаточно самого дешёвого - мой крутится на сервере с 1 ядром, 400 мегабайтами оперативной памяти и 5 гигабайтами дискового пространства, и этого вполне хватает. Главный же критерий тут - скорость соединения и место расположения сервера - для обхода блокировок лучше брать в Америке, Франции или Италии. Главное - безлимитный трафик (но если вы пользуетесь интернетом не так активно, то можно и ограниченный)
Далее переходим к выбору серверной ОС - тут желательно выбрать Ubuntu 64x, но можно либо Debian, либо CentOS. В этой же статье будет описываться сервер с Ubuntu 18.04
Если вы желаете полной анонимности, то платить за такой сервер следует биткойнами, и нигде не указывать свои данные (но это уже для незаконных действий, благо мы с вами не такие)
Настройка сервера
Сервер арендован, ОС поставлена, можно приступать к настройке самого Shadowsocks Сначала обновимся
apt update && apt upgrade
Затем поставим сам Shadowsocks
apt install shadowsocks-libev
Тут нужно небольшое пояснение:
shadowsocks-libev - Shadowsocks, переписанный на чистом Си
Затем откроем конфигурационный файл редактором nano
nano /etc/shadowsocks-libev/config.json
Здесь мы увидим следующую картину (см. в шапке):
Следует рассказать о назначении некоторых параметров:
server - адрес вашего сервера, следует заменить на реальный адрес вашего сервера
server_port - порт, на котором будет открыт ваш сервер, можно поменять на любой, кроме тех, которые уже заняты
local_port - порт для связи внутри сервера, оставьте дефолтным password - пароль от вашего соединения, поменяйте на более заковыристый
timeout - время, после которого сервер разрывает соединение, если не поступило никаких данных. Вместо 60 секунд лучше ввести 10, т.к. больше многие клиенты не поддерживают
method - метод шифрования трафика, лучше оставить дефолтным, либо поменять на предпочтительный
Остальных параметров нет в оригинальном файле, но в дальнейшем мы их введём.
Сохраняем файл при помощи Ctrl-O, Enter, а затем выходим с помощью Ctrl-X. Советую вам где-нибудь записать или сфотографировать всё то, что мы ввели.
Теперь добавим Shadowsocks в автозапуск:
systemctl enable shadowsocks-libev
systemctl restart shadowsocks-libev
Ну вот и всё! Базовый сервер настроен, перейдём к настройке клиента
Настройка клиента
Идём на официальный сайт и качаем клиент для Windows
Затем распаковываем в удобное для нас место (Я распаковывал в корень C), запускаем, и видим следующее: