Вводятся постоянные блокировки, и может возникнуть потребность в бюджетном способе их обхода, например, использование socks5. Как это сделать? Рассказываем в нашем материале.
Если у вас нет своей VDS
Берем, регистрируемся на digitalocean.com, за регистрацию по реферальной ссылке получаем 10$.
Простой способ поднятия VPN
- Создайте аккаунт на Digital Ocean и добавьте свои платежные данные.
- Заходим сюда.
- Нажимаем кнопку Digital Ocean.
- Скрипт собирает droplet c vpn после установки отдаёт настройки с vpn и все, пользуетесь на здоровье.
И того, всего нужно сделать 3 клика.
Правда это будет стоить $5 в месяц, но можно легко разделить на друзей.
Если кто тестировал VPN в три клика на DigitalOcean и не получалось подключить клиента с Win 10 и в «диспетчере событий» (eventvwr.msc) появляется error 720, то в «Диспетчере устройств» (devmgmt.msc) удалите все сетевые адаптеры начинающиеся с «WAN Miniport» и обновите конфигурацию оборудования. После всё будет работать.
Не очень простой способ поднятия socks5
- Выберете самый дешевый тариф как описано ниже (у вас будут списывать деньги за час, а не сразу за весь месяц)
- Создаем новый droplet любой конфигурации, минимальный стоит 5$/месяц, трафик 1TB, чуть дороже 10$/месяц — трафик 2TB, 20$ — 4TB. Операционная система ubuntu 16.04.4 x64 подойдет идеально.
Просто создайте дроплет. Меню может изменится в будущем, но все будет понятно
Выберете Ubuntu 16.04.
Выберите самый дешевый тариф. Провайдеры типа Vulture или Hetzner дешевле, но у DO отличнейший сервис
Выберите регион, который ближе всего к вашему
Вы можете заметить, что у вас нет ssh ключа в вашем аккаунте. Если так, то вот чуть про ssh ключи и как их настроить
Если вы пользователь Windows — не беспокойтесь, я расскажу как легко работать с ssh ключами в Windows.
Доступ до вашего VDS
Если вы Linux или Mac пользователь, то вы скорее всего уже знаете как сгенерировать ssh ключи и как использовать их. В этом случае, просто загрузите приватный ключ на ваш аккаунт Digital Ocean и проследуйте дальше.
Также — включение двухфакторной аутентификации добавит безопасности и избавит от головной боли в случае чего.
Это меню находит в разделе Settings -> Security tab
Загрузка вашего ключа это просто копирование и вставка вашего публичного ключа
Есть один момент — DO ожидает формат вашего ключа как если бы он был сгенерирован Linux ssh генератором. Это выглядит вот так:
ssh-rsa AAAAB3NzaC ...7QpNuybOgF root@proglib-ubuntu
Теперь часть для windows пользователей
Я лично использую Putty и PuttyGen. SSH ключи — это базовый метод контроля Linux серверов и защищенного доступа. Можно прочитать про это на википедии. Если вы Windows пользователь ssh консоль это тоже самое как и cmd.exe.
Не беспокойтесь об этом, на самом деле это довольно просто.
Но если вы сгенерировали ключи через Putty, ваш публичный ключ будет выглядеть как то так и в таком виде он не будет работать с Ubuntu:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20180413"
AAAAB3NzaC1yc2EAAAABJQAAAQEAuBflEQeTW9xfNI8N3krfFzxo8iU/NV/3cgxR
d2dkWZwYTaPaJsAoJFPtWhmsRuFuw7naZZOo/VFiqCuuYGaQcYRLrDqvfFjAusJg
B1ZK2YY57kz/ulzO9LqiVta+Fql4jL5244z9FNHF10YXbBZsmYQikAWJCItCxvZh
goY74Sfa5lPRfGojfC0xwayObJjqRcI9PS7z66ixRqO05vPMBekt/7fKoXQ+pUCP
LOVeH8AAWdaRWkvT6waCFSmjVBwfkHoghtR9pp/PZihAxpS5dM8H7AJXlvLEhNSp
6smFlkkz+XU3d3Z2FqSLV9K6pBNlNCRn+G/60xVtTqGDAsdPNw==
---- END SSH2 PUBLIC KEY ----
Убедиться, что ваш ключ будет работать с DO можно следуя этим указаниям
- Создать ключ используя Linux как описано здесь. Вы будете использовать этот ключ на сервере DO.
- Сохраните новые созданные публичный и приватные ключи где нибудь на своем компьютере
- Загрузите приватный ключ в PuttyGen через Conversion -> Import Key
- Затем нажмите "save private key" — вы будете использовать этот ключ с Putty позже
Конвертирование ключа в PuttyGen
Если вы не имеет доступа до Linux консоли, вы можете сгенерировать ключи используя следующие действия**:
- Создайте дроплет в DO, сбросьте root пароль (смотрите картинку), откройте в онлайн консоли. Создайте ключи там и используйте команду cat для вывода ключа
- Создайте дроплет в DO, сбросьте root пароль, откройте Putty и введите логин, пароль
- В обоих случаях — будет проще создать новый дроплет после того, как нужные ключи будут установлены
Это меню позволяет сбросить пароли и запустить онлайн консоль
Наконец-то получить доступ до своего дроплета используя Putty и ключи
- Создайте новое соединение в Putty
- Введите ваш IP адрес и порт (обычно 22)
- Введите имя для вашего соединения и нажмите сохранить
- Пойдите в data -> Auto-login username и введите root
- Пойдите в data -> SSH -> Auth и выберет приватный ключ, который вы сохранили с помощью PuttyGen;
- Не забудьте вернуться обратно в сессию после всех настроек
Настройка вашего VDS и прокси сервера
Теперь у вас есть ваш собственный VDS и ssh терминал с root доступом до него. Отлично!
Также запомните, если вы что то зафейлите, то можно просто удалить дроплет и начать заново, создав новый. Также после того как вы закончите, вы можете использовать снэпшоты для сохранения прогресса.
Поднятие socks5 через Docker
Выбираем при создании Droplet в разделе One-click Apps образ Docker:
Логинимся на сервер через ssh и загружаем готовый Docker-образ и запускаем его:
docker pull dijedodol/simple-socks5-server
docker run -it --rm -p 1080:1080 -e 'SSS_USERNAME=your_username' -e 'SSS_PASSWORD=your_password' dijedodol/simple-socks5-server
Таким образом, вы создали прокси сервер с логином your_username и паролем your_password c портом 1080. См. секцию Использование socks5 для добавления настроек в приложение Telegram.
Если хочется сделать свой велосипед
После создания авторизуемся как root, используя ssh и выполняем следующие команды (должны работать):
apt-get update apt-get upgrade apt-get install build-essential libwrap0-dev libpam0g-dev libkrb5-dev libsasl2-dev wget https://www.inet.no/dante/files/dante-1.4.1.tar.gz tar -xvf dante-1.4.1.tar.gz cd dante-1.4.1 apt-get install libwrap0 libwrap0-dev apt-get install gcc make mkdir /home/dante ./configure --prefix=/home/dante make make install echo ' logoutput: syslog /var/log/danted.log internal: eth0 port = 1080 external: eth0 socksmethod: username user.privileged: root user.unprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }' > /home/dante/danted.conf # не забудьте создать пользователя sudo useradd --shell /usr/sbin/nologin -m soksuser && sudo passwd soksuser # нужно добавить ip, login, password, port (в вашем случае 1080) в ваш клиент socks5 # установливаем ufw sudo apt-get install ufw sudo ufw status # https://wiki.dieg.info/socks sudo ufw allow ssh sudo ufw allow proto tcp from any to any port 1080 sudo ufw status numbered sudo ufw enable # нам нужно удостовериться, что сервис запустится при перезагрузке sudo apt-get install cron crontab -e # вставьте в crontab # взято из anacron SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin MAILTO=your_email@some_mail.com # # запуск сервера как демона /home/dante/sbin/sockd -f /home/dante/danted.conf -D
Можно из под ssh это сделать используя vim, либо подключитесь по ftp/sftp и отредактруйте файл текстовым редактором
Важный момент — юзера стоит создавать с флагом --shell /usr/sbin/nologin
Таким образом, этот юзер не сможет шариться по VPS через ssh. Особенно учитывая что пасс от него летает по сети в открытом виде.
Теперь создаем пользователя для прокси
sudo useradd --shell /usr/sbin/nologin -m sockduser && sudo passwd sockduser
вводим ему пароль дважды и запоминаем
Использование socks5
Hostname это IP адрес вашего дроплета. Порт из конфига данте. Логин и пароль, тот который вы выбрали
Или например, можно использовать браузер Firefox, который из коробки умеет это, в отличии от Chrome и других браузеров на основе Chromium, которые не поддерживают прокси аутентификацию. А еще можно установить в него дополнительные расширения (тысячи их), которые позволять легко управлять прокси для разных сайтов.
Поднимаем сервера, делимся с друзьями. Учтите, что чем больше друзей использует ваш прокси-сервер, тем выше расход трафика.
Комментарии