Установка 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.Привет. Спасибо за статью - очень помогла, т.к. не хотел ставить к себе на сервер 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 - это не использовать 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.У меня стоит 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 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
На здоровье, спамеры.
Ссылки вычистил, посмотрим как отомстить вам.
110 тИЦ пр4, продажные ссылки :) ну-ну.
- ответить
Опубликовано GogA в Втр, 05/05/2009 - 08:25.Ненадо мы больше не будем чесно)
- ответить
Опубликовано Гость (не проверено) в Втр, 05/05/2009 - 22:48.GogA ботинок лучше бы поинтереснее писал чем хрень про тиц и пр и продажные ссылки
- ответить
Опубликовано dfsss (не проверено) в Втр, 05/05/2009 - 23:50.Уважаемый, крестик находится в углу браузера.
- ответить
Опубликовано GogA в Ср, 06/05/2009 - 10:20.У меня 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.Отправить комментарий