Скрипт прокси сервера скачивается. Информационная безопасность. Получение браузером страницы из сети

1. Введение

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

На заре моей диалап-юности модемы обменивались сжатыми данными, из-за чего конечная скорость веб-серфинга была выше в сравнении со скачиванием zip-архива. Таким образом экономились время и деньги клиента за счет нагрузки на процессоры модемов во время компрессии. Настали другие времена: диалап постепенно сдает свои позиции под натиском выделенных линий. А тут уже ни о каком сжатии трафика на чьих-либо процессорных мощностях речи не ведется как правило: трафик идет в своем первозданном виде, ни на байтик не сжат
(если этим не озаботились на стороне
сервера). А ведь его можно сжать!..

Для этого нам понадобится еще одно звено между браузером и веб-сервером, которое, как модем, будет сжимать весь входящий (входящий для браузера) трафик. Звеном этим будет являться обычный с виду php-скрипт на удаленном веб-сервере. Именно этот скрипт в ответ на специально составленный запрос и будет скачивать необходимую вам страницу и уже в сжатом виде отдавать ее браузеру. Основные требования к хостингу, на котором расположен этот php-скрипт: отсутствие баннеров хостера, возможность использования CURL и GZIP (проверить их доступность можно запуском скрипта с вызовом функции
phpinfo).

Чтобы лучше понять механизм работы системы промежуточного сжатия трафика, рассмотрим более подробно технологию ее работы.

На рисунке ниже представлена схема трех вариантов загрузки страницы: обычный вызов, сжатие данных на промежуточном сервере и прозрачная работа со сжатием страницы на промежуточном сервере. Рассмотрим что происходит в каждом из случаев.

2. Получение браузером страницы из сети

2.1. Обычный вызов

Допустим пользователя заинтересовала страница page.html на сервере site.com . Он набирает URL site.com/page.html в строке адреса. Браузер после этого производит по сети http-запрос страницы http://site.com/page.html (на рисунке — тонкая пунктирная стрелка, первая слева). В ответ на этот запрос веб-сервер site.com выдает http-ответ браузеру и следом за ним тело страницы page.html (на рисунке – жирная стрелка, вторая слева). После этого браузер отображает пользователю на экране монитора содержимое полученной страницы.

2.2. Сжатие данных на промежуточном сервере

Введем промежуточный сервер webzip.com между браузером и веб-сервером site.com, на котором будет происходить сжатие данных. Алгоритм получения страницы page.html такой же, как и в предыдущем случае за исключением того, что браузер запрашивает страницу не непосредственно у site.com, а через webzip.com. Причем полноразмерные (несжатые данные) идут только между site.com и webzip.com, между браузером и webzip.com тело страницы идет в сжатом виде (на рисунке — жирная пунктирная стрелка, третья слева). Заметим, что по причине использования возможностей php для сжатия страницы её адрес, запрашиваемый браузером, примет вид http://webzip.com/myzip.php?url=http://site.com/page.html. Веб-сервер (webzip.com), получив этот запрос, вызывает скрипт myzip.php, а тот в свою очередь по get-параметру (пусть им будет параметр с именем «url») вызова производит запрос на http://site.com/page.html. Полученную страницу скрипт myzip.php отдает браузеру в сжатом виде.

2.3. Прозрачная работа со сжатием страницы на промежуточном сервере

