© Сергей Ёлкин (https://twitter.com/sergey_elkin)

Публичные прокси - это хорошо, но медленно. А хочется заиметь свою, да и с друзьяшками поделиться. Так что сейчас расскажу, как поднять свой прокси сервер чисто-для-телеграма.

Внимание: статья рассчитана на людей, которые знают что такое ssh и как его подключать.

Пункт первый: нужно обзавестись сервером

Сервер брать рекомендую на DigitalOcean, в локациях AMS1/AMS2/AMS3 (у меня до них самый лучший пинг, но тут лучше выбирать по географической близости как к вам, так и к серверам телеграма). Вот вам рефералочка, которая добавит 10 баксов к вашему первому платежу: https://m.do.co/c/92f208062543

Инструкция написана для Ubuntu 16.04, используйте её же.

Пункт второй: устанавливаем dante

Заходим по ssh на наш сервер и делаем следующие вещи:

sudo apt update
# Эта команда только для новых серверов, не стоит бездумно обновлять пакеты на уже работающих :)
sudo apt upgrade

# Скачиваем dante
wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb

# Устанавливаем
sudo dpkg -i dante-server_1.4.1-1_amd64.deb

Теперь открываем любимым редактором /etc/danted.conf заменяем его этим:

Небольшие пояснения:

eth0 в external и internal — это имя интерфейса. Его вы можете посмотреть в выводе команды ifconfig

socksmethod: username говорит серверу использовать линуксовые аккауты для авторизации и отключает “анонимный” доступ к серверу

Перезапускаем dante:

sudo systemctl restart danted

Пункт третий: создаем пользователя и проверяем

Создаем пользователя: sudo useradd -s /usr/sbin/nologin имяпользователя

Назначаем пароль: sudo passwd имяпользователя

ВНИМАНИЕ! Логин и пароль будут передаваться в открытом виде при подключении к socks-серверу!

Если вы делаете открытый прокси без авторизации, имеет смысл заблокировать подсети Mail.ru Group, так как они были замечены в пособничестве блокировкам:

sudo iptables -A INPUT -s 5.61.232.0/21 -j DROP
sudo iptables -A INPUT -s 79.137.157.0/24 -j DROP
sudo iptables -A INPUT -s 79.137.174.0/23 -j DROP
sudo iptables -A INPUT -s 79.137.183.0/24 -j DROP
sudo iptables -A INPUT -s 94.100.176.0/20 -j DROP
sudo iptables -A INPUT -s 95.163.32.0/19 -j DROP
sudo iptables -A INPUT -s 95.163.212.0/22 -j DROP
sudo iptables -A INPUT -s 95.163.216.0/22 -j DROP
sudo iptables -A INPUT -s 95.163.248.0/21 -j DROP
sudo iptables -A INPUT -s 128.140.168.0/21 -j DROP
sudo iptables -A INPUT -s 178.22.88.0/21 -j DROP
sudo iptables -A INPUT -s 178.237.16.0/20 -j DROP
sudo iptables -A INPUT -s 178.237.29.0/24 -j DROP
sudo iptables -A INPUT -s 185.5.136.0/22 -j DROP
sudo iptables -A INPUT -s 185.16.148.0/22 -j DROP
sudo iptables -A INPUT -s 185.16.244.0/23 -j DROP
sudo iptables -A INPUT -s 185.16.246.0/24 -j DROP
sudo iptables -A INPUT -s 185.16.247.0/24 -j DROP
sudo iptables -A INPUT -s 188.93.56.0/21 -j DROP
sudo iptables -A INPUT -s 194.186.63.0/24 -j DROP
sudo iptables -A INPUT -s 195.211.20.0/22 -j DROP
sudo iptables -A INPUT -s 195.218.168.0/24 -j DROP
sudo iptables -A INPUT -s 217.20.144.0/20 -j DROP
sudo iptables -A INPUT -s 217.69.128.0/20 -j DROP
sudo iptables-save

(спасибо телеграм-каналу “За Телеком” за информацию и команды для iptables)

Теперь проверим работоспособность, например, через curl:

curl -v -x socks5://имяпользователя:пароль@вашсервер:1080 http://t.me

Должно вернуть 302 Found

А это:

curl -v -x socks5://имяпользователя:пароль@вашсервер:1080 http://google.com

Должно вернуть ошибку соединения (прокси не будет пропускать не-телеграмовские адреса)

Теперь вы можете настроить Telegram на работу с этим сервером и поделиться им с друзьями (: