root@Shadowsocks[VPN]: Ваш собственный сервер для свободы в сети

В современном мире, когда вопросы приватности и доступа к свободному интернету становятся все более актуальными, использование собственного сервера для обхода ограничений и защиты данных является важным инструментом. В этой статье мы рассмотрим установку и настройку Shadowsocks на собственном сервере VPS/VDS, что позволит вам создать свой собственный VPN-сервер и обеспечить безопасность и анонимность в сети который будет устойчив к современным блокировкам.
Мы применим способ так называемый - "китайский метод" обхода цензуры. Когда речь идет о пользовании интернетом в Российской Федерации, где все больше возникает проблем с доступом к определенным сайтам и сервисам, воспользоваться китайскими методами обхода цензуры может оказаться эффективным решением. Как известно, Китай использует мощные механизмы фильтрации, известные как "Great Firewall" (Великая китайский фаерволл), чтобы контролировать доступ к интернету в своей стране. И учитывая как наши власти хотят устроить тоже самое для своих граждан, то и бороться надо так же китайскими методами.
Что из себя представляет Shadowsocks?
Shadowsocks - это прокси-сервер, разработанный с целью обеспечения безопасного и приватного доступа к интернету. Он позволяет обходить ограничения и цензуру, а также защищать пользовательские данные от нежелательного прослушивания.Shadowsocks является протоколом, который обладает устойчивостью к блокировкам и поэтому становится все более популярной альтернативой обычным VPN-сервисам.
Вот несколько причин, почему Shadowsocks обладает этими преимуществами:
- Маскировка трафика: Shadowsocks способен маскировать трафик, делая его похожим на обычный HTTPS-трафик. Это усложняет обнаружение и блокировку со стороны цензурных органов или интернет-провайдеров. В отличие от обычных VPN-соединений, которые могут быть более заметными и легче блокируемыми, Shadowsocks представляет собой эффективное средство обхода цензуры.
- Гибкость протокола: Shadowsocks позволяет использовать различные прокси-серверы и поддерживает разные методы шифрования, что делает его более адаптивным к различным ситуациям. Это позволяет пользователям настраивать и адаптировать свои соединения в соответствии с требованиями цензуры или блокировок.
- Открытый и распространенный протокол: Shadowsocks является открытым протоколом, что означает, что его код доступен для проверки и разработки сообществом. Это способствует его дальнейшему улучшению и развитию. Кроме того, он имеет широкую популярность и поддержку в сообществе пользователей, что обеспечивает наличие разнообразных ресурсов и инструкций для настройки и использования.
- Эффективность и производительность: Shadowsocks обладает эффективным протоколом передачи данных, который обеспечивает высокую скорость и стабильное соединение. Это делает его привлекательным для пользователей, которым важна производительность при использовании прокси-серверов или VPN.
Но напомню, что данный VPN не даст 100% безопасности и анонимности для работы в дарке, это лишь как один из слоёв барьера для работы в сети. Отличный способ обойти цензуру и блокировки. Для анонимности и безопасности вам необходимо сочетать VPN[Shadowsocks] + TOR как минимум.
И так основные вопросы цели данной темы:
Как купить и где, какой сервер?
Как установить и настроить Shadowsocks на собственном сервере?
Как использовать Shadowsocks для обхода ограничений и защиты данных?
Цель этой статьи - предоставить вам пошаговое руководство по установке и настройке Shadowsocks на собственном сервере VPS/VDS, чтобы вы могли создать свой собственный VPN-сервер и наслаждаться свободой и безопасностью в сети не переплачивая сервисам x5 цены, и не бояться блокировок.
Описание методов:
- Шаг 1: Приобретение и настройка сервера VPS/VDS
- Шаг 2: Установка и настройка Shadowsocks
- Шаг 3: Создание конфигурационных файлов и ключей
- Шаг 4: Запуск Shadowsocks сервера
- Шаг 5: Настройка клиентских устройств для подключения к Shadowsocks серверу
Приобретение и настройка собственного сервера
Переходим на justhost.ruПочему данный хостинг? Поддерживает оплату криптовалютой и исправно работает, быстрая тех поддержка, не кусающиеся цены

