Данный учебник продемонстрирует, как установить прокси-сервер Shadowsocks на системе CentOS. Shadowsocks представляет собой легкий, быстрый и безопасный прокси Socks5, предназначенный для обхода интернет-цензуры. Мы разберемся в настройке серверной части и конфигурации клиента на рабочем столе в CentOS. Существует множество реализаций Shadowsocks, и в этом руководстве будет показано использование Shadowsocks-libev, так как…
- Он разработан на языке C и демонстрирует высокую скорость работы даже на маломощных устройствах.
- Он имеет отличную поддержку.
- Данная реализация обладает максимальным функционалом. В ней предусмотрены такие возможности, как TCP fast open, многопользовательский режим, управление через API, режим перенаправления, туннельный режим, реле UDP, шифры AEAD и поддержка плагинов.

Содержание статьи
- 1 Требования
- 2 Установите сервер Shadowsocks-libev на операционной системе CentOS.
- 3 Запустите Shadowsocks-libev в качестве службы Systemd.
- 4 Конфигурация межсетевого экрана
- 5 Инсталляция и конфигурация клиента Shadowsocks-libev.
- 6 Конфигурация веб-браузера для работы с Socks-прокси.
- 7 Проверка на наличие утечек DNS
- 8 Активирование TCP Fast Open
- 9 Активация TCP BBR
- 10 Заключение
Требования
Для того чтобы воспользоваться данным руководством, вам потребуется виртуальный частный сервер (VPS), который обеспечит доступ к заблокированным сайтам (например, за пределами вашей страны или системы интернет-фильтрации). Я советую рассмотреть VPS от Kamatera с такими характеристиками:
- Бесплатный доступ на протяжении 30 дней.
- Стоимость начинается от 4 долларов в месяц за 1 ГБ оперативной памяти.
- Высокопроизводительный виртуальный сервер на основе KVM.
- Девять дата-центров расположены по всему миру, в том числе в США, Канаде, Великобритании, Германии, Нидерландах, Гонконге и Израиле.
Воспользуйтесь следующим руководством для настройки вашего сервера Linux VPS на платформе Kamatera.
- Как настроить сервер Linux VPS на платформе Kamatera.
Когда у вас будет VPS с Ubuntu 24.04, выполните указания ниже.
Установите сервер Shadowsocks-libev на операционной системе CentOS.
Подключитесь к своему удалённому серверу на базе CentOS с помощью SSH. Shadowsocks-libev отсутствует в репозитории CentOS, поэтому рекомендуется установить его через Snap store. Для этого вам нужно установить демон snapd для загрузки программного обеспечения из Snap store.
sudo dnf install - y epel-release sudo dnf update - y sudo dnf install - y snapd
Запустите и активируйте службу systemd snapd.
sudo systemctl enable --now snapd.service
После этого необходимо установить Shadowsocks-libev.
sudo snap install shadowsocks-libev
После установки вы можете использовать следующую команду для отображения детальной информации о snap shadowsocks-libev.
snap info shadowsocks-libev

