Как поднять свои прокси?



Мне часто задают вопросы возможно ли настроить собственные прокси на арендованных VPS.  Ведь очевидно, если какие-то люди это делают и предоставляют доступ к своим прокси за деньги, то наверняка можно сделать это и самостоятельно. Это действительно так. Достаточно лишь обладать некоторыми знаниями и навыками.  Задача настройки собственного прокси-сервера сводится к настройке специализированного софта, наподобие веб-сервера или СУБД.

Что такое прокси?
Прокси-сервер — это служба, которая позволяет перенаправлять запросы пользователя через себя и возвращать ему ответ. То есть трафик полностью проходит через какой то третий узел — проксируется. Как правило,  прокси  —  это программа, которая запускается в режиме сервиса, или как их называют на сленге unix — демона (daemon).  Такой софт использует стандартные сетевые возможности операционной системы, поэтому для обеспечения ее работы должны быть соблюдены некоторые условия. К примеру,  необходимы IP-адреса, если вы хотите сделать множество прокси на своем VPS.

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




 

Зачем нужен прокси?

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

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

Исходя из принципов его работы, у прокси появляется эффект, который ценится используется сейчас для получения доступов уже на уровне самого Интернета.  Это подмена IP-адреса, с которого происходит обращение пользователя. Это позволяет анонимизировать работу в сети.  Или организовать имитацию множества пользователей с одного рабочего места.

shema-ispolzovania-proxy

Зачем нужны прокси?

 

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

 

Итак, на этом покончим с введением и перейдем непосредственно к той части, за который вы наверняка сюда и пришли.

Где взять IP для работы прокси?

Прежде всего нужно зарегистрировать виртуальный сервер и получить для него IP-адреса.  1 адрес всегда выдается хостером по-умолчанию.  За дополнительные адреса как правило взымается ежемесячная плата. Стоимость дополнительных адресов варьируется, на май 2016 года это около 60-150 рублей или 1-2$ у зарубежных хостеров.  Это довольно дорого,  особенно если прокси будут использоваться для каких-то «серых» дел вроде спама и регистрации аккаунтов — очень вероятна блокировка ваших адресов со стороны сервиса, с которым вы собираетесь работать.  Поэтому сейчас очень популярно использование IPv6-адресов для создания прокси.








Что такое IPv6?
Изначально в протокол IP был заложен фундамент, который ныне исчерпывается.  IPv4 адресов не хватает, а те что есть довольно дороги. Но организации, которые занимаются развитием глобальной сети,  уже давно разработали новый протокол, который призван решить эту проблему с помощью IPv6-адресации.  Его преимущество в том, что каждому пользователю выдается так много IP-адресов,  что просто невозможно себе представить себе такие цели, для которых их окажется недостаточно.   Так, минимальной единицей адресации является целая сеть с маской /64, которая позволяет использовать внутри себя около 18,4 триллионов триллионов (я просто не знаю какое это число 18,4*10^18).

kolichestvo-ipv6-adresov

Каждый из которых может использоваться на отдельном устройстве.   Вот такие масштабы.

 

Основная проблема заключается в том, что не все сервисы позволяют подключаться к себе с таких IP.  Для перехода на IPv6 необходима техническая модернизация сетей.  На данный момент многие крупные  социальные сети и сервисы уже это сделали  — в их числе Google, Yandex, VK, facebook, instagram и прочие.

Хорошая новость в том, что многие провайдеры предоставляют IPv6 сеть для арендованных VPS. Это значит, что вы можете использовать для настройки прокси именно такие адреса очень дешево. Достаточно лишь настроить службу прокси на работу с ними.

Однако, есть подводные камни. Эти адреса так же подвержены блокировке. И при неосторожном использовании сервисы вроде Гугла блокируют их целыми сетями, в которые входит все это огромное количество IP-адресов.   Я не имею опыта использования таких прокси, поэтому вопрос как их использовать выходит за рамки моей компетенции. Я подразумеваю, что вы сами знаете как их использовать, и знаете обо всех рисках с этим связаных.

Если вам нужно немного прокси или на тест

Дешевые прокси поштучно

