Þú bættir við stefnumiðaðri leið sem sendir umferð VPN-biðlara til hýsils sem keyrir SOCKS-hlustun á gátt 1080. Pakkarnir berast, hlustandinn skráir ekkert og tengingin hangir. Ekkert er athugavert við leiðina: næsta stökk velur hvert pakki fer, og SOCKS er samtal sem biðlarinn verður að hefja. Berið saman þrjár arkitektúrarnar sem fólk á yfirleitt við þegar það sendir umferð í gegnum proxý, og það verður ljóst hvaða hluta vantar í uppsetninguna þína.

Leiðsögn, DNAT og SOCKS breyta mismunandi hlutum

Stefnumiðuð leið endurskrifar ákvörðun á lagi 3. Tvær línur nægja til að senda umferð eins biðlara til valsins næsta stökks:

ip route add default via 10.50.0.2 table 101
ip rule add from 10.77.0.2 lookup 101

Eftir það afhendir kjarninn pakkann til 10.50.0.2 og upprunalega áfangastaðurinn er enn í IP-hausnum. Ef 10.50.0.2 er beinir framsendir hann pakkann. Ef það er hýsill með SOCKS-púka á 1080 er pakkinn ekki stafaður á neitt sem getur tekið við honum, og DNAT á gátt 1080 hjálpar ekki heldur, því umbreyttur pakki ber enn upprunalega forritaskuld í stað SOCKS-kveðju.

SOCKS5 byrjar á útgáfubæti, lista yfir aðferðir, auðkenningarskiptum og beiðni sem nefnir áfangastaðinn. Það eru forritsgögn. Engin leiðarfærsla og ekkert netfilter-markmið framleiðir þau, og það er samanburðurinn í einni línu: leiðsögn velur slóð, SOCKS biður þjón um að gera aðra tengingu.

Fyrsta tilfelli: forritið getur talað SOCKS sjálft

Þegar forritið hefur proxýstillingu er þetta stysta leiðin og hún krefst engrar kjarnabreytingar. Beinið henni að hlustandanum, gefið skírteini ef þjónninn biður um þau og ákveðið hvort nöfn eru leyst staðbundið eða send proxýinu. Hjá curl eru þetta mismunandi fánar, og munurinn skiptir máli þegar áfangastaðurinn er aðeins leystur af proxýhliðinni:

curl --socks5 10.50.0.2:1080 https://docs.example.com
curl --socks5-hostname 10.50.0.2:1080 https://internal.example.com

Forrit sem hunsa umhverfisbreytur proxýs, eða opna hráa sökkla, er ekki hægt að hjálpa á þennan hátt. Vafrar og flest HTTP-verkfæri eru í lagi; leikjabiðlari, póstpúki eða handahófskenndur tvístæða frá seljanda er það yfirleitt ekki. Mörkin eru fyrir hvert forrit og hvert samskiptaregluverk, þess vegna er þessi valkostur frábær til prófunar og veikur sem svar fyrir allt VPN-ið.

Annað tilfelli: millistykki sem breytir IP-flæðum í proxýlotur

Fyrir forrit sem geta ekki talað SOCKS verður umbreytingin að eiga sér stað í einhverju sem endar IP-umferð og opnar proxýlotur fyrir þeirra hönd. Sá hluti á tunnuviðmót, tekur við flæðunum sem stefnumiðuð leiðsögn valdi, framkvæmir SOCKS-handtakið fyrir hvert þeirra og byggir svörin upp á nýtt. Leiðin beinir umferðinni að honum; millistykkið er það sem skapar lotuna.

Lestu skjöl þess áður en þú treystir því fyrir heilu undirneti. Mörg millistykki bera TCP vel og meðhöndla UDP aðeins í gegnum SOCKS5 UDP-samtengingu, og ekkert þeirra breytir ICMP í proxýumferð, svo árangursríkt ping segir ekkert um proxýslóðina. DNS er hin gildran: ef millistykkið leysir nöfn staðbundið eru eingöngu innri færslur leystar í ranga niðurstöðu, eða í ekkert.

Forvarnir lykkja er rekstraratriðið sem bítur. Eigin tengingar millistykkisins við SOCKS-þjóninn mega ekki vera leiðbeindar aftur í millistykkið, svo umferð þess þarf undantekningu í reglunni eða sérstakt upprunafang. Gerðu þetta rangt og proxýlotan reynir að proxýa sjálfa sig.

Þriðja tilfelli: hýsillinn er í raun leiðbein gátt

Stundum inniheldur uppsetningin sem virkar ekkert SOCKS. Fjárhýsillinn framsendir pakka eða gerir NAT á þá, og upprunamiðaða reglan velur hann einfaldlega sem útgang. Sú hönnun er lögmæt og útskýrir hvers vegna afrituð stilling virkar á einu neti og mistekst á öðru: reglan er sú sama, hluti sem vantar er framsendingarþjónusta hinum megin.

Tilfellin þrjú aðskiljast fljótt. Athugaðu hvað er í raun að hlusta, og skoðaðu svo fyrstu bætin sem ná til hýsilsins:

ss -ltnp 'sport = :1080'
tcpdump -ni eth0 -X 'tcp port 1080'

Fyrsti farmbæti raunverulegs SOCKS-biðlara er 0x05, útgáfan í kveðjunni. Ef upptakan sýnir í staðinn upprunaleg forritsgögn mun enginn SOCKS-púki svara, því samningaviðræðurnar hófust aldrei. Ef ekkert hlustar á 1080 er hýsillinn gátt, og spurningin verður hvort hann framsendir og hvort til sé afturleið.

Veldu lagið með fjórum spurningum

Hefur forritið proxýstillingu? Notaðu hana og stöðvaðu þar. Inniheldur umferðin UDP eða ICMP sem verða að lifa af? Aðeins leiðbein eða NAT-gátt ber ICMP, og UDP þarf SOCKS5-samtengingu sem báðir endar styðja. Verður hvert ferli á vélinni að vera þakið, þar á meðal þau sem þú getur ekki stillt? Þá þarftu millistykki sem á viðmótið og endar flæði. Geturðu líka tekið yfir leiðsögn þess, DNS og undantekningar lykkjaforvarna? Ef ekki mun einfalda gáttin kosta minna í rekstri.

Eitt aðgreiningareinkenni er þess virði að halda skýru. Eigin socks-proxy valkostur VPN-biðlara lýsir því hvernig ytri tunnutengingin nær þjóninum sínum, og segir ekkert um umbreytingu innri biðlaraflæða. Þau tvö eru stöðugt rugluð saman í sama miða. Ákveddu hvaða samband þú þarft áður en þú snertir leið.

Tengdir greinar