Оглавление:
Статья последний раз была обновлена 04.03.2023
Настройка простого 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 лет.
Образование: МГТУ им. Н. Э. Баумана, к.т.н.
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023