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

Случайный выбор

Рекомендуем


Статьи

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


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

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

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

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

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

PuTTYPuTTY

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

Ввод пароляВвод пароля

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

Логин и пароль принятыЛогин и пароль приняты

Далее по очерёдности выполняйте команды описанные ниже. Иногда, при инсталляции возникает сообщение   всегда жмите «y».

 

2. Устанавливаем файловый менеджер mc:

 

yum install mc

 

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

 

yum install gcc

 

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

 

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

 

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

 

tar -xvzf 0.8.12.tar.gz

 

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

 

cd 3proxy-0.8.12

 

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 /usr/local/etc/3proxy/bin

 

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

 

cp ./scripts/rc.d/proxy.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. Запускаем файловый менеджер mc:

 

mc

 

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

 

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. Сохраняем и выходим из mc.

 

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. Не забудьте заменить логин и пароль на свои, ну и порт само собой. При попытке запустить прокси выдало ошибку о недостаточных правах. С помощью mc редактора нашел нужный файл и поставил права немного выше 644 для владельца и группы, этого оказалось достаточно - запустилось.


Оценить:
Рейтинг 4,2
Голосов 9

Комментарии

vlad 15 августа 2014 15:00
Респект автору. Все четко и по теме. У меня получилось
Владислав 17 апреля 2015 11:47
Здравствуйте, к какому порту цепляться? (прокси)
admin 21 апреля 2015 09:50
Здравствуйте, Владислав. Извините за столь долгий ответ, если как в примере настройки, то к 7459. А вообще, номер порта меняется на ваше усмотрение как и IP.
Максим 28 мая 2015 17:51
в пункте 10 выдает ошибку missing destination file operand after. Помогите пожалуйста

Прошу прощения в 10 строке пропустил пробел :) Но теперь проблема с 11 строчкой пишет ошибку: no such file or directory
admin 1 июня 2015 15:07
Или файл не перенесён был или папка не создана, проверяйте правильность выполнения предыдущих пунктов.
Даурен 4 июня 2015 09:54
Добрый день! А если у меня динамический IP?
admin 4 июня 2015 16:53
Добрый день! Где? Если у вас дома, то это не имеет значение, если у сервера, то придётся каждый раз его перепрописывать в настройках.
Даурен 5 июня 2015 08:04
proxy -n -p7459 -i111.111.111.111 -e111.111.111.111
"Далее вместо едениц вписываете ваш IP" прощу прошения, я просто новичек. IP компьютера или VDS?
admin 9 июня 2015 14:10
Извините за задержку с ответом. Вписывайте IP VDS которые вам дали.
andrei 9 июня 2015 20:56
Все шло хорошо до 19 пункта, когда я попытался запустить прокси и мне выдало: Unknown command: 'log/var/log/3proxy.log' line 4

Готов заплатить за настройку прокси, уже весь день пытаюсь (вчера все работало, сегодня уже нет), добавьте меня в скайп в любое время: IvanProcopenco2
admin 10 июня 2015 14:46
Странно, что работало, а потом перестало. Попробуйте всё удалить и заново поставить, если получалось, то должно ещё получится, просто будьте внимательнее. Если не получится, обратитесь в ТП хостинга, за деньги обычно настраивают без проблем.
мастер ломастер 14 июня 2015 08:31
Очень полезная инфа! Автору + в карму!
А как сделать привязку с авторизацией по ip? Я делаю 10 прокси и мне, чтобы не вводить каждый раз логин и пароль, можно сделать авторизацию по ip?
admin 14 июня 2015 15:42
Спасибо! Можно, как чисто по IP, так и по связке логин\пароль + IP. Для авторизации по IP нужно изменить в файле 3proxy.cfg строку с значением "auth strong" на "auth iponly" и ниже добавить строку с диапазоном разрешенных для авторизации IP "allow * 192.168.1.0/24 * *" (вписываете свои). Данная информация не проверена, т.к. задачей этой статьи было описать самый простой вариант настройки 3proxy с точки зрения автора, а нюансы настройки (коих масса) лучше искать на сайте разработчика программы - 3proxy.ru
мастер ломастер 17 июня 2015 03:03
спасибки за полезную инфу! Не бросайте свое дело пишите больше интересной инфы я читаю Вас! Очень интересно и познавательно!
Еще пару вопросов:
1. Эти сервера пойдут для метода который Вы описали выше? - https://hosting.reg.ru/vps/
2. Мощность сервера не влияет на работу создаваемых прокси? - то есть можно брать минимальный тарифный план с минимальной конфигурацией сервера и заряжать на него хоть сколько ip для прокси ?
мастер ломастер 18 июня 2015 05:21
Так много провайдеров рекламирующих VPS , а как только начинаешь у них спрашивать про создании прокси на их серверах - так сразу НЕТ НЕЛЬЗЯ ПО ДОГОВОРУ! )
интересует следующее:
1. Мне нужно сделать на VPS прокси сервер, по протоколу socks, с привязкой по ip адресу. Я нашел провайдера, купил 9 дополнительных адресов ip4.
Сервер на KMV, ОС CentOS, 1 ядро 2600, 512мб ОП, диск HDD, канал 100 МБит/сек.
-Хватит ли таких параметров сервера для реализации 10 прокси?
-Если я буду увеличивать до 100 адресов нужно ли брать сервер с большими параметрами?
-Не будет ли тормозов в работе?
-При выше указанных параметрах конфига канал в 100 МБит/сек будет равномерно делится на 10 моих ip ?

2. По поводу привязки по ip: "нужно изменить в файле 3proxy.cfg строку с значением "auth strong" на "auth iponly" и ниже добавить строку с диапазоном разрешенных для авторизации IP "allow * 192.168.1.0/24 * *" (вписываете свои)" - можно диапазон ip указать? - у меня иногда мой ip меняется на совсем отличный от предыдущего, тогда мне после смены моего ip нужно будет зайти снова в админку через PuTTY и просто в конфиге изменить на новый мой ip?

#user and pass
users login:CL:pas
auth strong
- а это я могу удалить вообще?

и оставить так:
auth iponly
allow * (мой ip) * *
flush
allow login - для чего это? - можно удалить?
maxconn 200 - для чего это? - можно удалить?

3. Я хочу сделать прокси по протоколу socks4, можно не прописывать "proxy -n -p7459 -i111.111.111.111 -e111.111.111.111" , а прописать только
socks -p2233 -i111.111.111.111 -e111.111.111.111 и подключатся только через соксы?
admin 20 июня 2015 11:29
мастер ломастер - всегда пожалуйста! Я сам на reg.ru сначала пытался арендовать, т.к. являюсь их клиентом - не разрешили, как и многие другие. Нашел только один хостинг который приведён в качестве примера в начале статьи, дальше искать не стал. На счёт мощности сервера, по моим наблюдениям - слабо грузит, т.е. вашей конфигурации должно хватить, но за 100 адресов не скажу.
На счёт всех остальных вопросов - не могу помочь, т.к. как писал выше, задача статьи была в донесении необходимого минимума информации для создания неподготовленным пользователем прокси сервера. Я сам по сути таким пользователем и являюсь, а статья, это мой реальный опыт (в чём её ценность), но он этим и ограничивается. Если вам удалось продвинуться дальше и получить больше опыта - пишите, буду благодарен и думаю, что не только я.
мастер ломастер 21 июня 2015 21:43
Ясно, но и за это спасибо, Ваш мануал самый доступный, благодаря ему я более мене и понял, что и как, в инете мало нормальной инфы по этой теме.
Вот еще инфа по этой теме думаю в одном месте будет полезнее http://3proxy.ru/doc/3proxy_for_dummies.rtf - может и еще кому пригодится.
admin 23 июня 2015 00:57
Пожалуйста, значит не зря писал. Я сам сейчас уже несколько дней пытаюсь решить одну задачу - реализовать блокировку некоторых стран по базе GeoIP с помощью xtables на сервере с CentOS 7 и панелью ISPmanager 5... Есть масса статей с описанием процесса установки, но рабочих 0, такое ощущение, что передирали и не проверяли даже. Тех. поддержка ISPmanager напоминает сектантов под страхом смерти хранящих свои тайны, как впрочем и многие другие их коллеги...
andrei 29 июня 2015 18:28
Спасибо за ответ!
А есть опыт по созданию соксов на IPv6 ?
Если да, поделись, пожалуйста!
admin 29 июня 2015 19:16
Пожалуйста! Опыта работы с IPv6 нет.
Max 7 июля 2015 07:37
Здравствуйте! Вы на 6 или 7 поднимали проксики, и еще,что-то 3proxy.ru перестал работать.
admin 11 июля 2015 00:59
Здравствуйте, Max! Извините за задержку с ответом, в смысле на 6 или 7? Версия CentOS? На 6-й. По поводу 3proxy.ru - Гугл выдал сюрприз в виде сообщения:"Сайт содержит нежелательное ПО".... надеюсь, что это ошибка и она скоро будет устранена.
мастер ломастер 16 июля 2015 17:27
В общем все отлично работает, с авторизацией по логину и паролю правда лажа, у меня при таких настройках постоянно на каждую вкладку окно для ввода логина и пароля вылетает! Поэтому авторизацию делал по ip, так намного лучше НО! Какой то глюк, когда установлю настрою все работает просто замечательно, прокси сервер можно стартить командой service 3proxy start и тормозить командой service 3proxy stop по нужде!

