Как создать прокси сервер

Giteqa

Вам нужен собственный прокси сервер? Вы не знакомы с Linux? Тогда эта статья для вас. Выполняя пошагово действия описанные ниже, вы сможете самостоятельно создать элитный прокси сервер (не определяется различными сервисами как прокси и скрывает ваш реальный IP), работающий на HTTP/HTTPS или SOCKS5 протоколах с авторизацией. Он просто незаменим, если имеются повышенные требования к качеству прокси. На выделенном вам IP будете только вы, а не ещё куча других пользователей, что отразится в конечном счете на качестве и стабильности. Даже так называемые «приватные прокси» не всегда могут быть приватными, вы не сможете проверить, сколько людей в реальности им пользуются. Учитывая сэкономленные деньги, ваши расходы составят только аренду VPS (от 5 Евро в мес.) и доп. IP (от 1 Евро) если потребуются, что сравнимо с ценой «приватных прокси».

Итак, для начала нам нужен VPS (виртуальный выделенный сервер) желательно с KVM виртуализацией, т.к. на других типах виртуализации создание прокси часто запрещено и установленной операционной системой CentOS 7. Многие хостинги вообще запрещают создание прокси, поэтому, перед заказом VPS уточните этот нюанс у тех. поддержки. Пример подходящего московского хостинга. Имеют сервера в России (Москва), Швейцарии и Великобритании. Аренда VPS стоит от 5 Евро, доп. IP стоит 1 Евро, можно подключить до 32 доп. IP на один сервер. Или вариант, имеют сервера на Украине, в Болгарии, Нидерландах и США. Сервер от 5 Евро. Их тех. поддержка произвела хорошее впечатление. Эти два примера хостингов подобраны так, что страны расположения их серверов не повторяются, выбор за вами.

Получив данные доступа к заказанному серверу, приступаем к работе.

  1. Подключаемся к серверу по ssh. Сделать это можно через программу PuTTY. В поле «Host name» вводите IP вашего сервера, порт оставляете по умолчанию 22 если не изменили его.

.

При попытке входа ваш браузер может выдать сообщение, что-то вроде "Это соединение является недоверенным...", игнорируем его, добавляем в исключения и входим. После входа появится окно с командной строкой. Вводите логин и пароль данные вам. Обратите внимание, при вводе пароля он не отображается, т.е. как будто ничего не происходит.

.

После ввода нажав , вы увидите либо сообщение «Access denied», значит пароль введён не правильно или ваш логин в скобках подобно как на скрине.

.

2. Устанавливаем редактор vim:

yum install vim

3. Инсталируем библиотеку gcc необходимую для компиляции:

yum install gcc

4. Загружаем 3proxy. Данную программу мы и будем использовать для создания прокси сервера. Версия 3proxy может измениться, укажите в строке ниже актуальную. (Актуально на 29.09.2018)

wget https://github.com/z3APA3A/3proxy/archive/0.9.3.tar.gz

5. Разархивируем скачанный архив командой:

tar -xvzf 0.9.3.tar.gz

6. Переходим в папку с распакованными файлами:

cd 3proxy-0.9.3

7. Компилируем:

make -f Makefile.Linux

Во время компиляции могут появляться следующие ошибки: "3proxy.c:1103: warning: pointer targets in passing…".

Ошибки при компиляции, кроме fatal, не страшны.

8. Создаем папки:

*Набрав и выполнив первую строку из списка ниже, не спешите печатать новую заново, досточно нажать стрелку "Вверх" на клавиатуре и будет набрана последняя команда. Допишите недостающее и всё.

mkdir /usr/local/etc/3proxy; mkdir /usr/local/etc/3proxy/bin; mkdir /usr/local/etc/3proxy/logs; mkdir /usr/local/etc/3proxy/stat

9. Переносим исполняемый файл: cp src/3proxy.rc /usr/local/etc/3proxy/bin

10. Переносим файл для автозапуска:

cp scripts/init.d/3proxy.sh /etc/init.d/3proxy

11. Записываем информацию в файл автозагрузки:

chkconfig 3proxy on

12. Создаем новый конфигурационный файл:

touch /usr/local/etc/3proxy/3proxy.cfg

