Установка proxy-сервера на VDS

В последнее время многие seo-шники столкнулись с проблемой быcтрого «бана» IP адреса при парсинге выдачи поисковых систем. Конечно бан — условно, это всего лишь просьба ввести капчу. Одни из столкнувшиеся с проблемой — пользователи программы yazzle, им в первую очередь и хочется рассказать как можно поднять простой некеширующий прокси-сервер на своём сервере или VDS.

Конечно, можно использовать тяжёлый программный пакет SQUID, который зарекомендовал себя как надёжный кеширующий прокси-сервер, но я предпочту разработку отечественного программиста из Нижнего Новгорода. Да, если кто уже догадался, это будет прокси-сервер 3proxy.

Не смотря на его функциональность (подробнее на официальном сайте 3proxy.ru), нам будет достаточно просто организация HTTP прокси-сервера.

Рассмотрим установку и настройку сервера на примере VDS на базе FreeBSD 6.3 от FirstVDS.

Для начала сделаем нового пользователя VDS, для этого cоздаём в ISPmanager нового юзера, пусть имя ему будет 3proxy.

Подключаемся с помощью putty по ssh (справочник по ssh) к серверу и проходим аунтефикацию.

Далее нам надо скачать, установить, настроить и сделать автоматический запуск 3proxy.

Установка и настройка прокси-сервера

%mkdir 3proxy
%cd 3proxy
%pwd
/home/3proxy/data/3proxy

Далее загружаем исходники последней версии прокси-сервера (на момент написания статьи 0.5.3):

%wget http://3proxy.ru/0.5.3k/3proxy-0.5.3k.tgz
%tar -zxf 3proxy-0.5.3k.tgz
%cd src

Всё что нам надо сделать перед компиляцией, это добавить в конфиг одну строчку, чтобы сервер был анонимным.

%ee proxy.h
Вставить строчку вверху, в блоке определения переменных
#define ANONYMOUS 1

Всё, теперь смело компилируем:

%cd ..
%make -f Makefile.unix

Секунд через 20-30 всё будет готово и можно продолжать.

Теперь создадим файл конфига для нашего прокси-сервера:

%cd src
%ee config.cfg

А в конфиге укажем что для использования прокси-сервера необходимо авторизоваться:

daemon
auth strong
users login:CL:password
proxy -i92.92.92.92 -e92.92.92.92

Где 92.92.92.92 — ваш IP адрес.

Чтобы сохраниться, жмём ctrl+c и вводим exit enter. Я интуитивно в первый раз всё нашёл, хотя и немного другим способом.

Вот и всё, если не терпится, то можно запустить и проверить работоспособность:

%./3proxy config.cfg
%top

Если в списке процессов (команда top или ps -ax | grep 3proxy) есть 3proxy — значит установка и запуск прошли успешно. Пробуем прописать в браузере IP адрес и порт 3128 (стандартный, например изменяется добавлением в конфиге -p8080 к команде proxy для порта 8080) и заходим на страничку http://gogolev.net/tools/ip/, где сервер выдаст вам ваш IP адрес, с которого поступил запрос. Увидели адрес своего VDS? Тогда не надо рвать клочь на голове перечитывая статью.

Настройка автоматического запуска прокси-сервера

Одна из сложностей, которая возникла (лично для меня), это запуск прокси-сервера при старте VDS под правами пользователя, а не рута. Спасибо друзьям, без вашей помощи статья бы не вышла в таком виде.

Для начала подключаемся через ssh к VDS под юзером с правами root.

%cd /usr/local/etc/rc.d/
%ee 3proxy.sh

В файл 3proxy.sh записываем:

#!/bin/sh
cd /home/3proxy/data/3proxy/src/
su 3proxy -c ’./3proxy config.cfg’

Не забывайте в последней строчке поставить ковычки, а то можете потерять полтора часа как я, думая: «какого фига не работает ssh и ftp, но по 80 порту отдаётся правильная информация?»

Сохраняем файл, и добавляем файлу права на выполнение:

%chmod 0555 3proxy.sh

Теперь можно перезагрузить наш VDS:

%reboot

Через минуту опять подключаемся по ssh, и если видим процесс 3proxy командой top или ps -ax | grep 3proxy, то можно считать установку прокси-сервера 3proxy законченной.

Установка прокси-сервера на несколько IP

