В свете последних событий интернет в России уже начал закрываться. Например Facebook и Instagram уже заблокированы Роскомнадзором. Для того чтобы продолжить пользоваться этими сайтами вам понадобится VPN или прокси. Большинство распространённых протоколов VPN, вроде OpenVPN тоже можно заблокировать, что успешно делает Китай.
Однако есть решение. Для доступа к контенту из Китая была придумана технология Shadowsocks. Эта технология работает по принципу прокси, но с шифрованием. Она маскируется под https трафик, поэтому использование этого протокола сложно вычислить и заблокировать. В этой статье мы рассмотрим как выполняется настройка Shadowsocks Ubuntu, а также как подключится к серверу с Linux.
Содержание статьи:
Прежде всего, обратите внимание, что для работы Shadowsocks, как собственно и для VPN вам понадобится сервер, в стране, где нужные вам сайты не заблокированы. Именно на этом сервере устанавливается сервер Shadowsocks. На вашем компьютере или телефоне устанавливается клиент, который подключается к этому серверу. Между вашим клиентом и сервером трафик будет зашифрован поэтому провайдер, не сможет понять какой сайт вы открываете, поэтому не заблокирует его. А уже на сервере запрос будет расшифрован и в открытом виде поступит на сайт.
Если вы планируете использовать digitalocean, то для вас всё может быть довольно просто. Вы можете использовать Otuline Manager, разработанный в Google. Это панель управления, которая позволяет в несколько кликов развернуть Shadowsocks сервер на DigitalOcean или в облаке Google.
[embedded content]
Но мы в этой статье не будем рассматривать Outline, мы сосредоточимся на ручной установке shadowsocks сервера. Я предполагаю, что у вас уже есть VPS или другой облачный сервер вне России, и вы можете подключится к нему по SSH.
Существует несколько вариантов сервера shadowsocks. Есть реализации на Python, Go и Си. В этой статье будет использоваться версия на Си (libev).
Реализация shadowsocks на Си есть в официальных репозиториях Ubuntu. Вы можете установить её с помощью команды:
sudo apt install shadowsocks-libev
Но если вы хотите получить самую последнюю версию, вам надо собрать программу из исходников.
Программу на Си придётся собирать из исходников, а поэтому надо установить необходимые компоненты, понадобится 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
Для клонирования репозитория с исходниками программы выполните команду:
git clone https://github.com/shadowsocks/shadowsocks-libev.git
Далее нужно перейти в папку с исходниками:
cd shadowsocks-libev/
Для получения исходников всех зависимостей выполните команду:
git submodule update --init --recursive
Для генерации всех необходимых конфигурационных файлов выполните команду:
./autogen.sh
Затем для сборки .deb пакета достаточно выполнить:
dpkg-buildpackage -b -us -uc
После завершения выполнения команды пакеты будут находится выше текущей папки на уровень. Для их установки надо выполнить:
sudo dpkg -i ../shadowsocks-libev*.deb
После этого установка shadowsocks будет завершена и можно переходить к настройке программы. Теперь вы знаете как установить shadowsocks из исходников.
Конфигурационный файл shadowsocks находится по пути /etc/shadowsocks-libev/config.json и по умолчанию выглядит вот так:
Вот что означают эти сроки:
Для начала работы с shadowsocks надо установить в поле server внешний IP адрес вашего сервера. Его можно посмотреть командой:
wget -qO- eth0.me
Также в поле 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. Давайте разберемся как подключится к настроенному серверу.
Для подключения вам понадобится клиент. В Linux можно использовать GUI клиент от Outline. Однако и его мы не будем рассматривать в этой статье. Мы поговорим про использование консольного клиента. Его можно получить установив тот же пакет, что и для сервера. Вы можете собрать его из исходников, как описано выше или установить из репозиториев дистрибутива:
После установки нужно отредактировать конфигурационный файл, так чтобы он был таким же как и на сервере. Например:
После этого можно запустить клиент:
sudo ss-local -v -c /etc/shadowsocks-libev/config.json
Опция -v здесь означает максимально подробный вывод, а -c – указывает путь к конфигурационному файлу. Клиент запущен, но ваш трафик ещё не перенаправляется через тоннель. Для этого надо настроить подключение к прокси в вашем браузере. Клиент ожидает соединений от браузера на порту 1080 (по умолчанию).
Для настройки прокси в Firefox откройте Настройки. В разделе Основные пролистайте в самый низ и найдите Параметры сети:
Тут нажмите Настроить и в открывшемся окне введите адрес 127.0.0.1 и порт 1080:
После этого Firefox будет использовать Shadowsocks для открытия сайтов. Если вы откроете сайт eth0.me, то увидите, что ваш IP адрес соответствует адресу сервера, на котором установлен Shadowsocks.
Обратите внимание, что многие провайдеры блокируют сайты по DNS, так что лучше в настройках своего роутера указать DNS Google – 8.8.8.8 или включить в браузере DNS over HTTPS.
В этой статье мы рассмотрели как выполняется установка и настройка Shadowsocks в Ubuntu 20.04. Как видите, это довольно просто. А какими сервисами, технологиями вы пользуетесь для обхода блокировок сайтов в интернете? Напишите в комментариях!
Источник: https://losst.ru/ Материал распространяется под лицензией CC-BY-SA
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies