Установка и настройка proxy на VPS
14 Mar 2023Установка и настройка собственного proxy на VPS.
HTTP или Socks5 proxy?
Разница между HTTP(S) и SOCKS 5 прокси состоит в том, что HTTP(S) работает только по этому протоколу, остальные соединения будут идти в обход прокси. В отличие от HTTP и HTTPS, SOCKS (Socket Secure) перенаправляет ваш трафик не только из браузера, но и вообще со всех программ устройства. При этом прокси-сервер не вносит никаких изменений и данных: он только перенаправляет трафик финальному серверу. Получается, что прокси-сервер как бы действует от имени устройства пользователя
Еще одним важным плюсом SOCKS proxy является возможность выстраивания нескольких таких серверов в цепочку произвольной длины. Это обусловлено тем, что SOCKS передает данные между несколькими компьютерами без изменения трафика. Однако не все программы могут работать с такими цепочками, поэтому может потребоваться установка специализированных утилит.
VPS и SSH
Для начала нам потребуется VPS и умение подключаться к нему по SSH. Но об этом у меня уже написано:
Настройка proxy
Обновляем сервер
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`
Установим пакет gdebi
, он нужен для того, чтобы устанавливать программы не только из репозиториев, но и из deb - пакетов и помогает разрешать зависимости. Нам нужен, чтобы установить Dante.
sudo apt-get install gdebi-core
А теперь с помощью gdebi установим Dante
gdebi dante-server_1.4.1-1_amd64.deb
Во время установки появятся ошибки - так и должно быть. Игнорируй их.
Теперь запусти ifconfig
ifconfig
Если он на сервере еще не установен - установи, терминал подскажет пакет, кажется net-tools
В ответе ifconfig
найди на каком сетевом интрефейсе находится наш IP
В данном примере интерфейс eth0. Может быть совсем другой. Запиши свой сетевой интерфейс в блокнот.
Теперь настроим Dante. Откроем файл настроек
nano /etc/danted.conf
И внесем туда свою конфигурацию. В строке «external: eth0» вы должны указать свой интерфейс! Сохраняем внесенные изменения.
Это примерная конфигурация с основными параметрами. Точную конфигурацию для современного сервера Dante прикреплю в конце поста.
logoutput: syslog
user.privileged: root
user.unprivileged: nobody
internal: 0.0.0.0 port=1080
external: eth0
socksmethod: none
clientmethod: none
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
Запускаем сервер Dante
sudo service danted start
Сейчас proxy уже можно пользоваться без авторизации. То есть любой, кто знает ip-адрес и порт может использовать этот прокси. Нас это не устраивает.
У меня после этого сервер не заработал, точнее он как буд-то бы работал, но подключиться не удавалось. Поэтому я еще раз обновил все пакеты в системе
sudo apt update
sudo apt upgrade
В том числе обновился Dante. Dante предложил мне скачать новый файл конфигурации, взамен того, что был у меня. Я согласился и при обновлении получил новый файл конфигурации, без настроек. После этого я заново настроил файл конфигурации, как вот так, остановил и заново запустил сервер и все заработало.
Потом я настроил авторизацию как написано ниже. Конфиг для этого вот тут
Настройка авторизации
Создадим пользователя linux:
sudo useradd proxyuser && sudo passwd proxyuser
Мы создаем пользователя proxyuser - ты можешь создать любого другого. После этой команды терминал запросит два раза ввести новый пароль для этого пользователя.
Теперь снова изменяем файл конфигурации:
nano /etc/danted.conf
изменяем строку socksmethod
с none на username:
...
socksmethod: username
clientmethod: none
client pass {
...
Перезапускаем сервер:
sudo service danted restart
Все готово! Теперь прокси работает только с авторизацией по логину и паролю.
Полезные команды
Чтобы проверить работает сервер или нет можно проверить какая программа слушает наш порт и слушает ли вообще, у нас он 1080:
sudo netstat -tulpan | grep 1080
Если Dante работает ты увидишь это, если нет - вывод будет пустым.
Запуск сервера Dante
sudo service danted start
Остановка сервера Dante
sudo service danted stop
Перезапуск сервера Dante
sudo service danted restart
Проверить работу proxy можно либо с помощью программы Proxy Checker, которая лежит в архиве вместе с программой Proxifier, если скачать портабл версию
Либо, с помощью любой программы, которая поддреживает подключение через прокси, например Telegram
Proxy Checker удобнее, потому что он показывает этапы тестирования прокси и ошибки, что упрощает проверку.
danted.conf без авторизации Можно взять вот в этом файле
danted.conf c авторизацией Находится вот в этом файле