В этой статье я расскажу как за $5 в месяц поднять свой собственный VPN, Proxy для Telegram (и не только для Telegram, это просто обычный sock5 proxy) плюс расшаривание скриншотов на своем сервере.

Я помню, когда использовал MacOS примерно в 2008 году, была такая программа, которая называлась Droplr. Она позволяла нажать хоткей, выделить какую-то область экрана и этот этот скриншот загружался на сервис droplr, а ссылка с картинкой сохранялась в буфер.

Это было очень удобно.

Потом этот этот сервис стал платным и я перестал пользоваться MacOS как основной OS. И мне захотелось такой же функционал. Его не было. Пришлось написать простой скриптик самому.

Сейчас есть различные аналоги. Но мне они не нравятся. У одних есть лишний функционал, которым я не пользуюсь. Другие бесплатные, но с рекламой. Такой функционал есть и у дропбокса, но там тоже свои недостатки.

Создаем свой дроплет

Я буду использовать хостинг от DigitalOcean, так как на мой взгляд он самый удобный.

Если вы еще не зарегистрированы, то можете воспользоваться моей рефералкой https://m.do.co/c/41bb5762da9a , вы получите $100 на аккаунт, а я $25.

Создаем там самый дешевый дроплет за $5

Идем в Networking и привязываем любой наш домен  к созданному дроплету.

Заходим на созданный дроплет по SSH.

ssh root@134.209.238.252

Обновляемся

sudo apt-get update

sudo apt-get upgrade

Screenshot Sharing

Устанавливаем Nginx

sudo atp install nginx

Создаем папку в /var/www с названием нашего домена в моем случае это johekb.com

cd /var/www

mkdir johekb.com

cd johekb.com

mkdir html

cd html

Теперь идем в

cd /etc/nginx/sites-enabled

И создадим там файл

vim johekb.com

Со следующим содержанием

server {
        listen 80;
        listen [::]:80;

    root /var/www/johekb.com/html;
    index index.html index.htm index.nginx-debian.html;

    server_name johekb.com www.johekb.com;

    location / {
            try_files $uri $uri/ =404;
    }
}

Перезагрузимся чтобы посмотреть, что nginx нормально загружается

sudo reboot

Теперь сделаем немного локальных изменений.

Сначала берем скрипт из моего гитхаба и меняем в нем три вхождения в которых есть URL.

Так же устанавливаем весь необходимый софт. Нам надо установить imagemagick.

fileDate=`date +%Y-%m-%d-%H-%M-%S`
machineName=`hostname`
fileName=".png"
FILENAME=$fileDate"-"$machineName$fileName
SHORT=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 7 | head -n 1)
FILENAMESHORT=$SHORT$fileName
dst="johekb.com" #your dst. server
dstPath="html"
dstAbs="/var/www/johekb.com/"
user="root"

import $FILENAMESHORT
scp -C $FILENAMESHORT $user@$dst:$dstAbs$dstPath #send screenshot through SCP(with compression enabled for low-bandwith connection) 

echo "http://johekb.com/"$FILENAMESHORT | xclip -i -selection clipboard #copy screenshot link to your clipboard

rm $FILENAMESHORT

Сохраняем этот скрипт с названием screenshot.sh, даем ему права на выполнение и запускаем

./screenshot.sh

Должен измениться вид курсора, выделяем область и нажимаем.

Мы увидим что у нас в буфере оказался текст.

Можем вставить эту ссылку в браузер и увидим наш скриншот.

File Sharing

Так же вы можете шарить и файлы

У меня есть скрипт, который запускается из Ranger, когда я нажимаю кнопку x выделенный файл срзу же закачивается на мой сервер и ссылка на него копируетс я в буфер

Скрипт:

dst="devpew.me"
dstPath="html"
dstAbs="/var/www/devpew.me/"
user="root"

FILENAMESHORT=$1
scp -C $FILENAMESHORT $user@$dst:$dstAbs$dstPath

echo "http://devpew.me/"$FILENAMESHORT | xclip -i -selection clipboard

Telegram Proxy

Теперь на этот же сервер поставим прокси для телеграма, не простаивать же нашему серверу пока мы не делаем скриншоты.

Ставим Docker через Snap:

snap install docker

Ставим simple-socks5-server от https://github.com/dijedodol/simple-socks5-server через докер:

docker run -it --rm -p 1080:1080 -e 'SSS_USERNAME=ouruser' -e 'SSS_PASSWORD=ourpass' dijedodol/simple-socks5-server

Теперь идем в телеграм и выбираем подключиться через socks5 прокси. Вводим все данные и мы должны увидеть статус "Online"

VPN

Теперь мы еще можем поставить сюда и VPN

Вводим:

CID=$(docker run -d --privileged -p 1194:1194/udp -p 443:443/tcp jpetazzo/dockvpn)

Потом:

docker run -t -i -p 8080:8080 --volumes-from $CID jpetazzo/dockvpn serveconfig

После этого в консоли мы увидем ссылку. Нам нужно будет перейти по ней и у нас сразу же начнется скачивание файла. Этот файл будет со случайным именем. Скачиваем его и переименуем в vpn.ovpn

Готово.

Теперь если вы пользуетесь Linux, то вы можете выполнить следующую команду:

sudo openvpn --config vpn.ovpn

Так же мы можем подключаться к этому VPN через телефон с помощью программы OpenVPN

FINISH

На сервере за $5 у нас есть наша скриншотилка, proxy для телеграма и наш собственный VPN сервер.