Как создать личный резидентный прокси для обхода географических ограничений

Как создать личный резидентный прокси для обхода географических ограничений

29 января 2023 г.

Проблема

У резидентных прокси есть много полезных приложений, таких как просмотр веб-страниц, онлайн-исследования, обход географических ограничений и анонимный просмотр. Но они могут быть дорогими: некоторые берут более 100 долларов США в месяц за доступ к более чем 10 ГБ данных.

В прошлом году, когда я путешествовал по Индии и другим частям Юго-Восточной Азии, мне нужен был надежный способ, который позволил бы мне получать доступ к контенту в различных службах подписки, таких как Netflix и Amazon Prime, без географических ограничений. Я хотел сделать это, пока

  1. Не нужно платить более 100 долларов США в месяц за услуги VPN/прокси-сервера. Кроме того, Netflix иногда блокировал меня при использовании VPN.
  2. Не платить дополнительную сумму за статический IP-адрес для моего домашнего интернет-соединения в США.

Решение

Я нашел решение, создав собственный резидентный прокси-сервер на своем домашнем компьютере в США.

<цитата>

Настроив одноранговую (P2P) VPN и подключив к ней свой ноутбук и настольный компьютер, я смог направить трафик своего ноутбука в Индии на свой компьютер в США, который затем перенаправил эти запросы на www/public internet перед возвратом ответа из моей домашней сети.

И все это без необходимости настраивать конфигурацию переадресации соединений на моем домашнем маршрутизаторе.

Что такое P2P VPN

Peer-to-peer (P2P) – это архитектурная модель VPN, используемая для создания защищенной общей среды для пользователей. VPN на основе P2P отличается от стандартной модели «звезда» тем, что не направляет весь трафик через центральный сервер, избегая перегрузки. Это повышает безопасность и обеспечивает более эффективное масштабирование за счет добавления узлов без перегрузки сети. Кроме того, соединения в P2P VPN используют самый быстрый путь, что сокращает задержки.

Доступно несколько решений с открытым исходным кодом, бесплатных и платных P2P VPN. Tinc — один из популярных VPN с открытым исходным кодом.

Как выглядит настройка сети?

Сетевой стек состоит из следующих компонентов:

  1. Рабочий стол дома (США)
  2. Мой ноутбук (за пределами США)
  3. Демон P2P vpn работает на обоих компьютерах под одной и той же учетной записью
  4. Прокси-сервер HTTP, работающий на рабочем столе.

На приведенной ниже схеме показан поток информации для получения общедоступной веб-страницы с моего ноутбука за пределами США.

Flow of information when a public webpage is retrieved from the laptop outside US. 1. is the initial request and 4. is the final response

Я хотел P2P VPN, который легко настроить и практически не требует настройки. В итоге я использовал хвостовую шкалу. Приведенные ниже шаги в основном являются общими для любой VPN, но они могут оказаться наиболее подходящими, если вы используете хвостовую шкалу.

Шаги, предпринятые для настройки этой сети

  1. Настройка клиента vpn на компьютере и ноутбуке:

  2. Загрузите и установите VPN-клиент на настольный компьютер и ноутбук.

  3. Если вы используете VPN с нулевой конфигурацией, зарегистрируйте свою учетную запись в vpn и войдите в систему на обоих компьютерах с одной и той же учетной записью

    2. Настройка прямого прокси-сервера HTTP на рабочем столе:

Вы можете использовать любой прокси-сервер с открытым исходным кодом. Я использовал https://github.com/abhinavsingh/proxy.py, так как его было легко настроить. Я запустил его в контейнере докеров. Образ Docker для этого прокси доступен на Docker Hub. Чтобы запустить его в контейнере докеров, вы можете выполнить эту команду

баш docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest

В приведенной выше команде прокси-сервер прослушивает порт 8899. Это будет полезно, когда мы укажем URL-адрес прокси-сервера в приложениях на ноутбуке

3. Определите IP-адрес рабочего стола в сети VPN: после установки и входа в свою учетную запись VPN давайте выясним IP-адрес рабочего стола, который будет использоваться ноутбуком для пересылки своих HTTP-запросов. .

Для этого вы можете перечислить IP-адреса для всех сетевых интерфейсов на рабочем столе. Затем укажите IP-адрес интерфейса, имя которого начинается с имени вашего VPN-клиента, в моем случае оно начинается с «tailscale».

Я использовал команду ip на терминале моей Linux-машины, чтобы определить IP-адрес

$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 состояние qdisc noqueue НЕИЗВЕСТНО группа по умолчанию qlen 1000 ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00 инет 127.0.0.1/8 область хоста lo valid_lft навсегда inet6 :: 1/128 узел области видимости valid_lft навсегда …. 4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel состояние UNKNOWN группа по умолчанию qlen 500 ссылка/нет инет 100.113.xxx.xx/32 масштаб глобальный tailscale0 valid_lft навсегда …

Здесь мне удалось найти IP-адрес рабочего стола в моей локальной сети tailscale в сетевом интерфейсе tailscale0: 100.113.xxx.xx

4. Использование адреса прокси-сервера на ноутбуке для доступа к общедоступной сети:

Теперь, когда мы знаем IP-адрес рабочего стола (назовем его $ip_desktop) и номер порта для http-прокси-сервера на рабочем столе (назовем его $proxy_port ), мы можем перенаправить весь сетевой трафик с ноутбука через прокси-адрес http://$ip_desktop:$proxy_port.

Например, вы можете отправить запрос curl на example.com с ноутбука через рабочий стол, например

баш curl --proxy "http://$ip_desktop:$proxy_port" "https://example.com"

Использование прокси-сервера

Приведенные выше инструкции демонстрируют, как создать бесплатный домашний прокси-сервер во время путешествия, используя запасной домашний компьютер. Теперь вы можете использовать этот прокси-адрес на своем персональном ноутбуке любым из следующих способов:

  1. В коде вашего приложения внутри клиентских http-библиотек вашего веб-фреймворка/языка (запросы на python, выборка на javascript и т. д.)
  2. Для всех веб-запросов с вашего ноутбука. Таким образом, вы можете перенаправить любой HTTP-запрос через прокси-сервер рабочего стола. В Ubuntu вы можете сделать это, выполнив следующие действия: https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en
  3. Только в браузере. Хотя Chrome и Firefox не предоставляют собственного способа настройки эксклюзивных настроек HTTP-прокси для них, вы можете сделать это с помощью таких расширений, как https://github.com/foxyproxy/firefox-extension

Я выбрал 2. и перенаправил все http-запросы с моего ноутбука на рабочий стол. Я использовал эту настройку более двух месяцев без каких-либо заметных простоев.

Заключение

В этой статье мы рассмотрели, как настроить личный резидентный прокси с помощью

  1. P2P VPN
  2. Два или более персональных компьютера

В зависимости от выбора VPN всю настройку можно выполнить без каких-либо дополнительных затрат, если у вас уже есть несколько компьютеров. Используя этот резидентный прокси-сервер, вы можете получить анонимный доступ в Интернет без каких-либо географических ограничений из-за вашего текущего физического местоположения. п


Оригинал