Но вот если виртуальную машину тормозишь, либо перезагруз делаешь, либо если датацентр перезагруз сделает, то ВСЕ! Ничего не работает после этого! Нужно все по новой переустанавливать! С этой бедой никак не могу справиться, если знаете ответ покажите куда РЫТЬ!
Вот мой конфиг кому нужно!
********************************************************************************

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

nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60

#авторизация по ip
auth iponly
#указывем наш ip
allow * 39.211.141.180 * * *
maxconn 200

deny * * 127.0.0.1,192.168.1.1
#подключение только по порту 4239
allow * * * 4239

proxy -n -a -i1.1.1.1 -e1.1.1.1 -p4239
proxy -n -a -i2.2.2.2 -e2.2.2.2 -p4239
proxy -n -a -i3.3.3.3 -e3.3.3.3 -p4239

socks -i1.1.1.1 -e1.1.1.1 -p4239
socks -i2.2.2.2 -e2.2.2.2 -p4239
socks -i3.3.3.3 -e3.3.3.3 -p4239

Да! Добавляя дополнительные ip в систему командой ifconfig eth0:N inet 222.222.222.222 netmask 255.255.255.0
незабываем N менять на следующий номер для каждого добавляемого адреса начинаем с ifconfig eth0:1 , далее ifconfig eth0:2 и так далее в зависимости сколько у вас адресов.

Ищу как прикрутить ip6 на прокси но некак немогу найти инфу, вообще ничего нет! Если кто накопает инфу как замутить прокси на ip6 тут вывалите пожалуйста!
admin 16 июля 2015 22:53
Я один раз настроил и всё работает отлично с авторизацией по логину и паролю, прописал данные в Proxifier и почти год пользуюсь без сбоев. На счёт ручного перезапуска после перезагрузки сервера - прошу прощения, да, там надо было ещё одно действие сделать - прописать в автозапуск 3proxy. Мне это тогда сделала тех. поддержка сама, я и забыл это указать в статье. Так или иначе, переустанавливать заново не надо, файлы не должны удаляться после перезагрузки. Попробуйте набрать: chkconfig 3proxy on, эта команда должна прописать 3proxy в автозапуск.
мастер ломастер 17 июля 2015 17:58
Спасибо БРО! Попробую сейчас! А насчет авторизации по логину пароль если без проксификатора то это нормально что окно логина постоянно вылазит?

