І VPN, і прамы праксі змяняюць адрас, які бачыць сайт, і менавіта тут большасць параўнанняў спыняецца. Розніца, якая вызначае вашу наладу, — гэта пакрыццё: прамы праксі — гэта пасярэднік, які ваша праграма выбірае выкарыстоўваць, у адрозненне ад зваротнага праксі, што стаіць перад сайтам, а VPN перамяшчае ўсё, што аперацыйная сістэма накіроўвае ў тунель. Шыфраванне, праца з DNS і паводзіны пры збоі вынікаюць з гэтага падзелу. Выканайце гэтыя пяць праверак па парадку, і першая няўдача падкажа, які інструмент вам насамрэч патрэбны.

Якія праграмы пакрывае пасярэднік?

Пашырэнне праксі ў браўзеры дзейнічае толькі ў гэтым профілі браўзера. Паштовыя кліенты, менеджэры пакетаў і другі браўзер працягваюць карыстацца ўласнымі наладамі, а некаторыя праграмы цалкам ігнаруюць зменныя сістэмнага праксі. VPN жа пакрывае тое, што табліца маршрутызацыі адпраўляе ў тунель, — гэта могуць быць усе праграмы або падмноства пры падзеленым тунелі ў залежнасці ад маршрутаў і палітыкі кліента.

Тэстуйце праграмы, якія маюць значэнне, замест здагадак па адной загрузцы старонкі. curl https://ifconfig.me слухаецца зменных праксі асяроддзя; настольная праграма можа не. У Windows netsh winhttp show proxy друкуе праксі WinHTTP, які выкарыстоўваюць службы, і гэта іншая налада, чым у браўзеры.

Ці шыфруецца пераскок, і дзе заканчваецца TLS?

Пратакол праксі — гэта месца сустрэчы, а не гарантыя. SOCKS5 перадае TCP без шыфравання, а звычайны HTTP-праксі нясе радок запыту і загалоўкі адкрытым тэкстам. HTTPS праз праксі выкарыстоўвае CONNECT, таму ваш сеанс TLS усё роўна завяршаецца ў пункце прызначэння, а не на праксі. Кіраўніцтва MDN па праксі-серверах і тунеляванні апісвае гэтую розніцу з боку пратаколу.

VPN шыфруе ўчастак паміж вашай прыладай і яго канчатковым пунктам. За канчатковым пунктам дзейнічаюць тыя ж правілы, што і ў любой іншай сетцы, таму адзін тунель не абараняе праграму, якая перадае ўліковыя дадзеныя па звычайным HTTP. Ні адна з канструкцый не хавае ўвайшоўшы ўліковы запіс, кукі або адбітак браўзера.

curl -v -x http://127.0.0.1:3128 https://example.com/ -o /dev/null
curl -v -x socks5h://127.0.0.1:1080 https://example.com/ -o /dev/null

Падрабязны вывад паказвае, ці curl адправіў CONNECT на порт 443 або звычайны GET з поўным URL. З socks5h:// імя хоста перадаецца праксі ўнутры запыту SOCKS5, і той перасылае TLS, які не можа прачытаць, таму бачыць імя і колькасць байтаў. Праз праксі http:// адрас https:// становіцца CONNECT, таму гэты праксі таксама бачыць імя і аб’ём пункта прызначэння, але не запыт і не цела адказу.

Які рэзалвер бачыць імя?

Развязанне імёнаў можа адбывацца лакальна да адпраўкі запыту або дыстанцыйна на праксі. З curl socks5h:// перадае імя хоста праксі, а socks5:// спачатку развязвае яго лакальна. Налады праксі ў браўзеры прапануюць параўнальную опцыю DNS, а файлы PAC могуць накіроўваць розныя хасты па-рознаму.

Два пратаколы могуць абыйсці праксі без якой-небудзь памылкі ў наладах. WebRTC збірае кандыдатаў праз STUN, а QUIC запускае HTTP/3 па UDP, што TCP-праксі не можа перадаць. Браўзер вернецца да TCP, калі UDP 443 заблакаваны, таму блакаванне UDP 443 на фаеры хоста (або на роўтары для ўсёй сеткі), а не сцяг браўзера, — надзейны спосаб утрымаць HTTP/3 у шляху праксі.

Правярайце рэзалвер з пункту гледжання пункта прызначэння, а не вашага ноўтбука. Запыт, які прыходзіць з адраса выхаду праксі, але з лакальна развязаным імем, усё роўна паведамляе лакальнаму рэзалверу, якія сайты вы наведваеце.

Што адбываецца, калі пасярэднік збаіць?

Яўны праксі збаіць у закрытым стане: спыніце працэс праксі, і браўзер або праграма верне памылку злучэння замест прамога выхаду. Налады PAC і WPAD — гэта тыя, што збаяць у адкрытым стане: калі сцэнар не ўдаецца загрузіць, кліент вяртаецца да DIRECT, і сайт зноў бачыць ваш сапраўдны адрас. VPN можа збаіць адкрыта або закрыта ў залежнасці ад кліента і таго, ці актыўныя аварыйны выключальнік або правіла фаера.

Праверце выпадак збою наўмысна: спыніце службу праксі і перазагрузіце; калі вы атрымалі старонку памылкі, а не прамую загрузку, накіруйце URL PAC на недасяжны хост, каб убачыць адкат. Калі старонка ўсё яшчэ грузіцца вашым звычайным маршрутам, праксі не дае абароны ад уласнага збою, і гэта ўласцівасць, якую варта ведаць, перш чым спадзявацца на яго.

Парадак вызначае, што бачыць сайт. Праксі, выхад якога ідзе праз VPN, пакідае сайту адрас канчатковага пункта VPN; пастаўце праксі па-за тунелем (VPN да праксі на аддаленым хосце) — і сайт убачыць замест гэтага адрас выхаду таго праксі. У любым выпадку два пераскокі могуць запісваць рознае.

Пяць праверак, па парадку

Кантрольны спіс ніжэй — гэта ўсё рашэнне ў адным месцы. Пакрыццё ідзе першым, бо яно ліквідуе большасць несупадзенняў: калі праграма, якую трэба пакрыць, не паважае наладу, нішто далей у спісе яе не ўратуе.

CheckForward proxyVPN
What is coveredThe app or browser you configureTraffic the OS routes into the tunnel, all or split
Encryption scopeProtocol-dependent; SOCKS5 alone encrypts nothingDevice to VPN endpoint
DNS pathLocal or remote, depending on the settingNormally inside the tunnel
Failure modeExplicit config: connection error; PAC/WPAD: DIRECT fallbackClient policy: fail-open or kill switch
What the site seesThe proxy's exit addressThe VPN endpoint's exit address

Затым пацвердзіце вынік праграмай, якая выклікала змену. Загрузіце старонку ў наладжаным браўзеры, атрымайце тую ж старонку праз curl і параўнайце адрас, які паведамляе кожны. Калі яны разыходзяцца, значыць, пашырэнне, правіла PAC або перавага на ўзроўні праграмы ўсё яшчэ дзейнічаюць, і ніякая наладка тунеля гэтага не выправіць.

Запішыце, што вы наладзілі: якія праграмы выкарыстоўваюць праксі, ці DNS лакальны або дыстанцыйны, ці заблакаваны UDP і якія паводзіны пры збоі. Менавіта гэты невялікі пералік робіць магчымым наступнае параўнанне, бо «IP змяніўся» ніколі не казала, якая з гэтых пяці праверак прайшла.

Падобныя артыкулы