ВОЙТИ
Для обхода многочисленных ограничений, которые могут быть связаны с Вашим местоположением, можно воспользоваться технологией SOCKS. Что бы убедиться, что никто не следит за вашим трафиком, можно воспользоваться Wireguard VPN.

Но иногда, VPN требует установить специальное клиентское программное обеспечение на персональный компьютер или на смартфон, на что у Вас может не быть достаточно прав. В таком случае можно воспользоваться бесплатной альтернативой прокси-туннель SOCKS 5.

В этой статье мы рассмотрим как его установить в Docker контейнере, используя так же docker-compose.

Установим Docker. 
Но для начала, нужно обновить пакеты ОС. 

apt update
Установим необходимые пакеты, и добавим новый репозиторий:

apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Обновим пакеты с новым репозиторием:

apt update
Теперь установим сам Docker.

apt-get install docker-ce docker-ce-cli containerd.io
Проверим версию:

docker --version

Проверим статус:

systemctl status docker


Если он не запустился, то запускаем:

systemctl start docker

И добавляем в автозапуск.

systemctl enable docker



Установим Docker-Compose

Для данного проекта нам будет достаточно версии 1.25. 

curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Устанавливаем права на запуск. 

chmod +x /usr/local/bin/docker-compose
Проверяем как установился Docker-Compose:

docker-compose --version


Добавляем пользователя Linux в группу docker:

usermod -aG docker $USER

Создадим файл *.yaml для Docker-Compose.

Что бы ориентироваться в будущем в том что у нас установлено, создадим отдельную папку для данного проекта в каталоге /home и перейдем в него.

mkdir /home/socks5 && cd /home/socks5

Вы так же можете использовать другую директорию  для размещения этого и других проектов. 

Воспользуемся репозиторием для создания файла docker-compose.yaml по ссылке https://hub.docker.com/r/xkuma/socks5

Создаем файл docker-compose.yaml или docker-compose.yml,

vim docker-compose.yaml

И добавляем в него следующий код:

version: "2.1"
services:
  socks5:
    image: olebedev/socks5
    container_name: socks5_test
    environment:
      - PROXY_USER=your_user
      - PROXY_PASSWORD=your_pass
    ports:
      - 1080:1080/tcp
    restart: always

Где:

container_name: название Вашего контейнера;
PROXY_USER: пользователь;
PROXY_PASSWORD: пароль к пользователю
1080:1080/tcp: порт на котором будет работать SOCKS.

Запускаем скрипт (для этого нужно находиться в директории где создан наш файл. В данном случае это /home/socks5/):

docker-compose up -d 

Дожидаемся скачивания образов, и развертывания.
Проверяем:

docker-compose ps

или 

docker ps


Так же это можно сделать одной командой без использования docker compose.

docker run -d -p 1080:1080 -e PROXY_USER=your_user -e PROXY_PASSWORD=your_pass -e PROXY_SERVER=0.0.0.0:1080 xkuma/socks5

Теперь для подключения можете использовать логин и пароль с портом и IP Вашего сервера. 

Что бы проверить и убедиться все ли верно настроено, можем воспользоваться ниже приведенной командой на другом сервере:

curl --socks5 your_user:your_pass@192.168.0.100:1080 https://ifconfig.io

Если все верно настроено, то в ответ мы получим IP сервера на котором размещен наш SOCKS5.


Например, для подключения SOCKS5 в Telegram вводим:

Сервер/Хост: IP:1080
Пользователь: your_user
Пароль: your_pass


В браузерах, Google Chrome или Firefox можете воспользоваться дополнительными плагинами для подключения данного SOCKS5.

Безопасного Вам серфинга.