И здесь сделаем небольшое отступление. Дело в том, что настройка своего сервера может быть невыгодна, если вам нужно немного прокси. Десятки или даже пару сотен. Поскольку аренда VPS и настройка будет стоить значительно дороже, чем аренда нужного вам количества уже готовых индивидуальных прокси. И для тех, кому невыгодно заказывать такую настройку собственного VPS с proxy, нашелся более удобный вариант.

Если при заказе введете промо-код  vpsadm.ru  то получите 10% скидку на прокси  (и не на прокси, кстати, тоже — дедики, VPS, VPN и прочие дела тоже будут со скидкой по этому коду).

Выгодное предложение для вас — взять уже готовые настроенные индивидуальные прокси — и ipv6 и ipv4:

 

Датацентры у этих ребят в UA, но айпи-адреса российские. Как видите, пакет 500 прокси ipv6 или десяток ipv4 гораздо выгодней взять у них, чем заказывать настройку собственных прокси. А вот если требуется больше, то есть смысл рассмотреть покупку VPS по минимальному тарифу за 4$ + IPv6 сеть /48 — 30$/мес. Итого вам это будет обходиться в 34 доллара в месяц. Сеть /48 содержит 65535 сетей /64, и именно столько прокси ipv6 можно будет вычерпать с неё. Разумеется одновремено все 65к поднять не получится — не выдержит VPS. Но по 1000-2000 — запросто.

Ну и настройка всего этого дела стоит 2000 руб.

 

И теперь уж точно переходим к технической части, с которой я и могу помочь.

Как настроить VPS для работы прокси?

План тривиален:

  1. Назначить IP-адреса на сетевой интерфейс сервера
  2. Установить и настроить софт для proxy.  Запустить его.

Сначала необходимо назначить имеющиеся у вас адреса на сетевой интерфейс сервера. Это справедливо как для традиционных IPv4, так и для IPv6.  Это делается стандартными настройками операционной системы.

Например, вот так это делается временно:

ifconfig eth0 inet6 add 1111:1111:1111:1111:1111:2222:1111:0000/128

На текущий момент этот адрес у вас будет настроен, но после перезагрузки сервера или перезапуска сети это слетает.

Поэтому следует использовать более надежный способ через файл конфигурации:

В deb-системах, например, это /etc/network/interfaces:

iface eth0 inet6 static
address 1111:1111:1111:1111:1111:2222:1111:0000
netmask 128
iface eth0 inet6 static
address 1111:1111:1111:1111:1111:2222:1111:0001
netmask 128
iface eth0 inet6 static
address 1111:1111:1111:1111:1111:2222:1111:0002
netmask 128

ipv6-adresa

Таким образом, после перезапуска сети у вас будет кроме основного адреса /64 (или какой вам там выдал провайдер) еще несколько дополнительных c маской /128. Можно использовать и другую маску, но это  практически не имеет значения, если сеть меньше /64.

Как разбить свою IPv6 сеть?

Для того чтобы это сделать можно воспользоваться каким-либо калькулятором, например таким. Просто вводите туда свой основной ipv6, выданный провайдером, выбираете на сколько и каких подсетей или хостов вы хотите ее разбить и получаете список адресов, которые уже можно использовать для настройки.

Теперь вам понадобится  непосредственно софт.   Здесь вариантов не так уж и много. Я могу порекомендовать два, которые пробовал сам и настраиваю для своих клиентов.  Это мощный прокси-сервер squid  и простой 3proxy.   Второй сервер позволяет также настроить не только http, но и socks-прокси, которые позволяют проксировать любой трафик.  Некоторый софт может работать только через них.

Как настроить squid для IPv6?

Итак, squid — это старый и проверенный прокси-сервер, ставший стандартом де-факто  во всем мире для организации проксирования трафика.  Он обладает мощным функционалом по распределению трафика. Это кэширующий прокси-сервер.  В то же время он нетребователен к ресурсам хоста, на котором запущен. Так, он легко может «жить» в 256 мегабайтах оперативной памяти, обслуживая при этом локальную сеть в сотню машин.    Точно так же можно его использовать и в наших целях.   Но у него есть и некоторые недостатки. Squid позволяет настроить только HTTP-прокси. Вернее, не только, но не думаю, что для ваших целей может понадобиться FTP или Gopher которые он умеет кроме HTTP.   Он не умеет работать с SOCKS.

