Níl aon rud le labhairt leis ag aip nach labhraíonn ach SOCKS ar VPN rialta, mar iompraíonn an tollán paicéid agus teastaíonn críochphointe seachfhreastalaí ón aip. Is féidir le OpenSSH an chríochphointe sin a sholáthar nuair a cheadaíonn úinéir an rochtana é, mar casann seoladh ar aghaidh dinimiciúil aon seisiún SSH ina sheachfhreastalaí áitiúil. Ansin tá dhá léim le coinneáil scartha: an tollán a shroicheann óstach SSH, agus an nasc a osclaíonn an t-óstach sin ina dhiaidh. Míníonn a scaradh araon cén fáth a n-oibríonn an socrú agus cad nach ndéanfaidh sé riamh.

Cad a dhéanann agus cad nach ndéanann an t-éisteoir SSH de

Cuireann seoladh ar aghaidh dinimiciúil iallach ar an gcliant SSH éisteacht go háitiúil agus SOCKS4 nó SOCKS5 a labhairt le gach rud a nascann. Ainmníonn gach iarratas ceann scríbe agus osclaíonn an freastalaí SSH an nasc ar aghaidh, agus is é sin an fáth gur féidir cuardach an chinn scríbe a dhéanamh ar an taobh thall. Is aistriú TCP ar leibhéal an fheidhmchláir é sin, ní VPN don ghléas iomlán. Ní iompraíonn sé aon chomhcheangal UDP, ná ICMP, ná aon rud d’fheidhmchláir a dhéanann neamhaird iomlán de shocruithe seachfhreastalaí. Níl an léim ón bhfreastalaí SSH chuig an bhfeidhmchlár taobh istigh de do thollán ach an oiread, rud a bhfuil tábhacht leis nuair nach nglacann an ceann scríbe le trácht ach ó líonraí aitheanta.

Tá na réamhchoinníollacha fíor: bealach chuig an óstach SSH, cuntas údaraithe, eochair óstaí freastalaí fíoraithe agus cead chun seoladh ar aghaidh. Ní chruthaíonn an seachfhreastalaí aon cheann acu, agus is gnách gurb é an ceann deireanach an chéad cheann a bhíonn in easnamh. Deimhnigh an ceathrar sula ndéanann tú dífhabhtú ar aon rud eile, mar breathnaíonn an teip mar an gcéanna ón gcliant, cibé ceann atá ar iarraidh.

Tosaigh é ar loopback le port sainráite

Roghnaigh port áitiúil nach bhfuil in úsáid agus ceangail go sainráite le loopback é in ionad an seoladh a fhágáil ar lár. Tá na trí rogha thíos ann, gach ceann ar chúis amháin.

ssh -D 127.0.0.1:1080 -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  [email protected]

Léimeann -N an t-ordú cianda agus léimeann -T an pseudo-theirminéal, mar sin níl sa seisiún ach seoladh ar aghaidh. Cuireann ExitOnForwardFailure iallach ar an gcliant imeacht nuair nach féidir an t-éisteoir a chruthú, in ionad rith gan an seoladh ar aghaidh a d’iarr tú. Coimeádann ControlPath=none an seisiún amach as nasc ilphléacsáilte atá ann cheana a d’fhéadfadh a sheoltaí ar aghaidh féin a chur leis. Coimeádann loopback an t-éisteoir amach ón LAN, ach ar mheaisín roinnte ní teorainn údaraithe é, mar is féidir le próisis áitiúla eile teacht air freisin. Déanann tagairt chliant OpenSSH doiciméadú ar na bratacha seo go léir, agus tagann an rabhadh loopback ón rud is socket ag éisteacht ann.

Seol ainmneacha tríd an seachfhreastalaí, ní timpeall air

Is féidir le cliant SOCKS5 an ceann scríbe a réiteach féin nó iarraidh ar an seachfhreastalaí é sin a dhéanamh, agus socraíonn an rogha sin cé an réititheoir a fhreagraíonn. Le socks5h seolann curl an t-ainm óstaigh tríd an seachfhreastalaí, mar sin tarlaíonn an cuardach ar an bhfreastalaí SSH. Le socks5 lom réitíonn an ríomhaire glúine ar dtús agus ní thaistealaíonn ach an nasc, rud a chlisfholmhaíonn an pointe nuair atá an t-ainm inmheánach. Glanann an t-iarratas thíos an liosta gan seachfhreastalaí freisin, mar sin ní féidir le luach NO_PROXY oidhreachta é a threorú timpeall an tseachfhreastalaí.

