wiki-js/sysadmin/Linux/VPN/Privoxy.md

69 lines
4.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Обход блокировок через VPN (privoxy)
description:
published: true
date: 2024-04-24T09:54:39.876Z
tags: privoxy, vpn
editor: markdown
dateCreated: 2024-04-24T09:54:39.876Z
---
Западные блокировки в интернете добавляют лишнюю суету в повседневную работу. Я вам покажу очень простой и быстрый способ, как их обходить на примере загрузки и запуска продуктов elastic. Как известно, с территории РФ их скачать невозможно, как и воспользоваться репозиторием docker образов.
Для этого нам понадобится любая VPS и доступ к ней по SSH. Главное, чтобы с неё ничего не блокировалось. Ставим туда локальную прокси privoxy:
`# apt install privoxy`
Больше можно ничего не настраивать. Нам подойдут настройки по умолчанию. Прокси сама запустится на локальном интерфейсе 127.0.0.1:8118. Можно тут её оставить на постоянную работу.
Теперь идём на сервер, куда мы хотим установить elasticsearch. Если мы просто попытаемся скачать пакет, у нас ничего не выйдет:
`# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.2-amd64.deb`
HTTP request sent, awaiting response... 403 Forbidden
Доступ заблокирован. Подключимся по SSH к серверу с privoxy и пробросим её порт 8118 локально на машину на порт 3128:
`# ssh -L 3128:localhost:8118 root@1.2.3.4`
Проверяем, что порт проброшен:
`# ss -tulnp | grep 3128`
```
tcp  LISTEN 0   128    127.0.0.1:3128    0.0.0.0:*  users:(("ssh",pid=1350,fd=5))
```
Теперь сделаем так, чтобы wget работал через прокси. Для этого рисуем конфиг ~/.wgetrc:
```
use_proxy=yes
http_proxy=127.0.0.1:3128
https_proxy=127.0.0.1:3128
```
И снова скачиваем пакет. Теперь он успешно загрузится, можно устанавливать.
Если хочется запустить elasticsearch в докере из официального образа, то подключаем прокси докеру. Для этого передаём ему переменные через systemd. Все возможные варианты настройки прокси в докере описаны в документации (https://docs.docker.com/config/daemon/systemd/).
`# mkdir -p /etc/systemd/system/docker.service.d`
`# mcedit /etc/systemd/system/docker.service.d/http-proxy.conf`
```
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:3128"
Environment="HTTPS_PROXY=http://127.0.0.1:3128"
```
` # systemctl daemon-reload`
` # systemctl restart docker`
Обращаю внимание, что в качестве HTTPS_PROXY я передаю http подключение. Это важно. Privoxy не настроен на работу по https, а Docker хочет именно по https забирать образы. Проверим, что переменные объявлены:
`# systemctl show --property=Environment docker`
```
Environment=HTTP_PROXY=http://127.0.0.1:3128 HTTPS_PROXY=http://127.0.0.1:3128
```
Теперь можно забрать образ последней версии и запустить его:
`# docker pull docker.elastic.co/elasticsearch/elasticsearch:8.13.2`
`# docker run -d -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:8.13.2`
После того, как всё скачано и запущено, настройки прокси можно отключить.
Такой простой и быстрый метод с использованием своего прокси. Не надо искать сторонние репозитории или настраивать свои. Не надо подключать VPN и что-то ставить дополнительно на исходный сервер. Забрали всё с репозитория разработчиков, сделав минимум движений на сервере, куда всё устанавливали.
![photo_2024-04-18_01-11-10.jpg](/photo_2024-04-18_01-11-10.jpg)