Gbigbe SSH oníyára gẹ́gẹ́ bí aṣojú SOCKS lórí VPN rẹ
Ohun èlò tí ń sọ SOCKS nìkan kò ní ibi àṣeparí aṣojú lórí VPN lasan. Ìfo méjì, olùgbọ́ loopback kan àti ìwá orúkọ kan tí olùpèsè SSH gbọ́dọ̀ ṣe fúnra rẹ̀.
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 see | What it usually means | Where to look |
|---|---|---|
| The app connects and nothing follows | It ignores proxy settings entirely | Its own network settings, not the SSH session |
| A name resolution error for the destination | The SSH server cannot resolve it | Server resolver and search domains |
| A UDP-only application fails | Dynamic forwarding carries TCP only | This arrangement cannot serve it |
| curl works, the browser does not | The browser is not using the socks5h endpoint | Browser proxy configuration |
| The listener answers after the session ended | Another process owns port 1080 | The 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ìí.