Первая мысль была, создать в IPSmanager ещё одного пользователя и повторить для него все шаги. Вторая — для того же пользователя сделать копию папки 3proxy cp -r 3proxy 3proxy2 и отредактировать конфиг. Но самый простой способ, добавить в конфиг прокси строчку:

proxy -i93.93.93.93 -e93.93.93.93

Да, да. Готово. Ещё раз перезагрузите VDS и можете начинать работать.

Спасибо что дочитали статью, надеюсь на ваши комментарии, пожелания и замечания.


Желающие помочь с установкой сервера teeworlds-0.4.3 на тот же VDS для домена teeworlds.ru, пишите в аську. Пару суток мучаюсь :)

Кстати, мой хороший друг отжигает. Вот так надо жить, чтобы все говорили: «Яркая у тебя жизнь, чувак!»

А так как недавно был Helloween, смотрим как гугл, яху и другие его отмечали.

Поделитесь с друзьями:
Работа не от рута

в самом низу конфига (3proxy.cfg) добавить строчки типа:

chroot /usr/local/jail
setgid 1002
setuid 1015

в этом примере
1002 - ID группы (надо создать группу)
1015 - ID юзера (надо создать юзера)

а в /usr/local/etc/rc.d положить файлик proxy.sh из папки scripts/rc.d/ с исходниками

Опубликовано Alex_K (не проверено) в Втр, 04/11/2008 - 00:49.
Спасибо :)

Спасибо :)

Опубликовано GogA в Ср, 05/11/2008 - 03:50.
вконтакте

Спасибо за замечательную статью.

Подскажите плиз,в каком направлении думать)) почему по дефолтным настройкам не открывает некоторые сайты(vkontakte.ru например). выдает 502 ошибку.

Опубликовано kritic (не проверено) в Сб, 08/11/2008 - 14:49.
Даже представить не могу,

Даже представить не могу, интересно самому.

Опубликовано GogA в Сб, 08/11/2008 - 16:42.
А что из портов не поставили,

А что из портов не поставили, 3proxy есть в портах, ставится элементарно, да и обновлять потом проще его ;)

Опубликовано Гость (не проверено) в Чт, 20/11/2008 - 15:27.
вот-вот, тож подумалось, а

вот-вот, тож подумалось, а чего не из портов то?

Опубликовано mult (не проверено) в Пт, 21/11/2008 - 05:35.
Слукавлю: так интересней :)

Слукавлю: так интересней :)

Опубликовано GogA в Пт, 21/11/2008 - 22:15.
Anonymity ^_^

Привет. Спасибо за статью - очень помогла, т.к. не хотел ставить к себе на сервер squid - тяжеловесным он мне кажется.
Хочу добавить, что если в конфиге дописать "-n -a" то проксик будет анонимным и не будет показывать HTTP_X_FORWARDED_FOR. Делается это так:
proxy -i92.92.92.92 -e92.92.92.92 -n -a
-n не знаю что такое, в офф манах нет - может и не нужно. А вот -a - это анонимность.

Опубликовано Lord Alfred (не проверено) в Пт, 28/11/2008 - 01:24.
-n - это не использовать

-n - это не использовать NTLM-авторизацию

Опубликовано Гость (не проверено) в Чт, 15/01/2009 - 21:18.
Жаль вы про соксы не

Жаль вы про соксы не написали...

Кстати, о вконтакте:
А теперь предположим, что нам нужно по ряду причин запретить доступ на некоторые сайты, например, общеизвестный www.anekdot.ru. Для этого используем команду nsrecord:

nsrecord www.anekdot.ru 127.0.0.3
тем самым перенаправляем любые запросы сайта с анекдотами на локальный адрес. Можно использовать эту команду в более изощренном варианте, например,

nsrecord www.anekdot.ru 87.250.251.11
будет вместо сайта www.anekdot.ru перенаправлять на сайт www.yandex.ru. Вместо яндекса можно было бы сделать перенаправление, к примеру, на корпоративный сайт.
Впрочем, в версии 0.6 появилась возможность более удобно управлять списком доступа на сайты. Для этого можно использовать уже хорошо знакомую нам команду deny с использованием шаблонов, например:

deny * * www.anekdot.ru *

- безусловно запрещает доступ на сайт www.anekdot.ru

deny * * anekdot* *

 запрещает доступ на все сайты, в названии которых встречается anekdot.

