цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Создаем простой прокси-сервер на основе Raspberry Pi



Создаем простой прокси-сервер на основе Raspberry Pi

Автор: Mike(admin) от 13-02-2024, 23:55

Узнайте, как просто настроить прокси-сервер на Raspberry Pi с помощью удобного программного обеспечения с открытым исходным кодом, известного как Squid. В этом материале мы предоставляем пошаговое руководство, демонстрирующее его применение для парсинга веб-страниц. Однако преимущества установки прокси-сервера выходят за рамки этого: они включают повышенную безопасность, эффективное кэширование, ускорение сетевых запросов и оптимизированное управление соединениями. Раскройте потенциал вашего Raspberry Pi с помощью этого руководства по настройке прокси-сервера Squid.


Создаем простой прокси-сервер на основе Raspberry Pi

Убедитесь, что на вашем Raspberry Pi 4 настроен Raspbian (или другая совместимая ОС) и он подключен к Интернету. Получите доступ к терминалу Raspberry Pi через SSH или напрямую с помощью монитора и клавиатуры.


Обновление пакетов: запустите sudo apt-get update и sudo apt-get update, чтобы убедиться, что все пакеты обновлены. Установите Squid. Выполните sudo apt-get install squid. После установки служба Squid должна запуститься автоматически. Создайте резервную копию исходного файла конфигурации: sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.backup. Отредактируйте файл конфигурации: sudo nano /etc/squid/squid.conf.


Создаем простой прокси-сервер на основе Raspberry Pi

Вы можете видеть, что строки не закомментированы:



acl localnet src 192.168.1.0/24
http_access allow localnet

Это необходимо для того, чтобы устройства в вашей локальной домашней сети могли подключаться к прокси-серверу. Это очень простая настройка, вы можете поиграть с конфигурацией в этом файле, чтобы отфильтровать, какие IP-адреса и какие параметры сетевой безопасности вы хотите настроить. Перезапустите службу Squid, чтобы применить изменения: sudo systemctl restart squid. Убедитесь, что Squid запущен: sudo systemctl status squid.


Чтобы получить IP-адрес Raspberry Pi, вы можете ввести команду ifconfig в терминале и посмотреть inet-адрес. Вам понадобится этот адрес для использования в скрипте Python на вашем локальном компьютере, который сначала отправит запрос на очистку на IP-адрес Raspberry Pi в качестве прокси.


Создайте скрипт Python на своем локальном компьютере и запустите следующий скрипт, обязательно заменяя свой IP-адрес Pi: https://github.com/shillehbean/youtube-p2/blob/main/test_proxy.py. Этот скрипт предназначен для очистки веб-контента с указанного URL-адреса (в данном случае страницы поиска на eBay для ноутбуков) с использованием библиотеки запросов Python для выполнения HTTP-запросов и библиотеки BeautifulSoup из bs4 для анализа HTML-контента. Скрипт использует прокси-сервер для выполнения запроса. Вот пошаговое объяснение.


  • Импорт библиотек: import requests, импортирует библиотеку запросов requests, которая используется для простой отправки HTTP-запросов в Python. from bs4 import BeautifulSoup: импортирует класс BeautifulSoup из библиотеки bs4 (Beautiful Soup). Beautiful Soup используется для анализа документов HTML и XML, что упрощает навигацию, поиск и изменение дерева разбора
  • Настройка прокси-серверов: словарь прокси-серверов определяется ключами «http» и «https», каждый из которых содержит URL-адрес прокси-сервера (http://192.168.1.111:3128). Это указывает библиотеке requests маршрутизировать запросы HTTP и HTTPS через прокси-сервер по указанному IP-адресу (192.168.1.111) и порту (3128)
  • Укажите целевой URL-адрес: переменная url имеет значение целевого URL-адреса, которым в данном случае является страница поиска eBay для ноутбуков
  • Отправить запрос HTTP GET: response = Requests.get(url, proxies=proxies), отправляет запрос HTTP GET на указанный URL-адрес. Используется параметр proxyes, означающий, что запрос будет отправлен через прокси-сервер, определенный ранее
  • Проверка статуса ответа: скрипт проверяет, был ли HTTP-запрос успешным, проверяя ответ.status_code. Код состояния HTTP 200 указывает на успех. Если запрос прошел успешно (response.status_code == 200), скрипт приступает к анализу содержимого ответа
  • Анализ и вывод HTML-содержимого (в случае успеха): soup = BeautifulSoup(response.content, 'html.parser'): анализирует содержимое HTTP-ответа (response.content) с помощью Beautiful Soup, который создает объект BeautifulSoup (soup). Аргумент «html.parser» указывает используемый синтаксический анализатор. print(soup): выводит проанализированное содержимое HTML на консоль. В более практичном сценарии парсинга вы могли бы использовать функции Beautiful Soup для извлечения конкретных данных из soup (например, названий продуктов, цен и т. д.) вместо вывода всего HTML-содержимого. Обработка неудачного запроса (если не удалось): если HTTP-запрос не был успешным (код состояния не 200), сценарий печатает сообщение, указывающее, что получение веб-страницы не удалось, вместе с полученным кодом состояния HTTP

Создаем простой прокси-сервер на основе Raspberry Pi

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




© digitrode.ru


Теги: Raspberry Pi, сервер, сетевые технологии




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

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

Оставить комментарий