Кроме того, на момент написания этой статьи актуальной была в репозиториях версия 3.3, которая некорректно работает с IPv6.  Для того чтобы решить эту проблему следует использовать версию 3.5 и выше.

Для того чтобы установить эту версию из репозиториев в своей Ubuntu 14.04, которую я использую на VPS,  понадобилось добавить репозиторий:

echo ‘deb http://ubuntu.diladele.com/ubuntu/ trusty main’ >>  /etc/apt/sources.list

apt-get update

apt-get install libecap3 squid squid-common

При этом, если вы ранее уже установили squid3 из стандартных репозиториев, то потребуется его удалить. Иначе при попытке установить новую версию получите ругань на зависимости.

Теперь нужно внести в файл конфигурации настройки для использовании ваших адресов и портов:

 

http_port 1.1.1.1:3127 name=3127
http_port 1.1.1.1:3128 name=3128
http_port 1.1.1.1:3130 name=3130

acl user1 myportname 3127
acl user2 myportname 3128
acl user3 myportname 3130

tcp_outgoing_address 1111:1111:1111:1111:1111:1111:1111:0005 user1
tcp_outgoing_address 1111:1111:1111:1111:1111:1111:1111:0003 user3
tcp_outgoing_address 1111:1111:1111:1111:1111:1111:1111:0002 user2

 

После чего нужно запустить или перезапустить сервис:

service squid restart

Теперь можно попробовать подключаться. Указываете в настройках софта адрес 1.1.1.1  и порт 3127,  а на выходе будете иметь адрес  1111:1111:1111:1111:1111:1111:1111:0005. При условии, что вы ранее назначили его на интерфейс. Если адрес отсутствует, то будет браться либо самый крайний из имеющихся IPv6, либо вообще исходный IPv4 — 1.1.1.1 из нашего примера. В любом случае, следует посмотреть какой адрес у вас на выходе. Я, например,  делаю это через сервис myip.ru, указав свой прокси в настройках браузера.

kak-proverit-ipv6-proxy

 

Настройка 3proxy для ipv6

Его установка немного сложнее, поскольку этой программы нет в репозиториях. По крайней мере для deb-систем я не нашел. Для rpm-based вроде как есть в epel-репозитории, откуда можно и установить его с помощью yum.

В любом случае, всегда можно установить его из исходников, взяв пакет tgz  с официального сайта программы.  Кстати, разрабатывается и поддерживается она нашим  соотечественником Владимиром Дубровиным.  Программа ведет свой отсчет с 2000 года, что тоже срок немалый и снискала доверие множества пользователей.

После скачивания программы на ваш VPS нужно распаковать и  скомпилировать её:

tar zxfv 3proxy-0.8.6.tar.gz

cd 3proxy-3proxy-0.8.6/

make -f Makefile.Linux

Затем скопировать бинарник куда-нибудь в удобное место для дальнейшего использования.  Например так:

cp src/3proxy /usr/local/3proxy

Философия программы проста — максимум фунционала при небольшом размере и потреблении ресурсов.   Этот маленький прокси-сервер умеет на удивление много чего. Например, проксирование POP3 или SMTP.  И среди всего многообразия его функционала нас интересует SOCKS и IPv6.

Теперь нам  нужно создать конфигурацию:

nano /usr/local/3proxy.cfg

И внести туда нечто подобное:

daemon
auth none
flush
nserver 8.8.8.8
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
#proxy -a
#socks

proxy -6 -n -a -p8056 -i1.1.1.1 -e1111:1111:1111:1111:1111:1111:1111:0005
socks -6 -p1056 -i1.1.1.1 -e1111:1111:1111:1111:1111:1111:1111:0004

IP-адреса нужно использовать свои, разумеется.

Сохранив конфигурацию,  можно пробовать запускать прокси:

/usr/local/3proxy /usr/local/3proxy.cfg

Если команда ничего не выдает на консоль, значит у вас все запустилось без ошибок и можно проверять прокси.  В случае проблем нужно править конфиг.  Дополнительно можно убедиться в том что прокси запущен так:

ps -fe|grep 3proxy

