July 28, 2021

Shadowsocks in docker

3proxy это хорошо. Но он не шифрует трафик. VPN не всегда удобен, особенно если требуется часть ресурсов открывать через прокси, другие - напрямую. Поэтому развернем продукт родом из Поднебесной - shadowsocks.

Подготовим папку для проекта:

mkdir -p /dockerapp/shadowsocks
cd /dockerapp/shadowsocks/

Скачем образ. Я буду использовать самую последнюю версию (edge). Так же можно использовать версию с тегом latest.

docker pull shadowsocks/shadowsocks-libev:edge

Затем подготовим конфиг docker-compose для запуска

vim docker-compose.yml

cо следующим содержимым:

version: "2.1"
services:
  shadowsocks:
    image: shadowsocks/shadowsocks-libev:edge
    container_name: shadowsocks
    environment:
    - METHOD=chacha20-ietf-poly1305
    - PASSWORD=<ваш суперпароль>
    ports:
      - 443:8388
    restart: unless-stopped

далее остается только запустить контейнер

docker-compose up -d

и проверить что мы слушаем порт 443

ss -ntulp

в выводе мы должны увидеть, что-то подобное:

tcp    LISTEN   0        128              0.0.0.0:443           0.0.0.0:*      users:(("docker-proxy",pid=8180,fd=8))

Это очень простая настройка, есть множество параметров с которыми можно поиграться. Более подробно можно изучить вопрос по следующим ссылкам:

https://github.com/shadowsocks/shadowsocks-libev/tree/master/docker/alpine

https://shadowsocks.org/en/wiki/Setup-fail2ban.html

https://hub.docker.com/r/shadowsocks/shadowsocks-libev