Установка прокси-сервера Shadowsocks-Libev на VPS с Debian 10

В этом пособии рассматривается процесс установки прокси-сервера Shadowsocks на VPS с Debian 10 (виртуальный частный сервер). Shadowsocks представляет собой легкий, высокоскоростной и безопасный Socks5 прокси, который помогает обходить интернет-цензуру. Также вы узнаете, как настроить клиент Shadowsocks-libev на компьютере с операционной системой Debian 10.

Существует множество версий Shadowsocks, и в данном руководстве рассматривается использование Shadowsocks-libev, так как

  • Программа создана на языке C, отличается высокой скоростью работы даже на слабых устройствах.
  • Он находится в отличном состоянии.
  • Данная реализация обладает максимальной функциональностью. Она поддерживает TCP fast open, многопользовательский режим, API для управления, режим перенаправления, туннелирование, UDP-ретрансляцию, AEAD-шифры и плагины.

Начальные требования

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

  • VPS (виртуальный приватный сервер). Я советую обратить внимание на Vultr. У них есть VPS с KVM виртуализацией и 512 МБ оперативной памяти всего за 2,5 доллара в месяц — отличный выбор для создания личного прокси-сервера.
  • Установите на ваш VPS операционную систему Debian 10.

Установка сервера Shadowsocks-libev на виртуальном сервере с операционной системой Debian 10.

После установки Debian 10 на ваш VPS необходимо войти на сервер через SSH. Shadowsocks-libev доступен в стандартных репозиториях Debian 10, однако его версия устарела. На моем сервере эта старая версия больше не функционирует. Рекомендую установить Shadowsocks-libev из репозитория buster-backports Debian 10, который содержит актуальную версию. Это обеспечит вам получение обновлений безопасности и исправлений ошибок.

Для активации репозитория buster-backports используйте следующую команду.

echo "deb http://deb. debian. org/debian buster-backports main" | sudo tee /etc/apt/sources. list. d/buster-backports. list

После этого обновите локальный индекс пакетов.

sudo apt update

Затем установите Shadowsocks-libev из репозитория buster-backports.

sudo apt - t buster-backports install shadowsocks-libev

Для проверки номера версии выполните следующие действия.

ss-server - v

shadowsocks-libev 3.3.4

Библиотека криптографии libsodium будет установлена вместе с shadowsocks-libev. Это необходимо для использования безопасного и быстрого метода шифрования ChaCha20-Poly1305. После установки Shadowsocks-libev запустится автоматически с конфигурационным файлом по умолчанию. Вы можете проверить его состояние с помощью:

Читайте также:  PostfixAdmin – Настройка виртуальных почтовых ящиков на почтовом сервере Ubuntu

systemctl status shadowsocks-libev

shadowsocks-libev.service - Основной сервис Shadowsocks-libev Загружен: загружен (/lib/systemd/system/shadowsocks-libev.service; включен; предустановка поставщика: включена) Активен:активный (в работе) since Tue 2020-06-23 13:33:46 UTC; 14s ago Docs: man:shadowsocks-libev(8) Main PID: 20316 (ss-server) Tasks: 1 (limit: 558) Memory: 552.0K CGroup: /system. slice/shadowsocks-libev.service └─20316 /usr/bin/ss-server - c /etc/shadowsocks-libev/config.json

Если команда, указанная выше, не завершает выполнение мгновенно, нажмите Q, чтобы вернуть управление терминалом.

Он функционирует, и автозапуск при старте системы активирован. Если он не работает, вы можете запустить его вручную с помощью:

sudo systemctl start shadowsocks-libev

Для активации автозапуска при загрузке следуйте следующим шагам:

sudo systemctl enable shadowsocks-l

Поменяйте 127.0.0.1 на публичный IP-адрес вашего сервера на Debian. Вы можете установить другой номер порта, изменив server_port, но избегайте использования порта 8388. Затем выберите желаемый пароль, который будет использоваться для шифрования трафика. Рекомендуется заменить null на chacha20-ietf-poly1305 в качестве метода шифрования. Вот пример моей настройки.

install-shadowsocks-libev-on-debian-10-server

Сохраните изменения в файле и закройте его. После этого перезапустите Shadowsocks-libev, чтобы обновления были применены.

sudo systemctl restart shadowsocks-libev

Настройка и установка клиента Shadowsocks-libev на десктопе с операционной системой Debian 10.

Пакет shadowsocks-libev включает в себя как серверные, так и клиентские компоненты. Таким образом, для установки Shadowsocks-libev на настольный компьютер с Debian 10 воспользуйтесь описанным ранее способом.

Важно: после установки на сервере Debian 10 Shadowsocks-libev запускается автоматически. Для этого вам потребуется остановить сервер Shadowsocks на настольном ПК с Debian 10.

sudo systemctl stop shadowsocks-libev

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

sudo systemctl disable shadowsocks-libev

Двоичный файл клиента Shadowsocks именуется ss-local. Для него предусмотрен шаблон юнит-файла systemd: /lib/systemd/system/[email protected] . Прежде чем запустить клиента, необходимо подготовить конфигурационный файл для клиентской стороны.

sudo nano /etc/shadowsocks-libev/местоположение-вашего-сервера.json

Вы можете поменять местоположение вашего сервера на что-то вроде SFO или LAX. Скопируйте настройки сервера Shadowsocks-libev в конфигурационный файл клиента, после чего добавьте следующую строку, чтобы указать клиенту прослушивать на 127.0.0.1.

"local_address":"127.0.0.1",