Впрочем, продвинутые пользователи могут обойти этот запрет, обращаясь к сайту по его IP или используя анонимные сайты.

У себя я использую целый список шаблонов, возможно, кому-то пригодится:

deny * * *sex*,*porn*,*adult*,*xxx*,*gamepark*,*vagina*,*mpp3*,*seks*,*virgin*,*pipisk*,*pastushka*,*1xuk.ru*,*teens*,*zaycev*,*lubovmorkov*,*mp3*,*bannerbank*,*yadro*,*dosug.nu*,*lesbo*,*lesbian*,*eroti*,*viporg.ru*,*intim*,*erohost*,*eross*,*teenfant*,*nudist*,*pimpserver*,*banner*,*ads.sup.com*,*rb.mail.ru*,*counter.rambler.ru*,*carol.ru*,*video.mail.ru*,*pelotka*,*akadostream*,*media.kino-govno.com*,*odnoklassniki.ru*,*vkontakte.ru*,*zhuki.mail.ru*,*fishki.net*,*dofiga.net*

Чтобы на загромождать конфиг длинными списками, можно использовать команду include и макрос $. Например, предыдущая команда могла бы выглядеть так:
deny * * $c:\3proxy\ban.txt

где файл ban.txt — это текстовый файл, содержащий список запретных ресурсов (через запятую, без пробелов)

либо так:

include c\3proxy\ban¬include.txt

где файл ban_include.txt содержал бы в себе всю строку конфига с запретами.

Желающие могут найти списки бан-листов в интернете и адаптировать к формату конфига 3proxy, благо что ограничений на размер конфига нет. Так же как нет ограничений на файлы, включенные через include. На файлы, включенные через макрос $, существует ограничение в 64 килобайта.

Для удобства дальнейшего пользования конфиг можно разбить на логические разделы и пополнить комментариями. Я это делаю с помощь символа #. Напомню, что любая строка конфига, начинающаяся с пробела или с символа #, воспринимается сервером как комментарий. В нашем случае окончательно "вылизанный" конфиг может выглядеть так (версия 7):

Опубликовано Lord Alfred (не проверено) в Пт, 28/11/2008 - 02:34.
Спасибо за ценное

Спасибо за ценное дополнение.

В данном случае такой проблемы не возникает, так как данные прокси сервера используются для личных целей и не предназначены для массового использования.

Опубликовано GogA в Пт, 28/11/2008 - 11:48.
спасибо з за объяснекние по deny

У меня стоит UBUNNU и на ней 3proxy 0.6
прописывал там nsrecord www.odnaklassniki.ru www.ya.ru
не работает а вот deny сработало нормально не понимаю почему не работает nsrecord хотя на версии 0.5 работала под windows.

Опубликовано casper (не проверено) в Пт, 19/12/2008 - 10:38.
Скажите, на сколько прокси

Скажите, на сколько прокси нагрузит сервер? Ведь у VDS ресурсы ограничены. В частности, как много оперативной памяти занимает работающий процесс?

Опубликовано Гость (не проверено) в Чт, 08/01/2009 - 21:42.
аутентификация

Как отключить аутентификацию? (запрос логина и пароля)

Опубликовано FoLk (не проверено) в Пнд, 02/03/2009 - 18:31.
В конфиге вместо "auth

В конфиге вместо "auth strong" пишите "auth none"

подробней 3proxy.ru/howtor.asp

Опубликовано GogA в Ср, 04/03/2009 - 04:36.
Спасибо за статью, буду

Спасибо за статью, буду рекомендовать :)

Опубликовано Semen (не проверено) в Сб, 14/03/2009 - 16:16.
Спасибо за статью, сидим на

Спасибо за статью, сидим на работе всем отделом читаем)

Опубликовано Гость (не проверено) в Пнд, 04/05/2009 - 21:09.
> 21:09 На здоровье,

> 21:09

На здоровье, спамеры.

Ссылки вычистил, посмотрим как отомстить вам.

110 тИЦ пр4, продажные ссылки :) ну-ну.

Опубликовано GogA в Втр, 05/05/2009 - 08:25.
Ненадо мы больше не будем

Ненадо мы больше не будем чесно)

Опубликовано Гость (не проверено) в Втр, 05/05/2009 - 22:48.
GogA ботинок лучше бы

GogA ботинок лучше бы поинтереснее писал чем хрень про тиц и пр и продажные ссылки

Опубликовано dfsss (не проверено) в Втр, 05/05/2009 - 23:50.
Уважаемый, крестик находится

Уважаемый, крестик находится в углу браузера.

Опубликовано GogA в Ср, 06/05/2009 - 10:20.
У меня VPS стоит на

У меня VPS стоит на Linux
Дошел до момента
%./3proxy config.cfg
%top

мой шелл говорит что нету такой команды и все.

Опубликовано Гость (не проверено) в Пт, 05/06/2009 - 16:31.
а можно видео по настройки

а можно видео по настройки прокси сервера? по этой статье.

Опубликовано Гость (не проверено) в Пт, 09/10/2009 - 19:49.
Извините, но и так всё

Извините, но и так всё подробно написано. Если это не смогли повторить, возможно рентабельней будет обратиться к за платной настройкой вдса. Поищите на форумах, предлагают люди такие услуги.

Опубликовано GogA в Пнд, 19/10/2009 - 06:20.
Я вот про вдс вообще не

Я вот про вдс вообще не сильно понял. Зачем он нужен? Вот ты разместил на нем несколько сайтов, а дальше все это вместе упало. Да и еще какая заморочка с администрированием..

Опубликовано Online (не проверено) в Втр, 17/11/2009 - 14:39.
Зачем нужны автомобили? Есть

Зачем нужны автомобили? Есть же велосипеды!

Аналогичное утверждение.

Опубликовано GogA в Ср, 18/11/2009 - 15:32.
Да кст. видео урок был бы

Да кст. видео урок был бы очень полезен! А насч. "обратиться за платной", то хотелось бы самому научиться... хотя все же спасибо! Бум ковыряться! :)

Опубликовано Dan (не проверено) в Втр, 24/11/2009 - 14:38.
Вариант настройки

я у себя сделал настройку, по которой доступ к прокси разрешается только с основного ip сервера. Получается меньше геммороя неудобств при использовании.

auth iponly
allow * основной_ip_сервера * *

Опубликовано Саша (не проверено) в Втр, 16/03/2010 - 22:40.
спасибо, на днях тоже

спасибо, на днях тоже попробую сделать

Опубликовано evgen (не проверено) в Ср, 08/09/2010 - 10:23.
очень полезная информация,

очень полезная информация, спасибо

Опубликовано Adam (не проверено) в Втр, 14/09/2010 - 09:13.
как сделать

Здравтвуйте! статья очень хорошая, у меня вопрос:
сейчас пишем парсер и возникает необходимость делать запоросы через прокси, как это сделать, т.е. как запустить скрипт и достать данные так, чтобы сайт источник думал, что запросидет с ip прокси, ну т.е. через прокси. надеюсь я понятно описал задачу, буду очень признателен вашему овету.

апдейт

капча вообще не реально трудная!!!!! уже 15 раз ввожу

Опубликовано Рашид (не проверено) в Чт, 18/11/2010 - 14:04.
За капчу извиняюсь.. спам всё

За капчу извиняюсь.. спам всё равно пробивается :(

Попробуйте почитать про curl или sockets.

Опубликовано GogA в Ср, 24/11/2010 - 21:03.
Всё достаточно подробно

Всё достаточно подробно написано. Даже до меня дошло. :)
Конечно с видео уроком было бы не так страшно начинать. Спасибо.

Опубликовано Игорь (не проверено) в Сб, 27/08/2011 - 10:28.
Чтобы установить перечитал

Чтобы установить перечитал много статей и чему-то научился. Если делать тупо по видео или шагам, то эффект обучения достигнут не будет, но достингнуть цели, получится, явно быстрей.

Опубликовано GogA в Ср, 31/08/2011 - 15:18.

Отправить комментарий

Содержимое этого поля является приватным и не будет отображаться публично.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

КАПЧА
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
         _       _   ____    _____        
___ / | __| | | _ \ | ___| ___
/ _ \ | | / _` | | |_) | | |_ / _ \
| __/ | | | (_| | | __/ | _| | __/
\___| |_| \__,_| |_| |_| \___|
Введите код, изображенный в стиле ASCII-арт.

Подпишись

Подпишись на RSS!

Друзья сайта

Последние комментарии

Регистрация доменов ru