Ohun èlò tí ń sọ SOCKS nìkan kò ní ohun láti bá sọ̀rọ̀ lórí VPN lasan, nítorí ọ̀nà inú ń gbé pákítì, ohun èlò sì fẹ́ ibi àṣeparí aṣojú. OpenSSH lè pèsè ibi yẹn nígbà tí ẹni tí ó ní àǹfààní bá gbà á, nítorí gbigbe oníyára ń yí ìpàdé SSH kan padà sí aṣojú àdúgbò. Lẹ́yìn náà ìfo méjì wà tí a gbọ́dọ̀ yà sọ́tọ̀: ọ̀nà inú tí ó dé ọ̀gá SSH, àti ìsopọ̀ tí ọ̀gá yẹn ń ṣí síwájú. Yíyà wọ́n sọ́tọ̀ ń ṣàlàyé ìdí tí ètò yìí fi ń ṣiṣẹ́ àti ohun tí kò ní ṣe láé.

Ohun tí olùgbọ́ SSH ń di àti ohun tí kò di

Gbigbe oníyára ń fipá mú olùdáná SSH láti gbọ́ ní àdúgbò àti láti sọ SOCKS4 tàbí SOCKS5 pẹ̀lú ohunkóhun tí ó sopọ̀. Ìbéèrè kọ̀ọ̀kan ń dárúkọ ibi àfojúsùn, olùpèsè SSH sì ń ṣí ìsopọ̀ tí ó tẹ̀lé, ìdí niyẹn tí ìwá ibi àfojúsùn fi lè ṣẹlẹ̀ ní ẹ̀gbẹ́ jìn. Èyí ni gbigbe TCP ní ìpele ohun èlò, kì í ṣe VPN fún gbogbo ẹ̀rọ. Kò gbé ìsopọ̀ UDP, kò gbé ICMP, kò sì gbé ohunkóhun fún àwọn ohun èlò tí ń kọbi ara sí ètò aṣojú pátápátá. Ìfo láti olùpèsè SSH sí ohun èlò kò sì wà nínú ọ̀nà inú rẹ, èyí sì ṣe pàtàkì nígbà tí ibi àfojúsùn kìkì ń gba ìrìnàjò láti àwọn nẹ́tíwọ́kì tí a mọ̀.

Àwọn ipò àkọ́kọ́ jẹ́ gidi: ọ̀nà sí ọ̀gá SSH, àkọsílẹ̀ tí a fọwọ́ sí, kọ́kọ́rọ́ ọ̀gá olùpèsè tí a ti jẹ́rìí sí, àti àṣẹ láti gbé lọ. Kò sí ọ̀kan nínú wọn tí aṣojú ń dá, èyí tí ó gbẹ̀yìn ni ó sábà máa ń kù ní àkọ́kọ́. Jẹ́rìí sí gbogbo mẹ́rin kí o tó ṣàtúnṣe ohunkóhun mìíràn, nítorí láti ẹ̀gbẹ́ olùdáná ìkùnà ń hàn bákan náà, èyí tí ó kù yálà.

Bẹ̀rẹ̀ rẹ̀ lórí loopback pẹ̀lú ibùdó tí ó ṣe kedere

Yan ibùdó àdúgbò tí a kò lò, kí o sì so ó mọ́ loopback tààrà dípò fí fi àdírẹ́sì sílẹ̀. Àwọn àṣàyàn mẹ́ta tí ó wà nísàlẹ̀ kọ̀ọ̀kan wà fún ìdí kan.

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

-N ń forí àṣẹ jìn kọjá, -T ń forí pseudo-terminal kọjá, nítorí náà ìpàdé wà fún gbigbe nìkan. ExitOnForwardFailure ń mú kí olùdáná jáde nígbà tí a kò lè dá olùgbọ́, dípò ṣíṣe láìsí gbigbe tí o béèrè. ControlPath=none ń pa ìpàdé mọ́ ní ìta ìsopọ̀ multiplex tí ó wà tí ó lè fi gbigbe tirẹ̀ kún un. Loopback ń pa olùgbọ́ mọ́ ní ìta LAN, ṣùgbọ́n lórí ẹ̀rọ tí a pín, èyí kì í ṣe ààlà àṣẹ, nítorí àwọn ìlànà àdúgbò mìíràn pẹ̀lú lè dé ọ̀dọ̀ rẹ̀. Ìwé ìtọ́kasí olùdáná OpenSSH ń ṣàkọsílẹ̀ gbogbo àwọn àmì wọ̀nyí, ìkìlọ̀ loopback sì ń wá láti inú ohun tí socket tí ń gbọ́ jẹ́.

Fi àwọn orúkọ ránṣẹ́ nípasẹ̀ aṣojú, kì í ṣe yíká rẹ̀

Olùdáná SOCKS5 lè yanjú ibi àfojúsùn fúnra rẹ̀ tàbí béèrè lọ́wọ́ aṣojú láti ṣe bẹ́ẹ̀, àṣàyàn yẹn sì ń pinnu irú olùyanjú tí yóò dáhùn. Pẹ̀lú socks5h curl ń fi orúkọ ọ̀gá ránṣẹ́ nípasẹ̀ aṣojú, nítorí náà ìwá ń ṣẹlẹ̀ lórí olùpèsè SSH. Pẹ̀lú socks5 lasan kọ̀mpútà àgbékalẹ̀ ń yanjú ní àkọ́kọ́, ìsopọ̀ nìkan sì ń rìnrìn àjò, èyí tí ń ba ète jẹ́ ní ìdákẹ́jẹ́ nígbà tí orúkọ jẹ́ ti inú. Ìbéèrè tí ó wà nísàlẹ̀ pẹ̀lú ń fọ́ àkójọ àìsí-aṣojú mọ́, nítorí náà iye NO_PROXY tí a jogún kò lè darí rẹ̀ yíká aṣojú.

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