При переходе в раздел VPS, вам предоставляется возможность выбрать тарифный план, и здесь имеется множество интересных вариантов. Например, вы можете приобрести собственный сервер всего за 70 рублей в месяц или выбрать за 850+ рублей на год, хотя у такого плана может быть ограничение скорости до 10 Мбит/с.
Моя рекомендация - приобрести тарифный план HDD VPS Start на 12 месяцев всего за 2496 ₽. Этот план обладает преимуществами, которые стоит учесть в плане скорости и возможности продления и подключения дополнительных функций.

Если вас привлекает возможность провести предварительное тестирование и ограничение скорости до 10 Мбит/с вас не смущает, то данный вариант может быть идеальным для вас.

При продолжении процесса, вы окажетесь на следующей панели, где нужно будет выбрать операционную систему (ОС). В данном случае, рекомендуется выбрать Debian.

В разделе выбора страны провайдера интернет-подключения для IP, вам предлагаю выбрать один из следующих вариантов.

Далее вам потребуется зарегистрироваться, подтвердить свой адрес электронной почты. Рекомендуется использовать адрес электронной почты от ProtonMail для регистрации.

Далее появится окно оплаты для вашего сервера. Рекомендуется использовать оплату через Bitcoin. Обратите внимание, что оплата через Bitcoin доступна для сумм выше 300 рублей.

После успешной оплаты вы получите на вашу зарегистрированную почту письмо с данными для авторизации и входа на ваш сервер. Проверьте свою почту и найдите письмо с инструкциями по входу на сервер.

Далее мы будем использовать SSH для подключения к серверу что является безопасным и удобным способом. Можно так же через Proxmox который предоставляет удобный интерфейс для управления сервером. Вы можете выбрать наиболее подходящий для вас вариант.
После получения данных для авторизации из письма, вам потребуется скопировать и вставить команды для выполнения на сервере. Далее ничего сложного, всё что вам надо копировать команды и вставлять, а я буду описывать каждые команды и что они делают.
Регистрация доменного имени NoIP [необходимо будет далее в установке]
Переходим на сайт noip.com

Регистрируйтесь на выбранном сервисе, заполняйте необходимые поля и создавайте учетную запись.
После завершения регистрации и получения учетных данных, рекомендуется сохранить их в KeePassXC. Это обеспечит безопасность и предотвратит потерю ваших авторизационных данных.

Выберите подходящее имя в третьей колонке, которое отражает название вашего сервера. После выбора имени, вы сможете использовать его во всех процессах и ссылках вместо IP-адреса, что сделает работу более удобной и позволит легче запомнить адрес вашего сервера. Пример: myserver.ddns.net

Теперь, вам необходимо подтвердить свой электронный адрес, и вы можете закрыть страницу регистрации.
Настройка VPS сервера