curl -sS --noproxy '' --proxy socks5h://127.0.0.1:1080 https://app.corp.example/health

Bíonn bailíochtú an teastais agus logáil isteach na haipe féin i bhfeidhm fós, mar ní thagann an seachfhreastalaí in ionad ceachtar acu. Fanann dhá chuardach: caithfidh an ríomhaire glúine an t-óstach SSH a shroicheadh tríd an mbealach VPN agus DNS ceadaithe, agus caithfidh an freastalaí SSH ainm na haipe a réiteach é féin. Is féidir an dara ceann a thástáil leis féin sula dtéann aon trácht tríd an seachfhreastalaí.

ssh [email protected] getent hosts app.corp.example

Cruthaigh aon cheann scríbe amháin ceadaithe, ansin dún an seisiún

Tástáil ceann scríbe a cheadaíonn an beartas agus ceann ar cheart dó diúltú, mar ní chruthaíonn seoladh ar aghaidh atá ag obair ach go n-oibríonn an t-éisteoir agus rud ar bith eile. Feiceann an aip an seoladh foinse a roghnaíonn an freastalaí SSH, agus ní hé sin seoladh tolláin do ríomhaire glúine. San áit a ndéanann an taobh thall naisc a logáil de réir foinse, is é an difríocht sin an chéad rud le seiceáil nuair a dhiúltaítear d’iarratas.

Stop an seisiún tríd an bpróiseas a shealbhaíonn é in ionad blaosc nach mbaineann le hábhar a mharú. Ansin deimhnigh go bhfuil an t-éisteoir imithe, mar is éard atá i bport a fhreagraíonn fós seisiún nár dhún tú i ndáiríre. Bain amach ach an socrú seachfhreastalaí a thug an cleachtadh seo isteach, agus fág an chuid eile de chumraíocht na haipe i síocháin. Ní seirbhís é teirminéal gan mhaoirseacht a choinníonn riail seolta ar aghaidh, agus teastaíonn saolré cheadaithe ó sheachfhreastalaí buan, ní fuinneog dearmadta.

ss -ltn | grep 1080

Teipeanna nach féidir leis an socrú seo a shocrú

Léiríonn roinnt comharthaí go díreach na teorainneacha thuas, agus sábhálann a n-aithint go luath tráthnóna de dhífhabhtú seachfhreastalaí. Nascann an tábla an rud a fheiceann tú leis an rud a chiallaíonn sé de ghnáth. Is ceist dearaidh é aon rud sa cholún deireanach, ní botún cumraíochta.

What you seeWhat it usually meansWhere to look
The app connects and nothing followsIt ignores proxy settings entirelyIts own network settings, not the SSH session
A name resolution error for the destinationThe SSH server cannot resolve itServer resolver and search domains
A UDP-only application failsDynamic forwarding carries TCP onlyThis arrangement cannot serve it
curl works, the browser does notThe browser is not using the socks5h endpointBrowser proxy configuration
The listener answers after the session endedAnother process owns port 1080The ss output, then the owning process

Is iad na chéad trí rí na cinn a ndéanann daoine mí-dhiagnóis orthu, mar táirgeann gach ceann acu iarracht nasctha in ionad earráide faoin seachfhreastalaí féin. Ní deir ainm a réitítear ar an ríomhaire glúine aon rud faoi réititheoir an fhreastalaí, agus léitear an teip ina ionad sin mar fhadhb teastais nó teorainn ama. Seasann feidhmchláir nach n-úsáideann ach UDP lasmuigh den dearadh, ní briste istigh ann, agus ní athraíonn aon rogha ssh bhreise sin. Is é rí an bhrabhsálaí an meabhrúchán gnáth go mbaineann socruithe seachfhreastalaí le gach aip ar leith. Is é an rí deireanach an chúis a bhfuil an tseiceáil dúnta ann: ciallaíonn port a éisteann fós go bhfuil rud éigin eile ina sheilbh anois.

Ailt ghaolmhara