Ротацията на прокси и VPN променят публичния ви адрес на различни слоеве и тази разлика решава какво изтича. VPN премества всеки пакет в тунел, така че адресът на източника, който целта вижда, е крайната точка на тунела. Проксито стои над мрежовия слой: от изхода се показват само заявките, които изпращате през него, докато всичко останало на машината запазва истинския адрес. Правилното разделяне превръща ротацията от отметка в проектно решение.

Откъде всъщност идва публичният адрес

Адресът, който целта вижда, е този, от който трафикът ви е излязъл последно, а при домашна връзка това е адресът на доставчика на рутера ви, а не нещо, което машината притежава. Рестартирането на рутера може да върне същия наем, а смяната на MAC адреса му понякога създава нов, но нито едно от двете не ви дава избор на държава. VPN заменя адреса на източника на IP слоя, така че всеки пакет от машината, включително DNS и фоновите актуализации, излиза от крайната точка на тунела. Проксито работи един слой по-горе: приема заявка, отваря собствена връзка към целта и само тази заявка се показва от изхода. Всичко останало на машината продължава да използва истинския адрес.

Това разделяне обяснява повечето изненади. Разширение на браузъра, насочено към прокси, променя само това, което браузърът изпраща, така че второ приложение на същия хост все още издава оригиналния адрес. Системният VPN има обратен режим на отказ: покрива трафик, който сте искали да остане локален, и се затваря само ако клиентът е конфигуриран така. Изборът между двете всъщност е избор кой трафик трябва да се движи.

Тогава ротацията се прилага към слоя, който сте избрали. При прокси ротацията означава, че следващата заявка използва друг изход. При VPN това означава разрушаване и повторно изграждане на тунела, което е по-бавно и се вижда като забележимо повторно свързване.

Какво може да прочете HTTP прокси и какво не

При обикновен HTTP проксито вижда абсолютен URI в реда на заявката, всеки заглавен ред и тялото. Може да регистрира всичко това и да пренапише която и да е част, затова безплатно прокси, което инжектира скрипт в отговорите, прави точно това, което протоколът позволява. Удостоверяването използва Proxy-Authorization, а липсващи или грешни данни за достъп дават 407 Proxy Authentication Required вместо грешка при свързване.

При HTTPS клиентът изпраща CONNECT host:port и проксито отваря суров тунел, след което вижда шифровани байтове. То все още научава името на хоста от реда CONNECT и обикновено от полето SNI в TLS ръкостискането, така че регистрирането на ниво име на хост оцелява, дори когато полезният товар не. Четенето на полезния товар изисква прекратяване на TLS със сертификат, на който клиентът вярва, а това е друг продукт с различен риск. А спецификацията на семантиката на HTTP дефинира CONNECT като заявка за тунел, което е правилният модел за това какво може и какво не може да види изходът.

curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'

Подробният изход показва реда CONNECT преди какъвто и да е TLS трафик и точно в този момент проксито научава дестинацията ви. Прокси, което отговаря с 407, никога не е отваряло тунела, така че повторен опит с различни TLS настройки няма да помогне.

Гранулярността на ротацията решава какво се чупи

Ротация при всяка заявка е настройката, която изглежда най-безопасна и чупи най-много. Бисквитките, CSRF токените и сървърните сесии са обвързани с идентичност, а идентичност, която се променя между влизането и следващото извикване, изглежда за целта като отвличане на сесия. Много доставчици предлагат лепкава сесия, като я кодират в потребителското име на проксито, така че изходът остава фиксиран за избран прозорец.

Изберете гранулярността според задачата, а не според настройката по подразбиране на доставчика. Сканер, който изтегля независими страници, може да ротира при всяка заявка, докато поток за плащане или удостоверен API трябва да задържи един изход за целия поток. Двете извиквания по-долу показват лепкаво потребителско име и обикновена ротираща крайна точка, а socks5h схемата разрешава имена на проксито, а не локално.

curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me

Локалният DNS е тиха теч. Ако клиентът разреши името преди свързване, резолверът все още научава всеки хост, който посещавате, дори когато HTTP заявката излиза другаде. А socks5h формата и разрешаването от страна на проксито избягват това и използването им не струва нищо.

Какво класифицира целта освен адреса

Репутацията на адреса е един вход сред няколко. Целите комбинират ASN и неговия етикет за център за данни или жилищен, TLS отпечатъка на клиента, настройките на HTTP/2, реда на заглавките, честотата на заявките и формата на навигацията. Жилищен изход, управляван от браузър без интерфейс, може да се провали там, където изход от център за данни, управляван от истинска сесия, минава.

Типът изход определя какво можете честно да твърдите за трафика и всеки носи различна цена.

Exit typeWhat the target seesMain cost
Datacenter proxyHosting ASN, cheap, often pre-blockedLow reputation, easy to detect
Residential networkA consumer ISP address belonging to someone elseConsent and terms-of-service exposure
Mobile carrierA carrier NAT address shared by many subscribersPrice, plus shared blame for abuse
Your own cloud egressAn address you are accountable forRecognisable, but defensible

Споделеният изход не е неутрален. Всичко друго, което работи от този адрес, попада в същата кофа за репутация, а адрес, вече изгорен от други наематели, се проваля преди първата ви заявка да бъде прочетена.

Изберете изход, който можете да опишете в политика

Полезният въпрос не е как да скриете адреса, а кой отговаря за трафика, който излиза от него. Собственият ви облачен изход за всяка задача, доставчик по договор със споразумение за обработка на данни и публикуван срок на съхранение, и самостоятелно хостван VPN с една идентичност за задача — всичко това се описва с едно изречение. Безплатният списък не е, защото операторът му няма задължение към вас и има всеки стимул да регистрира.

Дръжте собствените си ограничения на честотата под това, което целта търпи, и събирайте само полетата, които задачата изисква, за да остане грешката малка. По-бързата ротация, за да избегнете блокировка, обикновено повишава честотата на заявките, която я е причинила.

Запишете избрания изход, неговия прозорец за ротация и неговия собственик в конфигурацията на задачата преди първото изпълнение. Когато дойде блокировката, тази бележка ви казва дали да смените изхода, или да смените поведението.

Подобни статии