От предыдущего случая данный отличается тем, что работа виртуальной сжимающей прокси для браузера, а соответственно и пользователя, не видны. Достигается это за счет введения еще одного звена, между webzip.com и браузером. Этим звеном является обычный http-прокси, который помимо всего прочего занимается переписыванием исходящих заголовков http-запросов (например, с http://site.com/page.html на
http://webzip.com/myzip.php?url=http://site.com/page.html).

3. Настройка прозрачной работы

3.1. Установка скриптов

Скачать скрипты, которые реализуют все вышеописанное, можно здесь. В
три файла: myzip.php, func.inc.php, log.php. Первый – основной файл, к которому обращается клиент. Второй – содержит определения функций для первого. Третий – предназначен для отображения статистики работы прокси (содержит шаблон страницы статистики, суть берется из файлов log.log и
count.log).

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

Не пугайтесь платности хостинга – он с легкостью будет окупаться. Например, если вы платите 0.05 $/МБ — потребуется 20 сэкономленных мегабайт для оплаты хостинга, дальше выгода. По моему опыту это порядка 100-150 МБ веб-серфинга (среднее сжатие – в 4-7 раз, хотя встречается и до 12).

Проверить правильность работы можно, набрав в браузере следующий адрес: http://webzip.com/myzip.php?url=http://ya.ru. Если всё сделано правильно – загрузится страница яндекса с немного видоизмененным заголовком
(title).

3.2. Настройка Proxomitron-а

Использовался Proxomitron ver. Naoko 4.4 (http://www.proxomitron.ru).

Итак, мы хотим добиться от проксомитрона возможности прозрачной работы с веб-проксей, иными словами скрытое преобразование исходящих URL-ов от браузера. Для этого в главном окне проксомитрона нажимаем клавишу «Заголовки» («Headers»). В открывшемся окне («Фильтры заголовков HTTP» / «HTTP Header Filters») пролистываем до строки «URL: Alias Redirector (Out)», выделяем ее. Жмем кнопку «Изменить» («Edit»), в
развернувшемся окне («Редактор фильтров заголовка» / «HTTP Header filter editor») заполняем поля следующим образом (все, кроме первого):

Заголовок HTTP (HTTP Header) (!не меняем!) URL: Alias Redirector (Out)
Совпадение с URL (URL Match) *
Значение заголовка (Header Value Match) *
Текст замены (Replacement text) $RDIR(http://webzip.com/myzip.php?url=\u)
Где http://webzip.com/ — URL вашего сайта, myzip.php – имя скрипта, который вы закачали на сайт.

Вся суть в последней строке: проксомитрон будет менять любой URL (параметр «\u») от браузера на http://webzip.com/myzip.php?url=\u. Если написать вместо $RDIR команду $JUMP, то работа проксомитрона будет полупрозрачной: браузер будет просто перенаправляться на новый URL. В случае использования $RDIR – перенаправление будет происходить незаметно для браузера.

Закрываем окна, нажимая последовательно «Ок», «Применить» («Apply»), «Ок». Если есть желание не повторять эту процедуру снова – сохраните настройки.

В браузере прописываем прокси сервер с IP=127.0.0.1 и портом 8080 (порт, прослушиваемый проксомитроном по умолчанию).
Убедиться в том, что система сжатия трафика работает, можно всё так же — по изменяющимся заголовкам страниц (новый слева направо: исходный и переданный браузеру размер страницы в байтах, коэффициент сжатия, использование куков, get, post параметров, время генерации страницы в секундах, исходный заголовок).</p> <p>Поделюсь радостью — у меня даже аська заработала сквозь проксомитрон.</p> <p><b>4. Тестовая экономия </b></p> <p>Настроив проксомитрон, решил выразить в цифрах новую работающую систему. Далее следует что-то вроде протокола 15-ти минут ускоренного веб-серфинга.</p> <p>Проверил через веб-интерфейс почту на mail.ru: <a href="/error-itunes/ne-poluchaetsya-sdelat-yandeks-startovoi-stranicei-kak-sdelat/">главная страница</a> – уже 39 кБ экономии; вошел в ящик – уже 60 кБ; побегал по папкам, посмотрел почту; вышел — уже 300 кБ экономии. Задал парочку запросов яндексу – на выходе 570 кБ. Отправил три смски (Мегафон, Билайн, МТС). Походил по форумам на sql.ru и rsdn.ru. Поискал в гугл парочку абракадр. Смотрю на счетчик — итого два мегабайта экономии. Вроде бы пустячок, но это всего лишь час <a href="/oshibki-i-devajjsov/kak-rabotaet-poligraf-detektor-chto-vklyuchaet-obychnoe-poligrafologicheskoe-obsledovanie-poryadok-rabot/">обычной работы</a>. Что же получится у вас за месяц работы? Копейка рубль бережет.</p> <p><b>5. Итого </b></p> <p>Сразу предупрежу, что хостеры не очень приветствуют создание на их стороне чего-либо проксо-подобного. Используйте скрипт на свой страх и риск, отвечать вам. Однако, если вы не устраиваете публичной прокси с многогигабайтным трафиком, то вряд ли они заметят 200-500 МБ на скрипте – для них это капля в море. К тому же, если встроить скрипт сжатия в другую страницу, то заметить подвох хостеру будет еще сложнее. Она внешне (без вызова с <a href="/instructions/kak-polzovatsya-programmoi-everest-temperatura-everest-chto-eto-za/">нужным параметром</a> «url») будет представлять собой обыкновенную <a href="/reviews/yandeks-brauzer-sdelat-startovoi-stranicei-kak-ustanovit-domashnyuyu/">домашнюю страницу</a>. Хотя при особом желании провайдер и эту уловку обнаружит, но шанс мал. Ну, а если и обнаружит – скажете, что ваш сайт сломали и «невиноватые мы». В самом худшем случае придется сменить хостера (или аккаунт у прежнего:)).</p> <p>Не рекомендую использовать подобную проксю для доступа к очень <a href="/communications-and-the-internet/informaciya-o-sekretnyh-kodah-nokia-zashchitnyi-kod-sbros-nastroek-i/">секретной информации</a>, поскольку все логины-пароли идут сквозь хостера и без труда будут перехвачены при его желании. Однако, в случае применения HTTPS не всё так просто для подлого хостера.<br> Несмотря на некоторую долю «неанонимности» использования технологии ее можно использовать для легкого хака (легкого, то есть вас не будут искать ФСБешники в случае обнаружения атаки). Например, анонимно побаловаться с обработкой вводимых параметров на сайте одногруппника.</p> <p>Если вы заглянете в код скрипта, то обнаружите там парочку параметров, при помощи которых можно включать/выключать возможности скрипта. Например, изменение заголовка с целью вывода статистики работы скрипта (параметр MOD_TITLE). При желании к скрипту можно без труда добавить дополнительную функциональность. Например, вывод протокола работы в базу данных с целью его дальнейшего анализа (протокол по умолчанию можно посмотреть в<br> log.php).</p> <p>Замечу, что в Интернете уже существуют подобные сервисы (например, www.tcompressor.ru и www.toonel.net), как платные так и бесплатные. У них у всех есть свои плюсы и минусы. Основное достоинство применения вышеописанной технологии в том, что вы сами являетесь хозяином своего трафика (нет баннеров, нет оплаты, нет сомнительных приложений, нет хостера,<br> размещающего сервис) – всё в ваших руках.</p> <p>P.S. Не считаю свои слова истиной в последней инстанции, поэтому, если я в чем-то ошибаюсь, поправьте меня. Спасибо!</p> <p>P.P.S. Уверен, скрипт тоже не без греха, поэтому поправки приветствуются!</p> <i> </i> <p>В общем, я таки решился его выкатить. Инструмент очень мощный как я считаю, разрабатывался и шлифовался около года.</p> <h2>Что он умеет? </h2> <p>Он умеет полностью заменять очень опытного и квалифицированного в вопросах настройки проксей <a href="/system-and-update/hochu-stat-sistemnym-administratorom-s-chego-nachat-dolzhnostnye-obyazannosti-sistemnogo-administrator/">системного администратора</a>, услуги которого по этой теме стоят 2000 рублей за настройку одного сервера 🙂</p> <ul><li>Он умеет поднимать прокси на centos (6,7), debian и ubuntu (любых версий). То есть на любой из популярных ОС на хостингах он может поднять прокси. Но при наличии выбора рекомендуется Centos 7.</li> <li>Он читает на вход только лишь список IP-адресов. Рядом с ним должен быть файл ip.list со списком адресов. Скрипт разбирает этот список, определяет настроены ли адреса на <a href="/system-and-update/modem-ili-router-chto-vybrat-opisanie-setevyh-ustroistv-interfeis/">сетевом интерфейсе</a> и предлагает настроить те адреса, что есть в списке, но недоступны (не «подняты», т.е. не сконфигурированы в самой OS). Если вы соглашаетесь на эти настройки, то всё поднимается и прописывается в автозагрузку.</li> <li>Скрипт разбирает IPv6 и IPv4 в списке. И конфигурит все соответствующим образом.</li> <li>Он умеет поднимать SOCKS и HTTP прокси. По-умолчанию только http, о соксах он спрашивает, и можно согласиться на их поднятие.</li> <li>Скрипт генерирует для каждого прокси отдельную пару — логин-пароль. Логины вида user1, user2, .., userN. Пароли рандомные, из 8 символов.</li> <li>Все прокси он поднимает на разных портах, которые берутся из заранее определенного диапазона портов. Для socks можно указать диапазон.</li> <li>Скрипт загружает и компилирует из исходников <a href="/malfunction/obnovit-internet-eksplorer-do-10-versii-obnovlyaem-brauzer-internet-explorer-do/">актуальную версию</a> 3proxy. Вся настройка именно на нём. Это очень <a href="/battery-and-power-consumption/programmy-dlya-maininga-obzor-luchshih-variantov-dlya-vashego/">хороший легкий</a> прокси-сервер, созданный специально для подобных нужд. Может выдерживать очень <a href="/the-sounds-and-music/macbook-air-zavisaet-pri-zagruzke-bolshaya-i-prodolzhitelnaya/">большие нагрузки</a> при относительно небольших ресурсах. (1000 прокси на каждый 1 GB RAM). Обкатано на десятках клиентов. У топовых клиентов поднимали до 16к прокси на одном сервере с 8 гб RAM.</li> <li>В случае если прокси сервер уже был ранее установлен — скрипт это определит, и спросит нужно ли переустанавливать. Удобно при <a href="/communications-and-the-internet/kak-osvobodit-fizicheskuyu-pamyat-na-noutbuke-instrukciya-po-osvobozhdeniyu/">повторных запусках</a>, если нужно переделать. В таких случаях скрипт перемещает старые конфиги и списки прокси, помечая их <a href="/contacts-and-messages/sozdat-scenarii-php-opredelyayushchii-tekushchee-vremya-php-rabotaem-s-datoi---date-datetime-mktime/">текущей датой-временем</a>. Так что, в случае чего всегда можно вручную откатить с бэкапов, даже если что-то пойдёт не так.</li> <li>Позволяет включить логгирование (интерактивно спрашивает об этом при настройке)</li> <li>Создаёт удобный скрипт для запуска-перезапуска.</li> <li>Прописывает старт прокси в автозагрузку</li> <li>Прописывает задание в планировщик (cron) для рестарта проксей каждый час, во избежание зависаний.</li> </ul><p>Бонусом к скрипту идёт ещё один скрипт, который позволяет сгенерить список уникальных IP-адресов для сети IPv6 /48 — из каждой /64 сети получается один прокси. Поскольку IPv6 тоже набирает популярность, прокси на них получаются очень дешёвыми, поэтому продукт умеет работать и с этим.</p> <h2>Чего не умеет </h2> <ul><li>Добавлять прокси на уже настроенный сервер(в планах).</li> <li>Изменять настройки <a href="/error-itunes/server-prinuditelno-razorval-sushchestvuyushchee-podklyuchenie-udal-nnyi-host/">существующего сервера</a>. Только полная перенастройка.</li> <li>Настраивать авторизацию не по логину-паролю, а по ip, например.</li> <li>Задавать единый логин-пароль на всю пачку адресов.</li> <li>Задавать единый порт для всех прокси.</li> </ul><p>Вот эти фичи возможно в скрипте появятся когда-нибудь, возможно даже в недалёком будущем.</p> <p>И очень важная вещь. Я думаю это очевидно, но скорей всего не всем. Поэтому всё же считаю необходимым чётко оговорить:</p> <ul><li>Скрипт НЕ УМЕЕТ создавать и настраивать прокси без IP-адресов 🙂</li> </ul><p>Скрипт этого не умеет, и не будет уметь никогда. Ибо для каждого прокси нужен отдельный IP. Даже если где-то вам выдавали много прокси на одном IP — скорей всего вам выдавали только входной интерфейс, с разными портами. А на выходе должны быть разные IP. Если вы хотите поднять прокси на своём VPS где у вас сайты работают — вы сможете это сделать, конечно. Но покупать его для сего нецелесообразно. Ибо на таком сервере вы поднимете 1 прокси, ну или сколько там у вас есть адресов. ()</p> <h2><span>Планы на развитие </span></h2> <p>Скрипт постоянно развивается, покуда у меня есть клиенты на настройку прокси-серверов. Более того, я планирую развить этот скрипт в полноценную панель управления проксями. Чтобы можно было все настраивать, мониторить и управлять через веб-интерфейс. Совсем уж в далёких планах — прикрутить даже биллинг, для продажи прокси. Но это не точно 🙂</p> <p>Недавно уже была попытка создать веб-интерфейс. Человек по моему заказу написал панельку, но она получилась неюзабельной. Планировалось собрать в кучу и выкатить скрипт на продажу вместе с ней, уже как панель управления проксями. Но по этой части всё слишком сыро ещё.</p> <p>Поэтому пока запускаю как есть — без веб-интерфейса, но полностью работающим, позволяющим настроить любое количество любых прокси на любых серверах. Продажи запускаю не в <a href="/contacts-and-messages/kompyuter-nachinaet-zapuskatsya-i-srazu-vyklyuchaetsya-pochemu/">последнюю очередь</a> чтобы дать толчок развитию продукта.</p> <p>Ибо инструмент довольно востребованный, судя по рынку, но сейчас у меня нет времени на то чтобы его развивать, потому что занимаюсь другими задачами. Если же я буду получать фидбек от людей, пользующихся инструментом — мне будет гораздо проще его дорабатывать и поддерживать. Тут даже как — я не смогу этого не делать 🙂</p> <h2><span>Оплата и ценовая политика </span></h2> <p>Покупать скрипт лучше всего в . Его, кстати, планируется постепенно пополнять новыми ништяками, коих скопилось уже пару десятков в закромах. Пока там доступна оплата только с <a href="/communications-and-the-internet/popolnenie-scheta-mobilnogo-s-pomoshchyu-webmoney-sposoby-popolneniya-telefona/">помощью Webmoney</a>, но в ближайшее время буду подключать и другие способы. Сейчас если есть необходимость оплатить другим способом — можно стучаться по контактам ко мне — там уже решим, это без проблем — яндекс, киви или даже paypal.</p> <p>Именно по такой цене я продавал его людям по запросу, которых можно считать альфа-тестерами 🙂 От некоторых из них поступали заказы на разработку дополнительных фич, которые вошли в <a href="/malfunction/versiya-yadra-3-0-8-proshivka-dobavlyaem-v-yadro-novye-funkcii-opredelyaem-tekushchuyu/">текущую версию</a> скрипта. А какие-то возможно ещё войдут. Когда (и если) скрипт вырастет в полноценную панель управления — цена поднимется, скорей всего.</p> <h2><span>Презентация и инструкция — поднимаем свой сервер с любым количеством прокси за 10 минут! </span></h2> <p><span class="zrutP_rEwLw"></span></p> <p>Программа состоит из сервера и своего браузера. Сервер постоянно находится в ожидании запроса от Вашего браузера, получив его, без изменений передает через свой (серверный) браузер на запрашиваемую страницу сайта. Серверный браузер получает страницу сайта, тут мы ее при необходимости сжимаем, и сервер передает <a href="/applied/kak-szhat-stranicu-v-odnoklassnikah-kak-uvelichit-ili/">сжатую страницу</a> (и признак сжатия) Вашему браузеру, который ее распаковывает. Если Вы скачиваете текстовый файл, <a href="/applied/ustanovka-i-snyatie-parolya-na-fail-word-zapret-na-prosmotr-ili-redaktirovanie-starye-versii-ms-word/">файл Word</a>, Excel и вообще то, что можно сжать, то происходит все то же самое – Вы получаете <a href="/communications-and-the-internet/programma-dlya-szhatiya-failov-na-maksimum-szhatie-failov-kak-szhat/">сжатый файл</a>, который Ваш браузер распаковывает при получении.<br> Таким образом и запрос Вашего браузера и ответ на него находятся в наших руках. Что можно с ними сделать?<br> С запросом:<br> Не пропускать запросы к <a href="/system-and-update/kak-ubrat-reklamnye-bannery-v-yandeks-brauzere-bannery-v-google-chrome-udalyaem/">рекламным баннерам</a> или к сайтам с ненужным содержанием.<br> Изменить значение поля Accept, указав, что наш браузер не поддерживает флэш (flash) рисунки, хотя есть некоторые сайты, целиком сделанные на флэш (и попадаются красивые). Но в основном, конечно, флэш технологии используются для создания увесистых рекламных баннеров.<br> Вообще можно изменить любое поле запроса, например, «заменив» Ваш браузер на SuperPuper/v.9.14 Platinum. Можно заменить поле «Referer», «Cookie» и т.д., сделав полностью анонимный прокси сервер. Но лично я против подобной «анонимности». При хороших намерениях скрываться нет необходимости. Это все равно, что придти в учреждение в маске.<br> С ответом:<br> Все тоже самое – заменить значение любого поля. Но поскольку теперь к нам попадает некоторое содержание (страница сайта, рисунок), то мы для начала решим, есть ли смысл его сжимать. Не будем сжимать, если:<br> Поле Content-Encoding: непустое, например, gzip.<br> Это все уже запакованные файлы, а также файлы рисунков, которые уже также сжаты. Т.е. судим по расширению (типу) полученного файла. Список приведен в программе, наверняка Вы дополните его.<br> Размер полученного файла мал. Например файл таблицы стилей или Java-Script. На мой взгляд, файлы размером меньшим, чем несколько килобайт сжимать не стоит.<br> Все остальное сожмем. И добавим признак сжатых данных, т.е. Content-Encoding: gzip. Интересно, кстати, выглядят сжатые данные! Когда работал в одной организации, там была девушка по имени Зубарзят, у нее такая внешность, что теперь все <a href="/battery-and-power-consumption/vmesto-failov-ieroglify-neponyatnye-simvoly-na-fleshke-chto-mozhno/">непонятные символы</a> называю зубарзятами.<br> По наблюдениям степень сжатия колеблется в зависимости от содержания и типа данных от 2 до 10 раз. <a href="/download/how-to-open-a-file-with-the-dat-extension-online-than-to-open-dat-a-file/">Текстовые файлы</a> и <a href="/reviews/kak-otkryt-fail-html-kak-otkryt-fail-html-prosteishie-sredstva/">файлы html</a> в пределах от 4 до 10, обычно 5 – 7 раз. Учитывая, что на страницах сайтов имеются еще и рисунки, которые мы не сжимаем, то общее сжатие обычно в пределах от 2 до 5 раз. Соответственно время передачи данных меньшего размера уменьшается во столько же раз. А время обработки данных в десятки и сотни раз меньше времени передачи, так что оно не замечается.<br> Содержание перед сжатием можно проанализировать и:<br> Не пропускать рисунки <a href="/oshibki-i-devajjsov/kak-zagruzit-bolshoi-fail-v-internet-bolshie-razmery-ne/">большего размера</a>, чем нами заданный.<br> Оставить только текстовое содержимое.<br> Не пропускать Java-Script и Java.<br> Но все это можно сделать и в настройках своего браузера.<br> Добавлять что-либо к содержимому страницы, например, кнопки управления Прокси Сервером или текущий курс акций, валюты, и т.д. и т.п.<br> Попутно замечу, что IP у Вас будет такой же, как у Вашего хостинга.<br> Практически кажая строка программы прокомментирована на странице http://blankinew.narod.ru/szhimaem_internet_trafik_proxy_server.html</p> <p>Чтобы организовать личный web-proxy, вам нужны 2 инструмента: "левый" хостинг и сам скрипт прокси. Но, прежде чем перейти к решению, немного теории для понятия того, что мы делаем.</p><p>Википедия гласит:</p><p>Веб-прокси (англ. «web-based proxy») - это прокси-сервер и анонимайзер, представляющий собой веб-приложение установленное на веб-сервере, выступающее в роли посредника для загрузки контента различных веб-сайтов.</p><p>Веб-прокси могут быть использованы для:</p><ul><li>ускорения загрузки веб-сайтов;</li><br><li>тестирования онлайн сервисов;</li><br><li>обхода ограничений Администратора <a href="/malfunction/sushchestvuyut-sleduyushchie-topologii-lokalnyh-setei-topologiya-lokalnyh/">локальной сети</a> на доступ к <a href="/security/dostup-k-mysql-iz-seti-opredelennym-adresam-udalennyi-dostup/">определенным адресам</a> веб-сайтов;</li><br><li>сокрытия <a href="/security/bankovskoe-obozrenie-vpn-eto-samyi-bezopasnyi-variant-vpn-servisov/">реального IP-адреса</a> и анонимного доступа к веб-сайтам;</li><br><li>получения доступа к веб-сайтам закрытым для просмотра пользователей определенных стран;</li><br><li>и многих других целей.</li> </ul><h2>Итак, покончим с теорией и перейдём к практике.</h2><span>1. Скрипт веб-прокси </span><br>Простой скрипт веб-прокси, с минимальным, нужным функционалом.<br>Скачать скрипт(28.4 Кб) <p>2. Бесплатный хостинг </span><br>Нужен чтобы разместить скрипт самой прокси, а также для левого Ip-адреса.<br>Я, выбрал up100mb.com. Бесплатный хостинг с php, ftp и доменом второго уровня. Всё что нужно.</p><p>3. Установка <br>Регистрируйтесь на хостинге по этой ссылке . Получаете доступ на ftp своего сайта. Качаете архив веб прокси, распаковываете на фтп своего сайта, в <a href="/contacts-and-messages/kak-naiti-nuzhnuyu-papku-na-androide-kak-sozdat-papku-na-android-udobnyi-poisk-i/">нужную папку</a>. Заходите на свой новоиспечённый сайт и пользуйтесь веб-прокси. Теперь владельцы сайтов будут видеть вместо вашего адреса - ip хостинга.</p> <p>Те, кто читает мой блог помнят, что я уже писал статью посвященную нахождению нескольких сотен рабочих проксей за пару минут. Если кто не читал статья находится тут: Анонимность в интернете . Да, это конечно хорошо, из этой сотни проксей можно сделать хорошую и <a href="/security/shifrovanie-wi-fi-seti-kakoi-metod-vybrat-chto-nuzhno-ispolzovat-dlya/">быструю сеть</a> проксей и юзать ее довольно таки <a href="/instructions/pochta-rossii-otslezhivanie---otsledit-posylku-pochta-rossii/">долгое время</a>. Но все в нашей жизни не вечно и сколько бы у вас не было много проксей в конечном итоге они все равно сдохнут. Во многих случаях нам нужна всего одна постоянная быстрая прокси например для того, чтобы не палить свой реальный ИП на каком нибудь форуме(нуллед превед). Это как девушка. Их может быть много разных, но всегда должна быть одна и стабильная). Ну чтож, приступим к обсуждению.</p> <p>Как вы поняли всем проксям требуется <a href="/battery-and-power-consumption/ispolzovanie-ob-start-pri-podderzhke-proektov-na-php/">поддержка php</a>, а следовательно вам в любом случае нужен будет хостинг где эти самые скрипты будут лежать. Ну я думаю купить хостинг за 1$ в месяц вы в любом случае сможете.</p> <p><b>PHProxy 0.5b2 </b> – я его и юзаю. В принципе полностью назвать этот скрипт прокси – нельзя ибо работает он как анонимайзер. Вы ставите его на свой хост и ходите по сайтам, при этом вместо вашего IP палится IP вашего хостера. Но анонимайзером его тоже не назовешь т.к скрипт очень хорошо работает с cookie и через него можно без проблем залогиниться и сидеть на любом сайте. Я сам юзаю этот скрипт и меня он устраивает по всем параметрам, начиная от скорости работы, заканчивая стабильностью. Единственная трабла у меня сейчас в том, что он почему-то перестал показывать изображения, хотя галочка "Show images on browsed pages” стоит. Ну и ладно, мне изображения и так не нужны. Скачать PHProxy 0.5b2 можно по этой ссылке: File Attachment: proxy-0.5b2.zip (26 KB)</p> <p><b>ZELUNE PROXY SCRIPT </b>– В принципе аналог PHProxy 0.5b2. Единственные отличия которые я заметил в том, что он у меня лучше как-то загружает картинки, но в общем примерно чуть медленнее пашет. Других отличий не нашел. Скачать Zeline proxy script можно по данной ссылке: File Attachment: zelune.zip (6 KB) </p> <p><b>HTTP Local Proxy </b>– как я понял это также анонимайзер, но после <a href="/applied/pravilnaya-nastroika-msconfig-rabotaem-s-msconfig-nastroika-windows-s/">правильной настройки</a> работать с ним удобнее, чем с теми скриптами, о которых я написал выше. Суть этого скрипта такова:</p> <blockquote style="MARGIN-RIGHT: 0px" dir="ltr"> <p>При запуске клиент загружает из файла адреса наших скриптв, и работает как прокси. Мы отправляем инфу клиенту, он скрипту, скрипт получает то что мы хотели и отправляет ответ клиенту а он нам)</p> </blockquote> <p><b>Установка скрипта: </b></p> <ol><li>В архиве 3 файла gate.php, host.txt, proxy.exe<br> Файл gate.php заливаем на наш хостинг, обязательно с разрешенными сокетами (<a href="/applied/kak-postavit-server-na-hostinge-kak-postavit-server-mainkraft-na/">бесплатные хостинги</a> скорее всего вам не подойдут)</li> <li>В файл host.txt прописываем адреса залитого нами файла, каждый с <a href="/oshibki-i-devajjsov/kak-dobavit-stroku-v-eksele-dobavlenie-novoi-stroki-v-programme/">новой строки</a>. например:<br> site.org/gate.php<br> site2.ru/dir/gate.php<br> somesite.org/newname.php</li> <li>Запускаем proxy.exe по умолчанию он запусваеться на порту 8080 и загружает список из файла host.txt , это можно изменить запустив бинарник с параметрами.<br> proxy.exe [порт [имя_файла_с_хостами]]</li> <li>В браузере прописываем <a href="/pots/kak-dobavit-v-izbrannoe-adres-http-krossbrauzernoe/">адрес HTTP</a> прокси 127.0.0.1 и порт на котором он запущен</li> </ol><p>Вот и все, теперь можем гулять по интеренту под IP нашего хостера.</p> <p>Если в файле host.txt более одного адреса, то proxy будет автоматически менять их (соответсвенно ваш ip тоже будет меняться)<br> Если нужно работать с одного ip, то в файле host.txt оставляем один адрес. Также с помощью этого скрипта к сожалению нельзя работать с <a href="/instructions/large-files-on-a-usb-flash-drive-how-to-burn-large-files-on-a-usb-flash-drive/">большими файлами</a>. За скрипт <a href="/apps-and-books/chto-izobrel-blez-paskal-blez-paskal-kratkaya-biografiya-otkrytiya-i/">большое спасибо</a> юзеру nc.STRIEM с античата.</p> <p><b>PPROXY </b> – прокси на PHP реализованная на Perl. Состоит она из двух частей. Суть работы прокси такова: на удаленный веб-сервер(хостинг) заливается первая часть прокси, написанная на PHP – скрипт pproxy.php. У себя на локалхосте запускается вторая часть прокси, реализованная на Perl (скрипт plocal.pl). Она прослушивает порт как HTTP-прокси. На этот локальный HTTP прокси настраивается, например, браузер.</p> <p><b>Скрипты </b></p> <ol><li>pproxy.php – первая, удаленная часть прокси, на PHP:</li> <li>local.pl – вторая, локальная часть прокси, на Perl:</li> </ol><p><b>Использование прокси </b></p> <p>О построении цепочек прокси с помощью этого скрипта можно почитать на античате. За скрипт большое спасибо пользователю bons с античата.</p> <p><b>Anichat php proxy </b> – на самом деле я не знаю как называется эта прокси, но помню что скачал ее с античата. По этому такое название. Отличие этой прокси от остальных в том, что это полноценная прокси, закинув и запустив на вашем хосте один единственный файл вы получите адрес и порт прокси, который нужно будет ввести в вашем браузере или другой программе, где вам нужна php прокси работающая через <a href="/system-and-update/protokol-peredachi-gipertekstovyh-dannyh-protokol-http-chto/">http протокол</a>. К сожалению больше о ней я ничего не знаю а работать на моем хостинге она отказалась. Но опять таки, помню, что на ачате были отзывы о ней => она рабочая. Скачать Anichat php proxy можно по этой ссылке: File Attachment: proxy.zip (1 KB)</p> <p>Всем спасибо за внимание, если есть вопросы – задавайте их в комментах. А также не забудьте подписаться на <a href="/instructions/programmy-dlya-chteniya-rss-novostei-kak-chitat-rss-lentu-iz/">RSS новости</a> в "Блоге бумажной крысы” http://henzo.org .</p> <p>Вся информация, которую содержит эта статья, не может быть использована ни в каких иных целях, кроме ознакомления. </p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> </div> </article> </div> </div> <div id="secondary"> <aside id="search-2" class="widget widget_search clearfix"> <form action="/" class="search-form searchform clearfix" method="get"> <div class="search-wrap"> <input type="text" placeholder="Поиск" class="s field" name="s"> <button class="search-icon" type="submit"></button> </div> </form> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries clearfix"> <h3 class="widget-title"><span>Свежие записи</span></h3> <ul> <li> <a href="/reviews/simvol-zapyataya-sverhu-stavim-verhnyuyu-zapyatuyu-na-klaviature-pri/">Ставим верхнюю запятую на клавиатуре при помощи комбинации клавиш</a> </li> <li> <a href="/security/chto-delat-esli-ne-rabotaet-pk-kompyuter-vklyuchaetsya-no-slyshen/">Компьютер включается, но слышен сигнал</a> </li> <li> <a href="/error-itunes/kak-sozdat-temu-dlya-windows-kak-sozdat-temu-oformleniya-temy-dlya-windows-7/">Как создать тему оформления Темы для windows 7 создать самому</a> </li> <li> <a href="/instructions/voevodin-mihail-viktorovich-voevodin-mihail-viktorovich-otryvok/">Воеводин михаил викторович Отрывок, характеризующий Воеводин, Михаил Викторович</a> </li> <li> <a href="/malfunction/blog-o-tvorchestve-i-vdohnovenii-istochniki-vdohnoveniya-blog-oli-orlovoi/">Блог о творчестве и вдохновении</a> </li> <li> <a href="/the-sounds-and-music/desyatichnyi-klassifikator-udk-isbn-udk-bbk-shtrihovye-kody-vyhodnye/">ISBN, УДК, ББК, штриховые коды, выходные данные</a> </li> <li> <a href="/malfunction/kak-ispolzovat-telefon-kak-modem-kak-prokachat-svoi-smartfon/">Как прокачать свой смартфон</a> </li> <li> <a href="/instructions/naselenie-kalpe-kalpe-calpe-kosta-blanka-alikante-osnovnye-dostoprimechatelnosti-kalpe/">Кальпе (Calpe), Коста-Бланка, Аликанте</a> </li> </ul> </aside> <aside id="text-5" class="widget widget_text clearfix"> <div class="textwidget"> <script type="text/javascript" src="//vk.com/js/api/openapi.js?144"></script> <div id="vk_groups"></div> </div> </aside> <aside id="text-4" class="widget widget_text clearfix"> <div class="textwidget"> </div> </aside> <aside id="text-3" class="widget widget_text clearfix"> <div class="textwidget"> </div> </aside> </div> </div> </div> <footer id="colophon" class="clearfix"> <div class="footer-socket-wrapper clearfix"> <div class="inner-wrap"> <div class="footer-socket-area"> <div class="footer-socket-right-section"> </div> <div class="footer-socket-left-sectoin"> <div class="copyright">© 2024 <a href="/" title="olegshein.ru"><span>olegshein.ru</span></a>. Компьютерный клуб Олега Шейна.<br></div> </div> </div> </div> </div> </footer> <a href="#masthead" id="scroll-up"><i class="fa fa-chevron-up"></i></a> </div> <script type="text/javascript"> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar": "colormag_right_sidebar", "margin_top": 10, "margin_bottom": 0, "stop_id": "", "screen_max_width": 0, "screen_max_height": 0, "width_inherit": false, "refresh_interval": 1500, "window_load_hook": false, "disable_mo_api": false, "widgets": ['text-3'] }; </script> <script type="text/javascript"> (function(w, doc) { if (!w.__utlWdgt) { w.__utlWdgt = true; var d = doc, s = d.createElement('script'), g = 'getElementsByTagName'; s.type = 'text/javascript'; s.charset = 'UTF-8'; s.async = true; s.src = ('https:' == w.location.protocol ? 'https' : 'http') + '://w.uptolike.com/widgets/v1/uptolike.js'; var h = d[g]('body')[0]; h.appendChild(s); } })(window, document); </script> <div style="text-align:left;" data-lang="ru" data-url="/global-blue-vozvrat-tax-free-v-minske/" data-background-alpha="0.0" data-buttons-color="#FFFFFF" data-counter-background-color="#ffffff" data-share-counter-size="12" data-top-button="false" data-share-counter-type="common" data-share-style="1" data-mode="share" data-like-text-enable="false" data-mobile-view="true" data-icon-color="#ffffff" data-orientation="fixed-left" data-text-color="#000000" data-share-shape="round-rectangle" data-sn-ids="fb.vk.tw.ok.gp.ps.mr.ln." data-share-size="30" data-background-color="#ffffff" data-preview-mobile="false" data-mobile-sn-ids="fb.vk.ok.wh.vb." data-pid="cmsvpolshuby" data-counter-background-alpha="1.0" data-following-enable="false" data-exclude-show-more="true" data-selection-enable="true" class="uptolike-buttons"></div> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/bootstrap-2.3.2/js/bootstrap.min.js?ver=2.3.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/js/jquery.validate.min.js?ver=1.15.0'></script> <script type='text/javascript'> /* <![CDATA[ */ var pwebcontact_l10n = pwebcontact_l10n || {}; pwebcontact_l10n.form = { "INIT": "Initializing form...", "SENDING": "Sending...", "SEND_ERR": "Wait a few seconds before sending next message", "REQUEST_ERR": "Request error: ", "COOKIES_ERR": "Enable cookies and refresh page to use this form" }; /* ]]> */ </script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/pwebcontact/media/js/jquery.pwebcontact.min.js?ver=2.3.0'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/simple-tooltips/zebra_tooltips.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/contact-form-7/includes/js/jquery.form.min.js?ver=3.51.0-2014.06.20'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.5.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "Auto" }; /* ]]> */ </script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/wp-cloudy/js/wp-cloudy-ajax.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/mistape/assets/js/modernizr.custom.js?ver=1.3.3'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/mistape/assets/js/mistape-front.js?ver=1.3.3'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/jquery.bxslider.min.js?ver=4.1.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/colormag-slider-setting.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/navigation.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/fitvids/jquery.fitvids.js?ver=20150311'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/themes/colormag/js/fitvids/fitvids-setting.js?ver=20150311'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.4.13'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/fancybox/jquery.fancybox-1.3.8.min.js?ver=1.6.2'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/js/jquery.easing.min.js?ver=1.4.0'></script> <script type='text/javascript' src='https://olegshein.ru/wp-content/plugins/easy-fancybox/js/jquery.mousewheel.min.js?ver=3.1.13'></script> <div id="pwebcontact1" class="pwebcontact pweb-bottom pweb-offset-right pweb-slidebox pweb-theme-free pweb-labels-above pweb-horizontal" dir="ltr"> <div id="pwebcontact1_toggler" class="pwebcontact1_toggler pwebcontact_toggler pweb-closed pweb-theme-free"> <span class="pweb-text">Есть вопросы?</span> <span class="pweb-icon"></span> </div> <div id="pwebcontact1_box" class="pwebcontact-box pweb-slidebox pweb-theme-free pweb-labels-above pweb-horizontal pweb-init" dir="ltr"> <div class="pwebcontact-container-outset"> <div id="pwebcontact1_container" class="pwebcontact-container"> <div class="pwebcontact-container-inset"> <form name="pwebcontact1_form" id="pwebcontact1_form" class="pwebcontact-form" action="/" method="post" accept-charset="utf-8"> <div class="pweb-fields"> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-name pweb-field-name"> <div class="pweb-label"> <label id="pwebcontact1_field-name-lbl" for="pwebcontact1_field-name"> Имя </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <input type="text" name="fields[name]" id="pwebcontact1_field-name" autocomplete="on" class="pweb-input" value="" data-role="none"> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-email pweb-field-email"> <div class="pweb-label"> <label id="pwebcontact1_field-email-lbl" for="pwebcontact1_field-email"> Email <span class="pweb-asterisk">*</span> </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <input type="email" name="fields[email]" id="pwebcontact1_field-email" autocomplete="on" class="pweb-input required" value="" data-role="none"> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-textarea pweb-field-message"> <div class="pweb-label"> <label id="pwebcontact1_field-message-lbl" for="pwebcontact1_field-message"> Сообщение <span class="pweb-asterisk">*</span> </label> </div> <div class="pweb-field"> <div class="pweb-field-shadow"> <textarea name="fields[message]" id="pwebcontact1_field-message" cols="50" rows="5" class="required" data-role="none"></textarea> </div> </div> </div> </div> </div> <div class="pweb-row"> <div> <div class="pweb-field-container pweb-field-buttons"> <div class="pweb-field"> <button id="pwebcontact1_send" type="submit" class="btn pweb-button-send" data-role="none">Отправить</button> </div> </div> </div> </div> </div> <div class="pweb-msg pweb-msg-after"> <div id="pwebcontact1_msg" class="pweb-progress"> <script type="text/javascript"> document.getElementById("pwebcontact1_msg").innerHTML = "Initializing form..." </script> </div> </div> <input type="hidden" name="5eb40beb9e" value="1" id="pwebcontact1_token"> </form> </div> </div> </div> </div> </div> <script type="text/javascript"> jQuery(function() { jQuery(".tooltips img").closest(".tooltips").css("display", "inline-block"); new jQuery.Zebra_Tooltips(jQuery('.tooltips').not('.custom_m_bubble'), { 'background_color': '#000000', 'color': '#ffffff', 'max_width': 250, 'opacity': 0.95, 'position': 'center' }); }); </script> <script type="text/javascript"> jQuery(document).on('ready post-load', function() { jQuery('.nofancybox,a.pin-it-button,a[href*="pinterest.com/pin/create"]').addClass('nolightbox'); }); jQuery(document).on('ready post-load', easy_fancybox_handler); jQuery(document).on('ready', easy_fancybox_auto); </script> <div id="mistape_dialog" data-mode="comment" data-dry-run="0"> <div class="dialog__overlay"></div> <div class="dialog__content"> <div id="mistape_confirm_dialog" class="mistape_dialog_screen"> <div class="dialog-wrap"> <div class="dialog-wrap-top"> <h2>Сообщить об опечатке</h2> <div class="mistape_dialog_block"> <h3>Текст, который будет отправлен нашим редакторам:</h3> <div id="mistape_reported_text"></div> </div> </div> <div class="dialog-wrap-bottom"> <div class="mistape_dialog_block comment"> <h3><label for="mistape_comment">Ваш комментарий (необязательно):</label></h3> <textarea id="mistape_comment" cols="60" rows="3" maxlength="1000"></textarea> </div> <div class="pos-relative"> </div> </div> </div> <div class="mistape_dialog_block"> <a class="mistape_action" data-action="send" data-id="389" role="button">Отправить</a> <a class="mistape_action" data-dialog-close role="button" style="display:none">Отмена</a> </div> <div class="mistape-letter-front letter-part"> <div class="front-left"></div> <div class="front-right"></div> <div class="front-bottom"></div> </div> <div class="mistape-letter-back letter-part"> <div class="mistape-letter-back-top"></div> </div> <div class="mistape-letter-top letter-part"></div> </div> </div> </div> </body> </html>