Поднимаем ShadowSocks сервер на Debian или Ubuntu

ShadowSocks – это очень быстрый, лучший в своём роде прокси сервер, который способен обходить Великий Китайский Фаервол, в отличие от большинства VPN поставщиков. ShadowSocks настолько хорошо маскирует трафик под HTTPS-соединение, что в сравнении с VPN трафиком, Великий Фаервол не способен его идентифицировать и соответственно заблокировать. Чего не скажешь о подавляющем числе VPN серверов, которые благодаря наученным нейросетям Китайский Фаервол легко обнаруживает.В этой небольшой статье я показываю, как поднять свой ShadowSocks сервер и тем самым обезопасить своё пребывание в Интернете.

Арендуем сервер под ShadowSocks

Можно арендовать VPS тут. При установке лучше выбрать Ubuntu до 22.04 версии.

Установка

Для начала скачаем установочный bash и установим ShadowSocks сервер.

Первый вариант для Debian до 10 версии и Ubuntu до 20.04:

wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/Vndroid/shadowsocks-install/master/shadowsocks.sh chmod +x shadowsocks.sh ./shadowsocks.sh install 2>&1 | tee shadowsocks.log

Второй вариант подходит для Debian 11 и выше и Ubuntu 22.04 и выше:

wget --no-check-certificate -O shadowsocks.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh chmod +x shadowsocks.sh ./shadowsocks.sh 2>&1 | tee shadowsocks.log

Настройка ShadowSocks приложения

Далее настраиваем конфигурацию ShadowSocks сервера.Конфиг файл в /etc/shadowsocks.conf полностью заменяем на:

{ "server": "0.0.0.0", "server_port": 3785, "local_port": 1080, "password": "barfoo", "timeout": 20, "method": "aes-256-gcm", "fast_open": true, "mode": "tcp_only", "nameserver": "8.8.8.8" }

Здесь мы указали порт 3785 и пароль barfoo, а также метод шифрования aes-256-gcm – эти данные нам понадобятся при создании строки конфигурации для клиента. Также мы указали DNS сервер гугла 8.8.8.8, его при желании можно заменить на любой другой, например Cloudflare 1.1.1.1.
Сразу устанавливаем net-tools для манипуляций с сетевой подсистемой:

apt install net-tools

Разрешаем подключение к 3785 порту:

iptables -4 -A INPUT -p tcp --dport 3785 -m comment --comment "Shadowsocks server listen port" -j ACCEPT ufw allow proto tcp to 0.0.0.0/0 port 3785 comment "Shadowsocks server listen port" sudo ufw allow 3785/udp && sudo ufw allow OpenSSH && sudo ufw disable && sudo ufw enable

Мы указали в конфиге /etc/shadowsocks.conf режим tcp_only, но несмотря на это разрешаем доступ к 3785 udp порту. Дело в том, что на некоторых серверах я наблюдал проблемы, если этого не сделать. Поэтому будем воспроизводить этот карго-культ.
В конце файла параметров ядра /etc/sysctl.conf указываем такие настройки:

fs.file-max = 51200 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 4096 net.core.default_qdisc = fq net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_mem = 25600 51200 102400 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_congestion_control = hybla

Далее командуем мантру:

sysctl --system && /etc/init.d/shadowsocks restart

После этого мы можем удостовериться, открыт ли наш tcp/udp порт 3785:

netstat -tlpn

Клиенты ShadowSocks

Клиенты под все платформы есть тут. Сам я использую Outline и для Mac OS, и для iOS.

Генерируем конфиг строку для клиента

Теперь осталось сформировать конфиг строку для подключения на клиенте. С помощью этой утилиты, это удобно сделать, всего лишь вбив данные сервера в нужные поля.Подписывайтесь на мой тг канал, там в закрепе больше 10 способов по ускорению ютуба, а так же найстройка VLESS и другой вариант shadowsocks

Начать дискуссию