Вы спросите «зачем это нужно?».
Отвечаю:
Если вы добываете информацию парсите какие либо данные с источников, на которых стоит защита от многократного доступа, а прокси вам собирать очень лениво. То Tor -оптимальный вариант для ленивцев.
Установив его, на вашем сервере откроется порт 9050, обращаясь к которому, как к локальному прокси мы получаем идеальный прокси-сервер. который меняет свой выходной ip каждые 10 минут.
Установка:
Добавляем репозиторий тора в yum:
# touch /etc/yum.repos.d/torproject.repo
Редактируем:
# mcedit /etc/yum.repos.d/torproject.repo
Вставляем следующий текст:
[Tor] name=Tor Project Repo baseurl=http://deb.torproject.org/torproject.org/rpm/el/6/$basearch/ gpgcheck=1 enabled=1 gpgkey=http://deb.torproject.org/torproject.org/rpm/RPM-GPG-KEY-torproject.org.asc
Устанавливаем:
# yum -y install tor
Проверка:
Проверять будем через curl.
Создаем фаил tortest.php с содержимым:
<?php error_reporting(E_ALL); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://internet.yandex.ru/"); curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050'); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); $result = curl_exec($ch); curl_close($ch); echo $result; ?>
Открываем эту страницу в браузере. Должно отобразится содержимое с адреса http://internet.yandex.ru/ Если в строчке Мой IP: видим ip не нашего сервера, то радуемся, потому что мы успешно установили Tor
Исполняемый фаил — /etc/init.d/tor {start|stop|restart}
Или можно работать как с сервисом: # service tor start
Можно прописать в автозагрузку: # chkconfig tor on
Примечание:
Работу Tor можно проверить и из консли командой:
# curl --socks5 127.0.0.1:9050 https://i-leon.ru
При этом, многие сайты будут выдавать ошибку:
curl: (6) Failed to resolve «ya.ru» for SOCKS5 connect.
По этому нужно скрыть, что используется прокси.
Для этого в php скриптах нужно использовать опцию CURLOPT_FOLLOWLOCATION или её эмуляцию
Либо иногда помогает использовать curl_setopt($ch, CURLOPT_PROXYTYPE, 7); вместо curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
Для повышения скорости, в более поздних версиях Tor стала доступна опция, позволяющая использовать цепочку из одного узла ради повышения скорости (как обычный прокси-сервер).
Для ее включения в конфигурационный файл tor-клиента нужно внести параметр ExcludeSingleHopRelays 0.
Но следует учитывать, что при этом анонимность пользователя падает не только по причине того, что он использует узлы сети как обычный однохоповый прокси. Для однохоповых прокси-соединений будут использоваться лишь те эксит-узлы, в которых включена опция AllowSingleHopExits 1.