Эта утилита выводит список всех исполняемых процессов и показывает только те, где есть подстрока 3proxy. Кстати, при изменении конфигурации при отладке вам понадобится перезапускать прокси. Так вот, вам нужен идентификатор процесса, чтобы по нему выключить программу.   kill PID.  Этот самый PID можно как раз увидеть через ps -fe|grep 3proxy

Здесь нет возможности использовать системные средства для управления службой (service restart), как в случае со squid. Если вы захотите это делать, придется написать свой скрипт для старта-останова 3proxy.

Также разница может быть в использовании ресурсов. Вероятно squid способен обслуживать гораздо больше прокси, чем 3proxy.

 

В конфигурации вы могли заметить, что один вариант прокси настроен как proxy, а другой как socks. В первом случае, это будет то же самое как и у squid. А вот для настройки socks-proxy есть способ, который вообще не требует никаких дополнительных программ и настроек. Его можно очень быстро и просто запустить с помощью SSH-туннелирования.

Как быстро настроить socks-прокси на своем VPS?

Достаточно пробросить динамический туннель  на локальный интерфейс вашего компьютера с помощью ssh-клиента, которым вы обычно подключаетесь к своему серверу. Затем указать в настройках браузера проброшенный порт на локальном интерфейсе и вы будете ходить в интернете уже через свой socks-proxy.

Я подробно показывал как это настроить вот в такой инфографике:

Как сделать прокси с помощью SSH-туннеля:

Я сам часто использую этот способ, когда мне просто нужен что называется «анонимайзер»,  для посещения каких-то блокированных ресурсов.

Стоимость настройки своих прокси

Очевидно, что это будет дешевле, нежели аренда прокси у соответсвующих компаний.  Так, самый дешевый IPv6 прокси предоставляют в аренду, скажем за 10 рублей в месяц. И если их вам надо хотя бы тысячу, то это выливается в круглую сумму в десятки тысяч рублей в месяц. Тогда как вы можете поднять огромное количество IPv6 прокси на своем VPS всего за 500 рублей. Именно столько сейчас стоит аренда недорогого  VPS у большинства хостеров. Можно найти и дешевле.  Учитывая что, вы на нем можете запустить тысячи таких прокси для собственных нужд, экономию подсчитайте сами.  Кроме того, арендуя прокси у сторонних компаний, никто не может вам гарантировать, что эти же прокси не отданы кому-то еще.  Точнее, гарантировать то можно. Но это невозможно проверить. И если компания занимается оверселлингом — продажей якобы индивидуальных прокси нескольким пользователям — то эти прокси могут быть забанены, если вдруг ваш «сосед» будет работать не соблюдая мер предосторожности. В случае со своими прокси это исключено — это самые что ни на есть индивидуальные и элитные прокси, какие только могут быть.

 

Услуга  поднятия IPv4  и IPv6 прокси серверов

С некоторых пор, друзья, я предоставляю услуги системного администрирования Linux. Поэтому настройка таких proxy напрямую входит в область моей компетенции.   И если вам понадобится профессиональная помощь в этом деле, то буду рад принять ваши заявки на моем сайте vpsadm.ru, или напрямую в скайпе dr.motor.  Цена вопроса от 2000 рублей за настройку VPS.  Причем, количество прокси для меня при настройке не имеет значения —  я могу вам запустить и 10000 IPv6 прокси (IPv6 сети /64 c тем огромным количеством адресов хостеры предоставляют бесплатно), или сотни IPv4 (если вы арендуете столько адресов у хостера).

К примеру, я могу подсказать где взять дешевые IPv4 адреса в больших количествах  (от 30 рублей за адрес при партии в 1к адресов). 
Стоимость IP-адресов

Можете без проблем также обращаться за консультациями любым удобным способом — хоть здесь в комментариях, хоть в нашей группе на фейсбуке, хоть в скайп.

Комментариев

  1. Андрей :

    Ответить

    • drmotor :

  2. Ответить

  3. Алексей :
  4. Маша :

    Ответить

    • drmotor :

  5. Сергей :

    Ответить

    • drmotor :

  6. Ответить

  7. nick :

    Ответить

    • drmotor :

Сохраните для друзей или чтобы прочесть в другой раз:

Добавить комментарий для Борис Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *