Оглавление:
Настройка простого SOCKS5 прокси-сервера для личного использования
Буквально пару недель назад развернулась настоящая эпопея с Телеграмом и его возможной блокировкой. Казалось счет шел на дни, но пока похоже конфликт на данной стадии исчерпан и Телеграм блокироватся не будет. Однако что-то мне подсказывает, что потенциальный читатель этой статьи примерно из зимы-весны 2018 года, когда вступили в силу новые пункты закона Яровой и Телеграм опять хотят заблокировать или уже это сделали.
Благо господин Дуров уже завез обновление на все платформы с поддержкой SOCKS5-прокси. Поэтому я решил написать простой минигайд о том, как сделать собственный прокси-сервер на дешевеньком VPS за 5 баксов.
Приступим!
Тема прокси для меня была весьма новой, поэтому пришлось сначала немного погуглить, чтобы разузнать что же за ПО для этого пресловутого SOCKS5 нужно вообще. Выбор быстро пал на Dante в виду его невероятно простой настройки.
За основу теперь я беру Debian 9, так как Debian 8 морально устарел. Ставим
dante-server
:
|
|
Сходу демон Dante,
danted
, почему-то падает. Видимо косяк мейнтейнера пакета. Так что сразу лезем в конфиг:
|
|
Перед вами откроется подробный конфиг с множеством комментариев. В принципе вы можете просто всё удалить и вставить туда мой вариант, представленный выше. Но можно изучить его, раскомментировать и исправить нужные параметры.
Немного подробностей
socksmethod: username
— для авторизации по системному пользователю. Разумеется можно вообще написать
none
, но тогда ваш сервер рискует попасть в публичные «бесплатные списки». Можно использовать хитрый механизм
pam
c целым RADIUS-сервером, который будет авторизировать сотни пользователей. Но всё же моей целью был личный сервер для себя и друзей, а не высоконагруженный продакшен-сервер на тысячи пользователей 🙂
user.privileged: root
— вместо дефолтного
proxy
ставим
root
, потому что нам нужно читать файл
/etc/passwd
для авторизации по системному пользователю.
А вот блоки
client pass
и
socks pass
и мутят всю магию прокси. Разумеется, можно покурить матчасть и поставить гору различных умных правил, но мне нужен был простой прокси, который в случае чего будет работать не только для Телеграма.
Конфиг готов?
Ctrl^O — сохраняем конфиг, Ctrl^X — выходим из
nano
. Теперь будет разумным сделать отдельного пользователя, особенно если вы не хотите чтобы пароль от вашего VPS узнали друзья, подключаясь к вашему прокси.
|
|
Готово, пользователь создан. Осталось только перезапустить службу:
|
|
Всего нужно будет помнить 4 настройки:
IP-адрес вашего сервера, порт (в моем конфиге 1080), логин (в моем примере proxy) и пароль, который вы этому пользователю указали. Коннект должен пройти удачно.
Небольшая заметка
Я немного перфекционист и решил сделать субдомен для прокси, чтобы моим знакомым и друзьям не нужно было запоминать странный IP-адрес. Однако столкнулся с забавной сложностью. Дело в том, что в домене я прописал A- и AAAA-записи сразу, так как сервер поддерживал IPv6. Однако изначально я настроил сервер Dante без поддержки IPv6. В итоге мой ПК пытался подключится по умолчанию через IPv6, но не получал ответа. Возможно кому-то это пригодится, потому что я потратил на это не мало часов…
P.S. Ссылки на прокси в Телеграме можно распостранять в интересном формате:
https://t.me/socks?server=IP&port=PORT&user=USERNAME&pass=PASSWORD
https://krasovsky.me/it/2017/07/socks5-dante/index.html
Кандидат технических наук, доцент кафедры ИУ-6 (Компьютерные системы и сети) Московского государственного технического университета им. Н. Э. Баумана. Самый молодой в России PhD in Computer Science. Эксперт в области компьютерных технологий и программирования.
Стаж: 8 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Автоматическое монтирование fstab и systemd - 24.02.2021
- Как в Linux подключить новый диск, разметить и отформатировать разделы - 24.02.2021
- Как сменить режим работы PHP - 24.02.2021