13. Выставляем права:

chown -R nobody:nobody /usr/local/etc/3proxy

14. Переходим в папку:

cd /usr/local/etc/3proxy

15. Входим в файл который хотим редактировать:

vim 3proxy.cfg

16. Настраиваем 3proxy.cfg. Вариантов его настройки масса, ниже приведём относительно простой вариант соотвествующий нашим требованиям описанным в начале статьи.

daemon

#logs and shelf life
log /var/log/3proxy.log Drotate 3

nserver 8.8.8.8
nserver 8.8.4.4


nscache 65536

pidfile /usr/local/etc/3proxy/3proxy.pid

#user and pass
users login:CL:pas
auth strong
flush
allow login
maxconn 200

proxy -n -p7459 -i111.111.111.111 -e111.111.111.111
proxy -n -p7459 -i222.222.222.222 -e222.222.222.222

socks -p2233 -i111.111.111.111 -e111.111.111.111
socks -p2233 -i222.222.222.222 -e222.222.222.222

Вставляем вместо "login" и "pas" ваши логин и пароль которые вы будете использовать при авторизации. Далее вместо едениц вписываете ваш IP, если у вас будет несколько IP - копируете эти строки и в каждой ставите новые IP, -p - номер порта, он тоже меняется на ваше усмотрение. В данной конфигурации используется 2 IP для работы по HTTP/HTTPS и SOCKS протоколам, если не нужен SOCKS - не прописывайте последние строки начинающиеся с socks. Сохраняем и выходим из редактора нажатием SHIFT + : и подтверждаем изменения wq + ENTER.

17. Отключаем фаервол, если на сервере нет ничего кроме прокси и он явно не нужен.

service iptables stop

Если нужен, то можно добавть нужные нам порты в исключение.

CentOS 6

iptables -I INPUT -p tcp --dport 7459 -m state --state NEW -j ACCEPT iptables -I INPUT -p tcp --dport 2233 -m state --state NEW -j ACCEPT service iptables save

CentOS 7

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 7459 -j ACCEPT iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m multiport --dports 2233 -j ACCEPT service iptables save

Либо вручную прописываем эти строки в /etc/sysconfig/iptables и перезагружаем iptables

Вместо "7459" и "2233" вписываете ваши порты.

18. Если у вас более 1 IP, их нужно прописать в систему:

ifconfig eth0:1 inet 222.222.222.222 netmask 255.255.255.0

Где 222.222.222.222 ваш доп. IP. Если IP адресов больше, ещё кроме IP каждый раз меняйте значение eth0:1 на eth0:2, eth0:3 и т.д.

19. Запускаем 3proxy:

service 3proxy start

Поздравляем! Теперь у вас есть свой элитный прокси сервер. Возможно, что после запуска может появиться сообщение как на скрине ниже - не обращайте внимание.

.

Как создать прокси сервер P.S. Недавно снова потребовался прокси сервер, попытался его поднять по своей же статье и... не получилось. Статье 4 года, за это время поменял хостинг, а там видимо свои нюансы. Если кратко, они используют внутренний IP отличный от внешнего, хотя это и предусмотрено в файле конфигурации сервера, но не работало. Устанавливалось соеденение, происходила авторизация, а дальше ошибка. Сервер на CentOS 7, версия 3proxy 0.8.

12. Если у вас похожая проблема - попробуйте такой вот конфиг (3proxy.cfg):

daemon log /usr/local/etc/3proxy/logs/3proxy.log Drotate 3 pidfile /usr/local/etc/3proxy/3proxy.pid nserver 8.8.8.8 nserver 8.8.4.4 nscache 65536 users login:CL:pas auth strong socks -p1234 -i111.111.111.111 -e111.111.111.111

Если вам нужен прокси (в данном случае socks 5 с авторизацией) без заморочек и лишних настроек - попробуйте этот конфиг, либо замените socks на proxy если нужно, главное - не указывайте IP. Не забудьте заменить логин и пароль на свои, ну и порт само собой. При попытке запустить прокси выдало ошибку о недостаточных правах. С помощью chmod нашел нужный файл и поставил права немного выше 644 для владельца и группы, этого оказалось достаточно - запустилось.