((( команда - chkconfig 3proxy on не работает!

после перезапуска самой виртуальной машины ( не 3proxy командой reboot ) именно виртуальной машины в личном кабинете дц , вобщем перестает работать, пробовал прописать в автозапуск командой chkconfig 3proxy on посмотрел вроде она прописывается по chkconfig --list 2345 уровни on . Посмотрел лог пишет первый основной ip акцепт а остальные доп ip все не возможно подключить, хотя до перезагруза все работало. Писал в супорт они совет дали так ip прописать создав отдельно под каждый ip отдельный файл /etc/sysconfig/network-scripts/ifcfg-eth0:0 ...ifcfg-eth0:1 ....ifcfg-eth0:2 . Все прописал перезагруз сделал в логах все Ip акцепт, а соединения нет.
мастер ломастер 18 июля 2015 01:19
В общем так у меня при перезагрузке сервера все стопится и снова не запускается, я уже переустановил все поновой и как в шаблоне все настроил на 1 основной ip и всеравно при перезапуске все стопится, что может быть?
admin 18 июля 2015 19:52
мастер ломастер, спасибо за замечание на счёт добавления доп. IP! Отредактировал статью. Добавил вариант работы с включенным iptables.
На счёт автозапуска - сам не заметил, когда коммент выше писал, что он был уже в статье - пункт 11. Сегодня ставил прокси на новом сервере, потом перезагружал сервер - всё работает, т.е. 3proxy запускается вместе с сервером автоматом. Почему не работает у вас - без понятия, напишите в ТП, пусть они добавят сами в автозапуск или объяснят, почему оно не работает. На первом сервере у меня было 2 IP, настройки были для обоих в 1-м файле, конфиг этот приведён в статье. Всё отлично работало.
"постоянно на каждую вкладку окно для ввода логина и пароля вылетает" - вот это не совсем понял, где вылетает? Может это проблема не прокси, а той программы где оно вылетает? Я использовал Proxifier, там ничего никогда не вылетало. 1 раз прописал и всё. Ещё возможно дело в вашем конфиге, попробуйте добавить 2 недостающие строки из моего в блок авторизации:
flush
allow login
мастер ломастер 19 июля 2015 02:40
Тестил, тестил, в общем если прописывать серваки как техподдержка сказала, то при перезагрузке все ip поключаются, прокси стартует но соединения нет. Буду по старинке без перезагруза.

nserver 8.8.8.8 - тут
nserver 8.8.4.4 - и тут что прописывать?
Я взял данные с /etc/resolv.conf но там только одна строка. Но по сути у меня и без этого всего все работает а проблему с перезагрузкой не решает.
Все настраиваю, проверяю все работает, reboot вбиваю и все после перезагруза все отпадает. Хотел поставить на Debian или FreeBSD есть мануалы по ним но неполные, но думаю все идентично. Но вот беда когда переустановил на Debian , FreeBSD , CentOS 7 и не к одной из этих операционок подцепится по PuTTY так и не смог сервер как будто висит. Думаю может ДЦ мутит что!
admin 19 июля 2015 07:24
По поводу параметра nserver написано тут http://3proxy.ru/howtor.asp#GCCUNIX, да, оно и без этого должно работать.
Может стоит хостинг сменить?
мастер ломастер 19 июля 2015 15:10
да я уже думаю об этом, но в принципе все и тут устраивает, если они останавливать серваки часто не будут. Попробую на другом хостинге и обязательно отпишусь, что и как работает.

Добавить комментарий

Введите код: *

Топ 10

Наши партнёры


Новые статьи

03 июня 2017
Использую для обхода заблокированных сайтов собственный прокси сервер, но даже через него не удавало...
12 августа 2014
Вам нужен собственный прокси сервер? Вы не знакомы с Linux? Тогда эта статья для вас. Выполняя поша...
10 августа 2014
Хорошая антивирусная программа – залог успешной работы персонального компьютера, надежный защи...