Ìjẹ́rìí ìwé-ẹ̀rí àti ìwọlé ohun èlò fúnra rẹ̀ ṣì wà lẹ́sẹ̀, nítorí aṣojú kò rọ́pò èyíkéyìí nínú àwọn méjèèjì. Ìwá méjì ṣì kù: kọ̀mpútà àgbékalẹ̀ gbọ́dọ̀ dé ọ̀dọ̀ ọ̀gá SSH nípasẹ̀ ọ̀nà VPN àti DNS tí a gbà, olùpèsè SSH sì gbọ́dọ̀ yanjú orúkọ ohun èlò fúnra rẹ̀. Èyí tí ó tẹ̀lé ni a lè dán wò ní ọ̀tọ̀ọ̀tọ̀ kí ìrìnàjò kankan tó gba aṣojú kọjá.

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

Jẹ́rìí sí ibi àfojúsùn kan tí a gbà, kí o sì ti ìpàdé

Dán ibi àfojúsùn tí ìlànà gbà àti èyí tí ó yẹ kí ó kọ̀ wò, nítorí gbigbe tí ń ṣiṣẹ́ kìkì ń jẹ́rìí sí pé olùgbọ́ ń ṣiṣẹ́, kì í ṣe sí i. Ohun èlò ń rí àdírẹ́sì orísun tí olùpèsè SSH yàn, èyí kì í ṣe àdírẹ́sì ọ̀nà inú kọ̀mpútà àgbékalẹ̀ rẹ. Níbi tí ẹ̀gbẹ́ jìn ń ṣàkọsílẹ̀ ìsopọ̀ ní ìbámu pẹ̀lú orísun, ìyàtọ̀ yẹn ni ohun àkọ́kọ́ tí a gbọ́dọ̀ wò nígbà tí a kọ̀ ìbéèrè.

Dá ìpàdé dúró nípasẹ̀ ìlànà tí ó ní í, dípò pa shell tí kò ní í ṣe. Lẹ́yìn náà jẹ́rìí sí pé olùgbọ́ ti lọ, nítorí ibùdó tí ó ṣì ń dáhùn jẹ́ ìpàdé tí o kò tíì tì mọ́. Yọ kìkì ètò aṣojú tí ìdánilẹ́kọ̀ọ́ yìí mú wá kúrò, kí o sì fi ìyókù ìṣètò ohun èlò sílẹ̀. Tẹ́mínà tí kò ní olùtọ́jú tí ó ń di ìlànà gbigbe mú kì í ṣe iṣẹ́, àti pé aṣojú àìlópin nílò ìgbésí ayé tí a fọwọ́ sí, kì í ṣe fèrèsé tí a gbàgbé.

ss -ltn | grep 1080

Àwọn ìkùnà tí ètò yìí kò lè túnṣe

Àwọn àmì kan tọ́ka tààrà sí àwọn ààlà tí ó wà lókè, àti dídá wọn mọ̀ ní kùtùkùtù ń dá àbọ̀ ọ̀sán àtúnṣe aṣojú. Tábìlì ń so ohun tí o rí pọ̀ mọ́ ohun tí ó sábà túmọ̀ sí. Ohunkóhun tí ó wà nínú kọ̀ọ́nù tí ó gbẹ̀yìn jẹ́ ìbéèrè àpẹẹrẹ, kì í ṣe àṣìṣe ìṣètò.

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

Àwọn ìlà mẹ́ta àkọ́kọ́ ni àwọn tí àwọn ènìyàn ń ṣàyẹ̀wò lọ́nà tí kò tọ́, nítorí kọ̀ọ̀kan ń dá ìgbìyànjú ìsopọ̀ jáde dípò àṣìṣe nípa aṣojú fúnra rẹ̀. Orúkọ tí ó yanjú lórí kọ̀mpútà àgbékalẹ̀ kò sọ ohunkóhun nípa olùyanjú olùpèsè, àti pé a ń ka ìkùnà náà gẹ́gẹ́ bí ìṣòro ìwé-ẹ̀rí tàbí àkókò tí ó tán. Àwọn ohun èlò tí ó kìkì ń lò UDP ń dúró ní ìta àpẹẹrẹ, kì í ṣe tí ó já ní inú rẹ̀, àṣàyàn ssh kankan kò sì yí èyí padà. Ìlà aṣàwákiri ni ìránnilétí tí ó sábà jẹ́ pé ètò aṣojú jẹ́ ti ohun èlò kọ̀ọ̀kan. Ìlà tí ó gbẹ̀yìn ni ìdí tí àyẹ̀wò títì fi wà: ibùdó tí ó ṣì ń gbọ́ túmọ̀ sí pé ohun mìíràn ni ó ní í báyìí.

Àwọn àpilẹ̀kọ tó jọra