Shadowsocks - лучшее средство для обеспечения приватности в сети.
hardware aestheticsБесплатный OpenSource прокси, который шифрует соединение между клиентом и сервером практически без потерь скорости.
Подписывайся на канал, чтобы не пропустить другие статьи, новости, обзоры, и другой интересный контент!
Возник почти десять лет назад в Китае и изначально предназначался для обхода Великого китайского файрволла, но позже обрел популярность и в других странах с запретами. Принцип его работы предельно прост: есть клиент, который изображает из себя socks5-прокси, на него система пускает трафик. Клиент отправляет этот трафик на сервер, а сервер уже расшифровывает его и выпускает в интернет.
Основные преимущества Shadowsocks перед обычным VPN:
- Скорость. Она практически не падает. Вырастает только пинг - к счастью, незначительно, поэтому не критично.
- Не нужны никакие kill-switch, при обрыве связи ваш трафик не уйдет по незащищенному каналу.
- Максимально просто и удобно можно настроить доступ в интернет через прокси только отдельным приложениям, или, например, веб-сайтам.
- Нетребовательность к ресурсам.
У самого SS есть тоже неплохие плюсы - например, конфиг занимает всего несколько строк, а клиенту не нужны права администратора (прощай, файрволл на работе).
Я давно пользуюсь данной разработкой, ибо понятно, насколько медленны/ненадёжны обычные бесплатные VPN, которые еще и продают данные. И естественно, разница в удобстве использования также огромна. Проще заплатить несколько долларов, но получить безопасность, скорость и удобство.
Как я уже и говорил, и клиент, и сервер очень нетребовательны к ресурсам. Поэтому в качестве VPS выбираем самый дешевый вариант, который только возможно. 1 ядра и 0.5гб ОЗУ будет достаточно. Я использую Vultr, он предлагает сервера от 5 долларов в месяц (кстати вот рефка, если зарегистрируетесь по ней и привяжете карту, дадут 100$ на месяц) и очень хорошую скорость интернета, но можно найти сервера значительно дешевле. До недавнего времени я пользовался сервером за ~1$ от российского хостера, правда там были проблемы с стабильностью. Еще использовал сервер от ruvds, у них есть варианты от 130 рублей, проблем с стабильностью не возникало, но скорость инета похуже.
Ставить будем версию, написанную на Rust, ведь разработка сместилась в его сторону. Раньше полноценно поддерживалась версия на C, но сейчас там только фиксят баги - нововведений нет.
Подключаемся к серверу по SSH. Для этого можно использовать Putty.
- Обновим пакеты:
apt update && apt upgrade -y
- Перейдем в директорию, и скачаем SS:
mkdir /etc/ss/ && cd /etc/ss/ && wget -q
https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.10.2/shadowsocks-v1.10.2.x86_64-unknown-linux-gnu.tar.xz
(если выйдут новые версии - берем их тут) - Распакуем в текущую папку, сделаем сервер исполняемым и позволим биндится к привилегированным портам:
tar xvf shadowsocks-v1.10.2.x86_64-unknown-linux-gnu.tar.xz && chmod +x /etc/ss/ssserver && setcap cap_net_bind_service=+eip /etc/ss/ssserver
- Создаём конфиг:
nano /etc/ss/config.json
Приводим его к такому виду:
{ "server": "server_ip", "server_port": 8388, "password": "password", "method": "aes-256-gcm", "dns": 1.1.1.1, "fast_open": true, "no_delay": true, "mode": "tcp_and_udp" }
Вместо server_ip вписываем ИП сервера, вместо пароля - соответственно, пароль, который будет использоваться для подключения к серверу. Желательно подлиннее.
В качестве метода шифрования трафика используем aes-256-gcm, из-за аппаратной поддержки шифрования. Можно использовать chacha20-ietf-poly1305 , он тоже достаточно надежный и быстрый, но аппаратно не ускоряется.
- Создаем systemd сервис:
nano /etc/systemd/system/ss.service
[Unit] Description=Shadowsocks After=network.target [Service] Type=simple User=nobody Group=nogroup CapabilityBoundingSet=CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_BIND_SERVICE LimitNOFILE=51200 ExecStart=/etc/ss/ssserver -c /etc/ss/config.json [Install] WantedBy=multi-user.target
Стоит также оптимизировать сервер, как это описано на сайте СС.
И запускаем SS:
systemctl daemon-reload && systemctl restart ss.service && systemctl enable ss.service && systemctl status ss.service
Если все правильно сделали, то сервер запустится -
Скачиваем нужный клиент отсюда и настраиваем данными с конфига.
Чтобы не вводить длинный пароль в телефона, просто отсканируем qr-код.
Чтобы проксировать соединение отдельных программ можно использовать Proxifier. Для отдельных доменов в Chrome я использую ProxySwitchySharp, в Firefox - FoxyProxy. Просто отправляем соединение на 127.0.0.1 и порт, который выбрали в клиенте теневых носков (по стандарту - 1080)
Ну и тесты скорости к одному и тому же серверу, куда ж без них :)
Если нужно что-то добавить - пишите в комментарии, обязательно поправлю.