From 32433545fce1ad2e1486b208275f1b2e8af0dbf3 Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 24 Apr 2024 09:54:46 +0000 Subject: [PATCH] docs: create sysadmin/Linux/VPN/Privoxy --- sysadmin/Linux/VPN/Privoxy.md | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 sysadmin/Linux/VPN/Privoxy.md diff --git a/sysadmin/Linux/VPN/Privoxy.md b/sysadmin/Linux/VPN/Privoxy.md new file mode 100644 index 0000000..f2dbade --- /dev/null +++ b/sysadmin/Linux/VPN/Privoxy.md @@ -0,0 +1,69 @@ +--- +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) \ No newline at end of file