Как поднять свой Shadowsocks сервер?
@johnnykramerShadowsocks — современная, актуальная прокси-технология для обхода блокировок провайдера, интернет-цензуры и всяких брендмауэров. Он шифрует весь трафик между вашим устройством и сервером Shadowsocks, посыпая песком глаза товарища майора, который не сможет отличить его от любого другого зашифрованного трафика.
Эта технология изначально разрабатывалась для обхода блокировок, с чем довольно успешно справляется, при этом она безумно популярна в Китае среди IT-шников и геймеров.
Shadowsocks прекрасно работает на Mac/Linux/Windows/iOS/Android. Одной из его главных фишек, лично для меня, является незаметное переключение между Wi-Fi сетями и мобильным интернетом "на лету". Например, смотрите вы (пока еще) не заблокированный YouTube дома, с домашнего Wi-Fi, будучи подключенным к Shadowsocks. Затем не прекращая воспроизведение можете выйти на улицу, переключившись на мобильный интернет. Подключение к Shadowsocks предательски не прервется, приложение не будет голосить на всю шторку уведомлений о том что попытка переподключения неудачна (как это часто бывает с VPN-клиентами) — ничего просто не произойдет. Трафик попросту продолжит идти через ваш сервер без каких-либо переподключений.
Также, довольно значительным плюсом является возможность bypass некоторые сайты или IP-адреса, для которых вам не нужно быть анонимным.
Вот вам кратенькое руководство по разворачиванию своего собственного сервера Shadowsocks:
- Вам нужен чистый сервер с установленной Ubuntu. Простым и дешевым способом будет аренда самого дешевого дропета на DigitalOcean за $5 в месяц. https://m.do.co/c/bf153cb5265b (По моей реферальной ссылке вы получите $10 на новый аккаунт. Но я не настаиваю)
- После регистрации нужно создать новый дроплет, в минимальной конфигурации, за $5. Регион датацентра выбирайте на свой вкус. Я использую San Francisco — он лучше всего работает в Китае. Ждем запуска дроплета...
- Подключаемся к серверу по SSH через терминал (если у вас Mac/Linux), либо используя программу PuTTy (если у вас Windows):
ssh root@АДРЕС_СЕРВЕРА
- Обновляемся
$ apt-get update
- Устанавливаем пакетный менеджер для Python
$ apt-get install python-pip
- Устанавливаем сам Shadowsocks
$ pip install shadowsocks
- Shadowsocks поддерживает целую кучу методов шифрования. Но рекомендуется использовать CHACHA20, для оптимизации производительности. Следующими командами мы его и установим:
$ apt-get install python-m2crypto $ apt-get install build-essential $ wget https://github.com/jedisct1/libsodium/releases/download/1.0.10/libsodium-1.0.10.tar.gz $ tar xf libsodium-1.0.10.tar.gz && cd libsodium-1.0.10 $ ./configure && make && make install $ ldconfig
- Пора создавать конфигурационный файл. Сделаем это!
$ nano /etc/shadowsocks.json
- Заполняем конфигурационный файл по следующему шаблону.
Каждому пользователю вашего сервера выдается собственная пара ПОРТ:ПАРОЛЬ. Порт указывайте любой свободный (например, 1500-1600. точно хватит).
{ "server":"АДРЕС_СЕРВЕРА", "port_password": { "ПОРТ": "ПАРОЛЬ", "ПОРТ": "ПАРОЛЬ", "ПОРТ": "ПАРОЛЬ" }, "local_port":1080, "timeout":600, "method":"chacha20" }
- Мы готовы к старту сервера! Стартуем...
$ ssserver -c /etc/shadowsocks.json -d start
- Чтобы после перезагрузки сервера Shadowsocks запускался автоматически мы открываем файл
$ nano /etc/rc.local
- И перед 'exit 0' вставляем строку.
/usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.json -d start
- Все! Сервер запущен. Осталось установить и настроить клиенты.
Mac — https://github.com/shadowsocks/ShadowsocksX-NG/
Windows — https://github.com/shadowsocks/shadowsocks-windows/ (.NET Framework)
Linux — https://github.com/shadowsocks/shadowsocks-qt5/
Android — https://github.com/shadowsocks/shadowsocks-android/
iOS — NetShuttle, Waterdrop в App Store.
Большинство клиентов поддерживают как сканирование QR-кода с конфигурацией, так и ручной ввод оной.
С этим все просто:
Host/server — адрес вашего сервера.
Port — индивидуальный порт пользователя.
Password — индивидуальный пароль пользователя.
Method — должен совпадать с указанным на сервере. В нашем случае — CHACHA20.
Local Port — порт локального прокси сервера. Его не нужно менять, если оно вам не нужно.
Вводите эти данные в свой клиент и подключаетесь к вашему собственному Shadowsocks-серверу. Все!
А если вам анонимность нужна не постоянно, то вы можете сделать Snapshot дроплета в личном кабинете DigitalOcean, а сам дроплет удалить. Деньги тратиться не будут, а восстановить дроплет по данному снапшоту будет дело одной минуты. Э — экономия.
На этом все! Подписывайтесь на @johnnykramerlife, а самые каверзные вопросы задавайте мне в личку @johnnykramer. И да прибудет с вами Свободный Интернет!