Для подключения к серверу через SSH выполните следующие шаги:
Откройте терминал или используйте PuTTY для Windows.
Bash:
ssh root@[IP]
Подтвердите запрос на fingerprint, введя "yes".
Введите пароль.
Измените пароль на сервере с помощью команды
Bash:
passwd
Настройка NoIP на сервере
Перейдите в директорию
Bash:
cd /usr/local/src
Bash:
wget http://www.noip.com/client/linux/noip-duc-linux.tar.gz
Bash:
tar xf noip-duc-linux.tar.gz
Bash:
cd noip-2.1.9-1/
make install
Запускаем NoIP
Bash:
/usr/local/bin/noip2
Устанавливаем необходимые репозитории, Docker, сертификаты и NGINX
Установим необходимые репозитории сертификатов HTTPS [понадобиться потом]
Bash:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
Добавляем GPG ключ для скачки репозиториев Docker
Bash:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
Добавляем репозитории Docker для скачивания
Bash:
echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] [URL]https://download.docker.com/linux/debian[/URL] \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Скачиваем Docker
Bash:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Изолированность и портативность: Docker использует контейнеризацию, что позволяет упаковывать приложения и их зависимости в изолированные контейнеры. Контейнеры предоставляют стабильное и независимое окружение для запуска приложений, что обеспечивает их портативность. Приложения, упакованные в контейнеры Docker, могут быть запущены на разных операционных системах и хостах без необходимости перенастройки или изменения кода.
- Упрощение развертывания и масштабирования: Docker позволяет легко и быстро развертывать приложения и масштабировать их в зависимости от потребностей. Контейнеры Docker могут быть запущены и остановлены в считанные секунды, что облегчает управление инфраструктурой и позволяет быстро отвечать на изменения нагрузки.
- Эффективное использование ресурсов: Docker обеспечивает оптимальное использование ресурсов хостовой системы. Контейнеры используют общий ядро операционной системы, что позволяет запускать несколько контейнеров на одном хосте без значительного увеличения нагрузки на систему.
- Упрощенное взаимодействие между компонентами: Docker предоставляет инструменты для легкой настройки и оркестрации контейнеров. Он позволяет легко настраивать сетевые связи между контейнерами и управлять их взаимодействием. Это облегчает разработку и развертывание микросервисных архитектур, где различные компоненты приложения работают в отдельных контейнерах и взаимодействуют друг с другом.
- Быстрая и простая разработка: Docker упрощает процесс разработки приложений, позволяя разработчикам работать в изолированной среде. Контейнеры Docker обеспечивают повторяемость и надежность среды разработки, что ускоряет процесс создания и тестирования приложений.
- Большое сообщество и экосистема: Docker имеет широкое сообщество пользователей и разработчиков, которые активно вносят свой вклад в развитие и поддержку платформы. Это позволяет получить доступ к множеству готовых образов контейнеров, инструментов и ресурсов, что упрощает работу с Docker и повышает его эффективность.
Установка удобного менеджера управления Docker контейнеров - Portainer
Bash:
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer
- Удобный веб-интерфейс: Portainer предоставляет интуитивно понятный и простой веб-интерфейс, который позволяет управлять контейнерами и образами Docker с легкостью. Нет необходимости использовать сложные команды командной строки, все операции можно выполнить с помощью графического интерфейса.
- Управление множеством хостов: Portainer позволяет управлять несколькими хостами Docker из одного централизованного интерфейса. Вы можете добавлять и управлять контейнерами на разных хостах с легкостью, что делает управление контейнерами в распределенной среде гораздо более удобным.
- Визуализация контейнеров и сервисов: Portainer предоставляет графическую визуализацию контейнеров и сервисов Docker, что позволяет легко отслеживать и контролировать работу ваших приложений в контейнерах. Вы можете просматривать информацию о контейнерах, их состоянии, ресурсах и журналах событий.
- Управление образами и ресурсами: Portainer позволяет управлять образами Docker, включая их загрузку, создание и удаление. Вы можете легко управлять версиями образов и обновлять их при необходимости. Кроме того, Portainer предоставляет возможность управления ресурсами контейнеров, такими как CPU, память и сеть.
- Аутентификация и авторизация: Portainer предоставляет возможность настройки аутентификации и авторизации, что обеспечивает безопасный доступ к интерфейсу управления. Вы можете настроить различные уровни доступа для пользователей и групп, ограничивая права доступа к определенным ресурсам.
Далее для работы нам необходимо установить NGINX
Bash:
sudo apt install nginx
Bash:
sudo apt install certbot python3-certbot-nginx
Bash:
sudo certbot --nginx
Устанавливаем Shadowsocks-libev
Bash:
docker pull shadowsocks/shadowsocks-libev
Bash:
docker run -e PASSWORD=[PASSWORD] -p 8888:8388 -p 8888:8388/udp -v /path/to/config:/etc/shadowsocks-libev/config.json -d shadowsocks/shadowsocks-libev
Разумеется, вы можете выбрать порты самостоятельно в соответствии с вашими потребностями. Однако, чтобы облегчить понимание процесса установки и работы, я рекомендую использовать как у меня.
Устанавливаем менеджер Shadowsocks подключений и web интерфейс
Bash:
bash <(curl -Ls [URL]https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh[/URL])
Подтверждаем Y, далее указываем Username для входа в веб интерфейс, пароль для него и порт, порт указывайте 2053
Можете отдельно ознакомиться с github этим проектом
https://github.com/MHSanaei/3x-ui
Проверяем работу
Bash:
x-ui status