В доступе имеется пять команд. Перед тем как применить команду для старта сервера Shadowsocks-libev, необходимо создать файл конфигурации, используя текстовый редактор командной строки, например, Nano. Установите Nano с помощью:
sudo dnf install nano
Сформируйте файл настроек.
sudo nano /var/snap/shadowsocks-libev/common/server-config.json
Вставьте указанные строки в данный файл.
< "server":["[::0]", "0.0.0.0"], "mode":"tcp_and_udp", "server_port":8888, "local_port":1080, "password":"o+4LmywwopNXSUhA7Wf8wg==", "timeout":60, "name_server":"8.8.8.8", "method":"chacha20-ietf-poly1305" >
- server: указывает на адрес, на котором происходит прослушивание. Использование [::0] позволяет прослушивать все доступные IPv6-адреса, в то время как 0.0.0.0 предназначен для прослушивания всех доступных IPv4-адресов.
- Режим: Применять как TCP, так и UDP.
- server_port: укажите порт, который свободен и не занят другими процессами на сервере, например, 8888.
- Локальный порт: чаще всего для SOCKS-прокси используется порт 1080.
- пароль: Для создания надежного случайного пароля используйте следующую команду: openssl rand — base64 16.
- время ожидания: 60 секунд.
- name_server: Shadowsocks предоставляет возможность клиентам использовать определённый DNS-сервер, например, 8.8.8.8. Также можно заменить его на 1.1.1.1, чтобы клиенты подключались к DNS-серверу Cloudflare.
- Метод: укажите алгоритм шифрования. ChaCha20-IETF-Poly1305 представляет собой крайне быстрый и надежный алгоритм.
Сохраните файл и закройте его. (Для сохранения файла в текстовом редакторе Nano нажмите Ctrl+O, затем нажмите Enter для подтверждения. Чтобы выйти, используйте сочетание Ctrl+X.)
Запустите Shadowsocks-libev в качестве службы Systemd.
Существует возможность запустить сервер Shadowsocks-libev вручную, но гораздо практичнее создать службу systemd, чтобы обеспечить его автоматический запуск при загрузке системы. Для этого воспользуйтесь текстовым редактором Nano для создания службы systemd.
sudo nano /etc/systemd/system/shadowsocks-libev.service
Вставьте указанные строки в данный файл.
[Unit] Description=Shadowsocks-Libev Server After=network-online. target [Service] Type=simple ExecStart=/usr/bin/snap run shadowsocks-libev. ss-server - c /var/snap/shadowsocks-libev/common/server-config.json Restart=always RestartSec=2 [Install] WantedBy=multi-user. target
Сохраните изменения в файле и закройте его. После этого запустите службу shadowsocks-libev.
sudo systemctl start shadowsocks-libev.service
Активируйте автоматический запуск при старте системы.
sudo systemctl enable shadowsocks-libev.service
Проверьте его состояние. Убедитесь, что он функционирует.
systemctl status shadowsocks-libev.service

Если вы обнаружили ошибку в файле службы systemd для shadowsocks-libev, исправьте её и перезапустите systemd.
sudo systemctl daemon-reload
После этого можно заново запустить службу shadowsocks-libev.
sudo systemctl restart shadowsocks-libev.service
Если вам встречается следующая ошибка.
Эта система не предоставляет достаточного количества энтропии для быстрого генерации высококачественных случайных чисел. Служба не запустится, пока не будет собрана достаточная энтропия.
Для устранения этой ошибки установите пакет rng-tools.
sudo dnf install rng-tools
sudo rngd - r /dev/urandom
Теперь вы можете активировать сервис Shadowsocks-libev.
Конфигурация межсетевого экрана
Для того чтобы разрешить трафик на TCP и UDP порту, который использует Shadowsocks, необходимо выполнить команду. Например, если выбран порт 8888, используйте следующую команду:
sudo firewall-cmd --permanent --add-port=8888/tcp sudo firewall-cmd --permanent --add-port=8888/udp
После этого необходимо перезапустить firewalld для применения внесенных изменений.
sudo systemctl reload firewalld
Инсталляция и конфигурация клиента Shadowsocks-libev.
Рабочая среда в CentOS
Пакет shadowsocks-libev включает в себя программное обеспечение как для сервера, так и для клиента. Клиентская программа Shadowsocks называется ss-local. Для установки на рабочем столе CentOS применяйте аналогичный метод.
Для начала установите службу snapd.
sudo dnf install - y epel-release sudo dnf update - y sudo dnf install - y snapd
Включите и запустите службу systemd для snapd.
sudo systemctl enable --now snapd.service
Далее установите Shadowsocks-libev через магазин Snap.
sudo snap install shadowsocks-libev
Перед запуском клиента следует создать конфигурационный файл для клиентской части, используя текстовый редактор командной строки, например, Nano. Для установки Nano выполните команду:
sudo dnf install nano
Сгенерируйте конфигурационный файл для клиента.
sudo nano /var/snap/shadowsocks-libev/common/client-config.json
Вставьте указанные строки в данный файл.
{ "server":"ваш-ip-адрес-сервера








