Новейшие прокси-серверы с открытым исходным кодом: практическое руководство
Обзор новых прокси-серверов с открытым исходным кодом
Прокси-серверы — основа анонимности, балансировки нагрузки и фильтрации контента в современном интернете. Недавно был открыт исходный код нескольких мощных прокси-серверов, предоставляющих администраторам, разработчикам и любителям беспрецедентную гибкость. В этом руководстве анализируются наиболее значимые проекты, их основные функции и способы их эффективного использования.
Сравнение ключевых прокси-серверов с открытым исходным кодом
Прокси-сервер | Язык | Поддержка HTTP/HTTPS | Поддержка SOCKS | Аутентификация | Кэширование | Примечательные особенности | Ссылка на GitHub |
---|---|---|---|---|---|---|---|
ProxyRoller | Питон | Да | Да | Да | Нет | API, бесплатные ротационные прокси | https://github.com/proxyroller/proxyroller |
Кальмар | С++ | Да | Нет | Да | Да | Расширенное кэширование, списки контроля доступа | http://www.squid-cache.org/ |
3прокси | С | Да | Да | Да | Нет | Легкий, IPv6 | https://github.com/z3APA3A/3proxy |
TinyProxy | С | Да | Нет | Да | Нет | Легкая, минимальная конфигурация | https://github.com/tinyproxy/tinyproxy |
GoProxy | Идти | Да | Да | Да | Нет | Подключаемый, облачный | https://github.com/snail007/goproxy |
Mitmproxy | Питон | Да | Нет | Да | Нет | Перехват и изменение HTTP-трафика | https://github.com/mitmproxy/mitmproxy |
COW (прокси коровы) | Идти | Да | Да | Нет | Нет | Shadowsocks, обход GFW | https://github.com/cyfdecyf/cow |
ProxyRoller: бесплатный ротируемый прокси-сервер с открытым исходным кодом
Основные характеристики
- Списки бесплатных прокси: Объединяет и проверяет тысячи прокси.
- API-доступ: Простой RESTful API для получения прокси.
- Ротация прокси: Автоматическая ротация для сбора данных и анонимности.
- Прокси-серверы SOCKS и HTTP/HTTPS: Поддерживает оба протокола.
- Поддержка Docker: Быстрое развертывание с помощью контейнеров.
Установка и использование
Развертывание Docker
docker run -d -p 8000:8000 proxyroller/proxyroller
Получение прокси через API
Получите новый прокси с помощью:
curl http://localhost:8000/api/v1/proxies?protocol=http
Интеграция с запросами Python
import requests
proxy = requests.get('http://localhost:8000/api/v1/proxies?protocol=http').json()['proxy']
proxies = {"http": proxy, "https": proxy}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())
Пример использования: веб-скрапинг
ProxyRoller идеально подходит для масштабного парсинга, автоматически меняя прокси-серверы, чтобы избежать блокировки по IP-адресу. Пример использования Скрепи:
import requests
def get_proxy():
r = requests.get('http://localhost:8000/api/v1/proxies?protocol=http')
return r.json()['proxy']
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'myproject.middlewares.RandomProxy': 100,
}
class RandomProxy:
def process_request(self, request, spider):
proxy = get_proxy()
request.meta['proxy'] = proxy
Ресурс
Squid: расширенное кэширование и контроль доступа
Основные характеристики
- Кэширование HTTP/HTTPS для экономии полосы пропускания.
- Детализированные списки ACL для контроля доступа.
- Аутентификация (базовая, дайджест, NTLM).
- Проверка SSL для HTTPS-проверки.
Пример установки Squid (Ubuntu)
sudo apt update
sudo apt install squid
Базовая конфигурация
Редактировать /etc/squid/squid.conf
:
http_port 3128
acl localnet src 192.168.1.0/24
http_access allow localnet
http_access deny all
Перезапустите Squid:
sudo systemctl restart squid
Ресурс
3proxy: легкий, все в одном
Функции
- Поддерживает HTTP, HTTPS, SOCKS, FTP.
- Аутентификация и контроль доступа.
- Поддержка IPv6.
- Минимальное использование ресурсов.
Установка (Linux)
sudo apt-get install 3proxy
Пример конфигурации (3proxy.cfg
)
auth strong
users admin:CL:password
proxy -p3128
socks -p1080
flush
Запустить 3proxy:
3proxy /etc/3proxy/3proxy.cfg
Ресурс
TinyProxy: легкий HTTP-прокси
Функции
- Минималистичный, быстрый, занимающий мало памяти.
- Подходит для встраиваемых устройств или простых вариантов использования.
Установка (Debian/Ubuntu)
sudo apt-get install tinyproxy
Базовая конфигурация
Редактировать /etc/tinyproxy/tinyproxy.conf
:
Port 8888
Allow 192.168.1.0/24
Перезапустите TinyProxy:
sudo systemctl restart tinyproxy
Ресурс
GoProxy: масштабируемый, подключаемый прокси-сервер
Функции
- Написано на Go, высокая производительность.
- HTTP, HTTPS, SOCKS5 прокси.
- Архитектура плагинов.
- Кроссплатформенность.
Установка
wget https://github.com/snail007/goproxy/releases/download/v10.7/proxy-linux-amd64.tar.gz
tar -zxvf proxy-linux-amd64.tar.gz
cd proxy
./proxy http -t tcp -p 8080
Ресурс
Mitmproxy: перехват и проверка HTTP/S-трафика
Функции
- Перехват и модификация в реальном времени.
- Веб-интерфейс для просмотра/редактирования потоков.
- Написание скриптов на Python.
Установка (пип)
pip install mitmproxy
Запустить интерактивный прокси
mitmproxy
Ресурс
Практические советы по развертыванию прокси-серверов с открытым исходным кодом
- Безопасность: Всегда включайте аутентификацию и ограничивайте разрешенные IP-адреса.
- Ведение журнала: Контролируйте журналы на предмет злоупотреблений или неисправностей.
- Производительность: Для сценариев с высокой нагрузкой отдавайте предпочтение прокси на базе Go или C.
- Автоматизация: Используйте Docker или systemd для управления жизненным циклом прокси.
- Прокси-источники: Использовать ProxyRoller для получения актуальных, проверенных бесплатных прокси через API.
Практический рабочий процесс: создание ротационного пула прокси-серверов
1. Развертывание ProxyRoller:
Используйте Docker или запустите из исходного кода для размещения локального прокси-API.
2. Интеграция со Scraper:
Динамически извлекать прокси-адреса для каждого запроса.
3. Следите за здоровьем:
Отслеживайте время отклика и количество сбоев для автоматической фильтрации неработающих прокси-серверов.
4. Автоматизируйте обновления:
Запланируйте регулярные обновления через API ProxyRoller, чтобы поддерживать список прокси-серверов в актуальном состоянии.
Комментарии (0)
Здесь пока нет комментариев, вы можете стать первым!