Отредактируем наш Nginx для контроля с веб интерефейсов по HTTPS
Bash:
sudo nano /etc/nginx/sites-available/default
Bash:
server {
listen 80;
server_name [NoIP_hostname];
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl;
server_name [NoIP_hostname];
ssl_certificate /etc/letsencrypt/live/[NoIP_hostname]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[NoIP_hostname]/privkey.pem;
location /ss_panel/ {
proxy_pass [URL]http://localhost:2053/server_ss/;[/URL]
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /doc_panel/ {
proxy_pass [URL]http://localhost:9000/;[/URL]
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
#location /test/ {
# proxy_pass http://localhost:[port]/;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
# }
}
Где # шаблон для добавления HTTPS страниц докер контейнеров и прочего, на потом, мало ли что вы ещё захотите загрузить на свой сервер
Установка на этом всё, осталось лишь настройка
Ctrl+X ,а затем Y подтверждаем сохранение
Переходим на сайт http://[NoIP_hostname]:2053

Авторизуемся , данные которые указывали в
Bash:
bash <(curl -Ls https://raw.githubusercontent.com/mhsanaei/3x-ui/master/install.sh)

Далее в настройках меняем на это, сохраняем, перезапускаем панель

Теперь можете заходить через https://[NoIP_hostname]/ss_panel
https://[NoIP_hostname]/ss_panel - Панель управления Shadowsocks подключениями со современными протоколами шифрования
https://[NoIP_hostname]/doc_panel - Панель управления Docker контейнерами

Создаём подключения


Вот пример
Данный протокол является современным, так что не все клиенты его поддерживают, поэтому мы создавали ещё shadowsocks-libev где старый протокол и подходит на 90% клиентов подключения.
Все протоколы и настройки которые можно создать, поддерживаемые клиенты и чем они отличаются расскажу в случае надобности в следующей статье.
Подключение к нашим Shadowsocks:
Linux:
Nekoray
https://github.com/MatsuriDayo/nekoray/releases/
Данным клиентом удобно подключиться к Shadowsocks, но не все протоколы он поддерживает, пример добавления сервера

Данный клиент предназначен для локального проксирования трафика. Если вы хотите использовать Shadowsocks для передачи данных, вам необходимо настроить приложения или систему на использование локального прокси-сервера на адресе 127.0.0.1 с портом 2080 (порт может отличаться, но в интерфейсе будет указан активный порт).
Если вам удобнее использовать Shadowsocks в качестве VPN, я рекомендую скачать клиент Outline. Outline - это удобный клиент, поддерживающий множество платформ.
getoutline.org
Чтобы подключиться к Shadowsocks через Outline, вам потребуется вставить конфигурационную ссылку SS в клиент. Эту ссылку можно экспортировать практически из любого другого клиента. Например, в клиенте nekoray вы можете нажать на панели сверху на Sever - Share - Copy Links of selected. Затем просто вставьте эту ссылку в клиент Outline и подключитесь к серверу.
Таким образом, вы сможете настроить и использовать Shadowsocks с удобством и без лишних сложностей.
Для Android
Скачиваем с Play Маркета или F-Droid
Shadowsocks
Outline
Для IOS
Potatso
Outline
Для Windows
Outline
Shadowsocks
В результате успешной установки и настройки Shadowsocks на сервере VPS/VDS вы сможете создать свой собственный VPN-сервер. Это позволит вам обходить ограничения, защищать свои данные и обеспечивать свободный доступ в интернет. Пользуясь этим руководством, вы сможете создать надежную и безопасную сетевую инфраструктуру, которая сохранит вашу приватность и свободу в сети. Так же удобно модернизировать со многим данную схему, вам и в управление docker контейнеры, и веб интерфейс для различных протоколов shadowsocks
В данной статье были представлены основные шаги установки и настройки нескольких инструментов для управления сервером и контейнеризации приложений. Установка и настройка NoIP позволяют настроить Hostname для обеспечения доступа к серверу без фиксированного ip. Docker предоставляет возможность развертывания и управления контейнерами, обеспечивая изолированность, портативность и упрощенное масштабирование. Portainer представляет собой удобный веб-интерфейс для управления Docker, облегчающий работу с контейнерами и образами. NGINX и сертификаты HTTPS обеспечивают безопасное соединение и поддержку шифрования данных. Shadowsocks-libev создает защищенное соединение для обеспечения безопасного обмена данными. Все эти инструменты в совокупности облегчают управление сервером и контейнеризацией приложений, обеспечивая удобный веб-интерфейс, визуализацию, управление ресурсами и аутентификацию.
В результате, установка и настройка этих инструментов позволяет с легкостью управлять сервером, развертывать и масштабировать приложения в контейнерах, обеспечивать безопасное соединение и иметь графический интерфейс для управления всем этим функционалом.