Atnimak`s journey     О блоге     Архив     Теги     Резюме

From a little boy to a java developer

Установка и настройка proxy на VPS

Установка и настройка собственного 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 Установка и настройка собственного proxy на VPS В данном примере интерфейс 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 авторизацией Находится вот в этом файле