В результате файл настройки клиента будет иметь следующий вид:

< "server":"ваш-ip-адрес-сервераПорт сервера:8388"локальный_адрес":"127.0.0.1", "локальный_порт":1080, "пароль":"focobguph", "timeout":60, "method":"chacha20-ietf-poly1305" >

Сохраните файл и закройте его. После этого мы можем запустить клиент следующим образом:

sudo systemctl start shadowsocks-libev-local@местоположение-вашего-сервера.service

Включите автоматический старт при загрузке системы.

sudo systemctl enable shadowsocks-libev-local@местоположение-вашего-сервера.service

Проверьте его состояние. Убедитесь, что он функционирует правильно.

systemctl status shadowsocks-libev-local@местоположение-вашего-сервера.service

Теперь служба ss-local активно работает на 127.0.0.1:1080 на вашем настольном компьютере с Ubuntu и установила соединение с вашим сервером Shadowsocks.

Настройка браузера для работы через Socks-прокси

Для того чтобы ваша программа могла работать через socks-прокси, она должна поддерживать этот тип прокси. Такие программы, как Firefox Quantum, Google Chrome и Dropbox, предоставляют возможность настройки прокси. Далее я продемонстрирую, как настроить прокси в Firefox и Google Chrome.

Firefox

В Firefox перейдите в Правка > Настройки >Сначала прокрутите вниз и откройте раздел "Настройки" в меню "Сетевой прокси". В появившемся окне выберите ручную настройку прокси. Затем выберите вариант SOCKS v5, так как Shadowsocks использует именно этот протокол. В поле "Хост SOCKS" введите 127.0.0.1, а в поле "Порт" укажите 1080. Не забудьте включить опцию использования прокси для DNS при выборе SOCKS v5. Нажмите "ОК" для сохранения изменений.

shadowsocks-libev-debian-9

Гугл Хром

Версия Google Chrome и Chromium для Linux не предлагает графический интерфейс для настройки прокси, однако вы можете воспользоваться параметрами командной строки, как показано ниже.

google-chrome --proxy-server="socks5://127.0.0.1:1080"

chromium-browser --proxy-server="socks5://127.0.0.1:1080"

Вы можете установить и использовать расширение SwitchOmega для управления настройками прокси, что избавит вас от необходимости вводить команды в терминале.

Проверка на утечку DNS

Откройте сайт dnsleaktest.com. На экране отобразится IP-адрес вашего Shadowsocks сервера, что подтверждает корректную работу прокси.

shadowsocks-libev-debian-9-stretch-install

Кликните на обычный тест и проверьте, чтобы ваш местный провайдер отсутствовал в итогах теста.

shadowsocks-libev-debian-9-server

Активация TCP BBR

TCP BBR — это алгоритм управления перегрузкой в TCP, который способен значительно повысить скорость соединения. Ознакомьтесь с ниже представленным руководством для активации TCP BBR на сервере Debian 10. Нет необходимости включать его на настольной версии Debian 10. Данное руководство в основном разработано для Ubuntu, но также подходит и для Debian.

  • Простой способ повысить скорость сети в Ubuntu — активировать TCP BBR.

Активация TCP Fast Open

Для повышения скорости работы Shadowsocks можно активировать функцию TCP Fast Open. TCP — это протокол, основанный на установлении соединения, что подразумевает обмен данными только после его создания через трехстороннее рукопожатие. Это означает, что в традиционном подходе данные начинают передаваться лишь по завершении этого рукопожатия. TCP Fast Open (TFO) — это технология, позволяющая начать обмен данными до завершения трехстороннего рукопожатия, что может сократить время на один круговой путь (RTT).

Поддержка TCP Fast Open была добавлена в ядро Linux начиная с версии 3.7 и активирована по умолчанию с версии 3.13. Чтобы узнать версию вашего ядра, выполните:

uname - r

Чтобы осуществить проверку конфигурации TCP Fast Open на сервере Debian, выполните следующие действия.

cat /proc/sys/net/ipv4/tcp_fastopen

Она способна возвращать четыре результата.

  • 0 обозначает, что функция выключена.
  • 1 указывает на то, что он активен для исходящего подключения (в роли клиента).
  • 2 указывает на то, что он активен для приема входящих соединений (в роли сервера).
  • 3 указывает на то, что он активен как для исходящих, так и для входящих подключений.

Все мои серверы на Debian вернули значение 1 после выполнения указанной команды. Мы стремимся установить tcp_fastopen на 3 на нашем сервере. Для этого необходимо внести изменения в файл конфигурации sysctl.

sudo nano /etc/sysctl.conf

После этого добавьте следующую строку в конец файла.

net. ipv4.tcp_fastopen=3

Обновите настройки sysctl, чтобы изменения начали действовать.

sudo sysctl - p

Затем необходимо активировать TCP Fast Open в конфигурационном файле Shadowsocks.

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

Вставьте следующую строку.

"fast_open": true

Таким образом, конфигурационный файл вашего сервера Shadowsocks будет иметь следующий вид:

< "server":"your-server-ip-addressПорт сервера:8388"локальный_порт": 1080, "пароль": "focobguph", "timeout":60, "method":"chacha20-ietf-poly1305", "fast_open": true >

Учтите, что в последней строке конфигурации отсутствует запятая. Сохраните изменения и закройте файл, после чего перезапустите сервер Shadowsocks.

sudo systemctl restart shadowsocks-libev

Убедитесь, что он функционирует корректно. (Ошибки в конфигурационном файле могут вызвать проблемы в его работе.)