Оглавление:
Статья последний раз была обновлена 04.03.2023
Создание и настройка SOCKS5 прокси сервера в Ubuntu
Для ускорения работы с некоторыми программами и парсерами, которые я использую, требуются прокси, сначала я арендовал их, но потом решил поднять свои SOKS5 прокси сервера на уже имеющихся серверах с сайтами.
На всех серверах стоит Ubuntu Server 14.04, может где-то и 12.04, но описание должно подойти и для всех остальных систем основанных на Debian.
Есть 2 известных мне способа организации работы SOKS5 сервера:
- SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
- Установка SOCKS сервера. При использовании этого способа уйдет чуть больше времени на первоначальную настройку, но потом пользоваться прокси будет быстрее и удобнее.
SOCKS через SSH
Для того чтоб поднять SOCKS5 через SSH нужен только доступ к SSH сервера.
Вводим в терминале или SSH клиенте (PuTTY для Windows)
1
|
ssh -D 1080 user@server |
Если запросит пароль, то нужно ввести пароль от SSH сервера.
-D – указывает порт по которому будет доступен SOKS5 сервер
Все, после этого вы можете подключиться к SOKS5 серверу по адресу localhost:1080 или 127.0.0.1:1080
Такой способ удобен тем что не нужно ничего дополнительно устанавливать и настраивать. Но перед каждым подключением или после разрыва ssh соединения, например из-за проблем с интернетом придется заново вводить эту команду.
Установка SOCKS сервера
Я знаю 2 SOCKS сервера 3proxy и Dante. У себя использовал Dante Server его настройку и опишу.
Установить Dante сервер можно с помощью apt-get, по умолчанию устанавливается старая версия (v.1.1). Ниже будут настройки для старой и новой (v.1.4) версий.
Установка новой версии Dante Server
1
2
3
4
5
|
sudo apt-get update sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:dajhorn /dante sudo apt-get update sudo apt-get install dante-server |
После этих действий Dante Server будет установлен, но ругнется и не сможет запуститься, видимо дефолтные настройки имеют ошибку.
Далее нужно отредактировать файл настроек
1
|
sudo nano /etc/danted .conf |
Приведя его к такому виду
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
logoutput: syslog /var/log/danted .log internal: eth0 port = 1080 external: eth0 socksmethod: username user.privileged: root user.unprivileged: nobody client pass { from: 0.0.0.0 /0 to: 0.0.0.0 /0 log: error } socks pass { from: 0.0.0.0 /0 to: 0.0.0.0 /0 command : connect log: error method: username } |
Расшифровка конфига:
- указываем лог файл который будет находиться по адресу /var/log/danted.log;
- eth0 — сетевой интерфейс на котором висит внешний IP сервера, узнать его можно воспользовавшись командой ifconfig, либо можно просто указать свой внешний IP вместо названия интерфейса;
- порт для SOKS5 прокси – 1080;
- socksmethod — метод авторизации. username — авторизация с указанием логина и пароля системных пользователей. Можно указать none если вы хотите не использовать авторизацию, но не советую оставлять открытым для порт для прокси т.к. сканеры прокси не дремлют, и у меня через открытый порт начали спам рассылать, после чего мне хостер отписал что у моего IP идет спам и надо что-то решать, можно использовать не дефолтный порт а какой-то другой, это позволит отсрочить нахождения вашего прокси сканерами;
- user.privileged — имя пользователя с расширенными правами;
- user.unprivileged — имя пользователя с обычными правами (как я понял dante работает от имени этих пользователей в зависимости от того какими правами нужно обладать для выполнения операции).
После сохранения настроек нужно перезагрузить Dante
1
|
sudo service danted restart |
Все, теперь к SOKS5 прокси можно подключиться с любого устройства, указав IP сервера, порт – 1080, и данные для авторизации (имя и пароль пользователей которые зарегистрированы на сервере).
Я для доступа к прокси создал отдельного пользователя и указываю его данные. Создавал командой
1
|
sudo useradd -m soksuser && sudo passwd soksuser |
Где soksuser – имя создаваемого пользователя.
Узнать подробнее о создании пользователей в Ubuntu.
Установка старой версии Dante Server
1
2
|
sudo apt-get update sudo apt-get install dante-server |
Далее нужно отредактировать файл настроек
1
|
sudo nano /etc/danted .conf |
Приведя его к такому виду
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
logoutput: syslog /var/log/danted .log internal: eth0 port = 1085 external: eth0 method: username user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0 /0 to: 0.0.0.0 /0 log: error } pass { from: 0.0.0.0 /0 to: 0.0.0.0 /0 command : connect log: error method: username } |
Дальше все так-же как и в новой версии о которой я писал выше.
- Убираем: Setting locale failed. Please check that your locale settings
- Как узнать количество памяти в Linux, Ubuntu
- Как узнать размер таблицы базы данных MySQL
https://la2ha.ru/dev-seo-diy/unix/socks5-proxy-server-ubuntu
- Как узнать IP-адрес по MAC-адресу - 07.04.2023
- Пинг проходит, а страницы в браузере не открываются - 07.04.2023
- Что если сайт пингуется «извне», но не открывается из под «локалки»? - 07.04.2023