DataLife Engine / Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

В свете последних событий интернет в России уже начал закрываться. Например Facebook и Instagram уже заблокированы Роскомнадзором. Для того чтобы продолжить пользоваться этими сайтами вам понадобится VPN или прокси. Большинство распространённых протоколов VPN, вроде OpenVPN тоже можно заблокировать, что успешно делает Китай.

Однако есть решение. Для доступа к контенту из Китая была придумана технология Shadowsocks. Эта технология работает по принципу прокси, но с шифрованием. Она маскируется под https трафик, поэтому использование этого протокола сложно вычислить и заблокировать. В этой статье мы рассмотрим как выполняется настройка Shadowsocks Ubuntu, а также как подключится к серверу с Linux.


Содержание статьи

Что вам понадобится

Прежде всего, обратите внимание, что для работы Shadowsocks, как собственно и для VPN вам понадобится сервер, в стране, где нужные вам сайты не заблокированы. Именно на этом сервере устанавливается сервер Shadowsocks. На вашем компьютере или телефоне устанавливается клиент, который подключается к этому серверу. Между вашим клиентом и сервером трафик будет зашифрован поэтому провайдер, не сможет понять какой сайт вы открываете, поэтому не заблокирует его. А уже на сервере запрос будет расшифрован и в открытом виде поступит на сайт.

Если вы планируете использовать digitalocean, то для вас всё может быть довольно просто. Вы можете использовать Outline Manager, разработанный в Google. Это панель управления, которая позволяет в несколько кликов развернуть Shadowsocks сервер на DigitalOcean или в облаке Google.

Но мы в этой статье не будем рассматривать Outline, мы сосредоточимся на ручной установке shadowsocks сервера. Я предполагаю, что у вас уже есть VPS или другой облачный сервер вне России, и вы можете подключится к нему по SSH.

Существует несколько вариантов сервера shadowsocks. Есть реализации на Python, Go и Си. В этой статье будет использоваться версия на Си (libev).

Установка Shadowsocks из репозитория

Реализация shadowsocks на Си есть в официальных репозиториях Ubuntu. Вы можете установить её с помощью команды:

sudo apt install shadowsocks-libev

Но если вы хотите получить самую последнюю версию, вам надо собрать программу из исходников.

Установка Shadowsocks из исходников

Шаг 1. Установка необходимых компонентов

Программу на Си придётся собирать из исходников, а поэтому надо установить необходимые компоненты, понадобится git, а также всё нужное для сборки. Команда для установки будет выглядеть так:

sudo apt install pkg-config gettext build-essential autoconf libtool libpcre3-dev asciidoc xmlto libev-dev libudns-dev automake libmbedtls-dev libsodium-dev git libc-ares-dev devscripts equivs mk-build-deps 
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Шаг 2. Клонирование репозитория

Для клонирования репозитория с исходниками программы выполните команду:

git clone https://github.com/shadowsocks/shadowsocks-libev.git
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Далее нужно перейти в папку с исходниками:

cd shadowsocks-libev/

Для получения исходников всех зависимостей выполните команду:

git submodule update --init --recursive

Шаг 3. Сборка исходников

Для генерации всех необходимых конфигурационных файлов выполните команду:

./autogen.sh
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Затем для сборки .deb пакета достаточно выполнить:

dpkg-buildpackage -b -us -uc
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Шаг 4. Установка

После завершения выполнения команды пакеты будут находится выше текущей папки на уровень. Для их установки надо выполнить:

sudo dpkg -i ../shadowsocks-libev*.deb

После этого установка shadowsocks будет завершена и можно переходить к настройке программы. Теперь вы знаете как установить shadowsocks из исходников.

Настройка shadowsocks

Конфигурационный файл shadowsocks находится по пути /etc/shadowsocks-libev/config.json и по умолчанию выглядит вот так:

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Вот что означают эти сроки:

Для начала работы с shadowsocks надо установить в поле server внешний IP адрес вашего сервера. Его можно посмотреть командой:

wget -qO- eth0.me
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Также в поле password, надо прописать пароль, который будет использоваться на клиенте для подключения к серверу. Всё остальное можно оставить по умолчанию. После внесения изменений конфигурационный файл может выглядеть вот так:

sudo vi /etc/shadowsocks-libev/config.json

{ "server": "176.97.65.151", "mode":"tcp_and_udp", "server_port":8388, "local_port":1080, "password":"55jOHcL9H01Y", "timeout":86400, "method":"chacha20-ietf-poly1305" }

Также после внесения изменений в конфигурационный файл необходимо перезапустить сервис:

sudo systemctl restart shadowsocks-libev

На этом базовая настройка закончена, можно переходить к подключению. Если вы хотите запустить сервер для отладки, чтобы видеть всё, что происходит, можете остановить systemd службу и запустить его вручную:

/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Теперь вы знаете как настроить shadowsocks. Давайте разберемся как подключится к настроенному серверу.

Подключение к Shadowsocks

Для подключения вам понадобится клиент. В Linux можно использовать GUI клиент от Outline. Однако и его мы не будем рассматривать в этой статье. Мы поговорим про использование консольного клиента. Его можно получить установив тот же пакет, что и для сервера. Вы можете собрать его из исходников, как описано выше или установить из репозиториев дистрибутива:

sudo apt install shadowsocks-libev

После установки нужно отредактировать конфигурационный файл, так чтобы он был таким же как и на сервере. Например:

sudo vi /etc/shadowsocks-libev/config.json

{ "server": "176.97.65.151", "mode":"tcp_and_udp", "server_port":8388, "local_port":1080, "password":"55jOHcL9H01Y", "timeout":86400, "method":"chacha20-ietf-poly1305" }

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

После этого можно запустить клиент:

sudo ss-local -v -c /etc/shadowsocks-libev/config.json
Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Опция -v здесь означает максимально подробный вывод, а -c - указывает путь к конфигурационному файлу. Клиент запущен, но ваш трафик ещё не перенаправляется через тоннель. Для этого надо настроить подключение к прокси в вашем браузере. Клиент ожидает соединений от браузера на порту 1080 (по умолчанию).

Для настройки прокси в Firefox откройте Настройки. В разделе Основные пролистайте в самый низ и найдите Параметры сети:

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Тут нажмите Настроить и в открывшемся окне введите адрес 127.0.0.1 и порт 1080:

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

После этого Firefox будет использовать Shadowsocks для открытия сайтов. Если вы откроете сайт eth0.me, то увидите, что ваш IP адрес соответствует адресу сервера, на котором установлен Shadowsocks.

Shadowsocks: обход блокировок сайтов для Ubuntu — полное руководство

Обратите внимание, что многие провайдеры блокируют сайты по DNS, так что лучше в настройках своего роутера указать DNS Google - 8.8.8.8 или включить в браузере DNS over HTTPS.

Выводы

В этой статье мы рассмотрели как выполняется установка и настройка Shadowsocks в Ubuntu 20.04. Как видите, это довольно просто. А какими сервисами, технологиями вы пользуетесь для обхода блокировок сайтов в интернете? Напишите в комментариях!

28-10-2025, 05:00
Вернуться назад