Људи третирају socks5h као socks5 са пријатнијим правописом и очекују да ће обоје послати исти захтев на исто место. Додатно слово уместо тога помера DNS упит. На машини чији резолвер и чији прокси стоје у различитим мрежама, то је разлика између захтева који ради и оног који не успева.

Једно слово, два резолвера

Шема одлучује где име одредишта постаје адреса. Локално разрешавање користи резолвер конфигурисан на вашој машини. Удаљено разрешавање ставља име хоста унутар SOCKS захтева, а прокси га тражи својим резолвером и својим погледом на мрежу. Оба облика се још повезују на исту адресу проксија на истом порту, па је разлика у телу захтева, не у путањи.

Ништа у шеми не мења шифровање ни проверавање идентитета; помера се само DNS путања. Зато је слово лако игнорисати и скупо погрешити.

Исти прокси, други захтев

Два позива се разликују за један знак. Све остало је идентично:

curl --proxy socks5://proxy.example:1080 https://service.example/
curl --proxy socks5h://proxy.example:1080 https://service.example/

The curl референца за прокси документује ове шеме одвојено, и то је ауторитативан разлог да их не третирамо као алијасе. Покрените оба ка безопасној крајњој тачки коју смете да користите и прочитајте разлику. Успешно удаљено тражење не говори ништа о другим апликацијама, јер прегледачи, менаџери пакета и језичка окружења бирају свако за себе.

Сопствено име проксија разрешава се локално

У тој команди proxy.example мора постати адреса пре него што се било шта друго догоди, а то тражење је увек локално. Премештање разрешавања service.example на прокси не чини ништа за сопствено име проксија, коме и даље треба резолвер до којег ваша машина може да дође. Ту VPN мења слику.

Ако се име проксија разрешава само унутар тунела, веза зависи од тога да тунел буде подигнут пре него што curl почне. Која шема тада побеђује зависи од тога која страна може да одговори. Када ваша машина не може да разреши одредиште а прокси може, socks5 не успева а socks5h успева. Када га ваша машина разреши кроз тунел а прокси не може, socks5 ради а socks5h не успева.

Шема не ставља везу ка проксију унутар или изван VPN-а; то ради табела рутирања и шема је никада не види. Зато један тунел може поправити једну шему и покварити другу на истој машини. Слово одлучује само ко поставља питање.

Шта свака страна може да разреши

Јавни прокси не може да разреши име које постоји само у фирми, па слање имена хоста тамо не успева на проксију и појављује се као грешка проксија, а не као локална DNS грешка. Прокси унутар исте приватне мреже обично може да разреши таква имена, и ту socks5h оправдава своје постојање. Изаберите место резолвера према политици која вам је заиста потребна, јер удаљени DNS није аутоматски способнији и заиста предаје име трећој страни. За јавно одредиште раде оба облика, па дајте предност оном који ваши други алати већ користе.

Запишите тај избор у runbook, а не у коментар, и држите акредитиве изван заједничке историје и дијагностичког излаза. Затим мењајте једну променљиву по једну: исто одредиште, исти бинарни фајл, исти резолвер, једно слово.

Који бинарни фајл је одговорио

Два curl бинарна фајла на истој машини могу се разликовати по верзији и могућностима компилације. У Unixоликој љусци type -a curl наводи свако подударање на путањи а curl --version приказује могућности оног који би се покренуо. Омотавајућа скрипта или алијас раније на путањи чест су разлог што резултати не одговарају бинарном фајлу за који мислите да га тестирате.

Неподржана шема, прокси који не може да разреши име и недоступно одредиште три су различите грешке, па прочитајте поруку пре него што промените слово. Компилација без socks5h синтаксе пријављује proxy string као неподржан, што није исто као име које се није успело разрешити. Не претварајте један стари извештај о системском curl-у у трајно правило за сваку платформу.

Повезани чланци