opened image

Как установить SOCKS5 в Docker

Для обхода многочисленных ограничений, которые могут быть связаны с Вашим местоположением, можно воспользоваться технологией 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:[email protected]:1080 https://ifconfig.io

 


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


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

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


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

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