sshuttle ni a máa ń yàn nítorí SSH ti ń ṣiṣẹ́ tẹ́lẹ̀ àti pé ẹ̀kọ́ ìkọ̀kọ̀ dà bí ohun tí a mọ̀, àti pé ìrònú yẹn ń fòye àwọn ìbéèrè kan ṣoṣo tí ó ń pinnu bóyá ó yẹ. Àwọn pákẹ́tì wo ni ó ń kúrò nínú ẹ̀rọ, àkọsílẹ̀ wo ni ó ń gbé wọn ní ẹ̀gbẹ́ kejì, àti iye àṣẹ ibi tí irinṣẹ́ ń béèrè. Àwọn ìdáhùn mẹ́ta yẹn yàtọ̀ nípa ọ̀nà gbígbé, nítorí náà ètò tí ó ń ṣiṣẹ́ fún ohun èlò kan lè kùnà ní ìdákẹ́jẹ́ fún èyí tí ó tẹ̀lé. Àlàyé nísàlẹ̀ yìí bẹ̀rẹ̀ láti inú ìlànà tí ohun èlò náà nílò ní ti gidi.

Bẹ̀rẹ̀ láti inú ìlànà tí ohun èlò náà nílò

Àtìlẹ́yìn ìlànà nínú sshuttle 2.0 dá lórí ọ̀nà tí o bá yàn. Àwọn ọ̀nà NAT àti nft nínú Linux ń bójú tó TCP àti DNS, TPROXY sì ń fi UDP gbogbogbò kún. Ẹ̀rọ àti ọ̀nà kọ̀ọ̀kan ní ààlà wọn, macOS sì ń dí nípasẹ̀ ẹ̀rọ kan tí ó yàtọ̀ pátápátá. Ṣàkọsílẹ̀ ẹ̀dà tí a fi sórí ẹ̀rọ, ọ̀nà tí a yàn àti àwọn ìlànà tí ohun èlò náà nílò kí o tó yan ohunkóhun.

Nítorí náà ìbéèrè TCP tí ó ń ṣiṣẹ́ ń fi ohun díẹ̀ hàn nípa ohun èlò UDP tàbí nípa gbogbo ìwádìí DNS. sshuttle tún ń ka TCP sí ṣíṣàn dípò kí ó fi gbogbo pákẹ́tì IP sínú ọ̀nà abẹ́lẹ̀, nítorí náà ìparí nípa ìṣàn tí a yá láti VPN déédé kò kó lọ síbí. Fi ẹ̀rọ tí o ń ṣiṣẹ́ ní ti gidi wé ẹrù tí o ní ní ti gidi.

ApproachWhat it carriesWhat it needs locally
SSH local forwardOne explicitly named TCP destinationNothing beyond the SSH client
sshuttle, nft or nat methodTCP and DNS to the routed prefixesRoot or sudo for firewall rules
sshuttle, tproxy methodTCP, DNS and general UDPRoot or sudo, and kernel support
IP VPNRouted IP traffic in a tunnelA client with the required privileges

Ohun tí olùfẹ́ ẹ̀rọ nílò níbílẹ̀

Ètò olùfẹ́ ẹ̀rọ tí a kọ sílẹ̀ nílò root tàbí sudo, nítorí pé ó ń fi àwọn òfin dídíní ibílẹ̀ sórí ẹ̀rọ dípò kí ó dá ojú-ọ̀nà abẹ́lẹ̀. Òtítọ́ kan náà yẹn ń yí ìtàn ààbò padà: ìlànà tí ó ní àṣẹ yẹn lè yí ìrìnàjò ẹ̀rọ gbogbo padà, kì í ṣe ti ohun èlò kan ṣoṣo. Wo àṣẹ náà gẹ́gẹ́ bí apá kan àpẹrẹ, kì í ṣe àlàyé fífi sórí ẹ̀rọ.

Jẹ́rìí àwọn òfin tí irinṣẹ́ fi sórí ẹ̀rọ àti pé wọ́n ń pòórá nígbà tí ó bá jáde. Ìpàdé tí ó já lu ilẹ̀ tí ó sì fi àwọn òfin dídíní sílẹ̀ lè fi ìrìnàjò ránṣẹ́ sínú ihò dúdú pẹ́ lẹ́yìn tí olùṣiṣẹ́ bá ti rò pé ìsopọ̀ ti lọ, àmì náà sì dà bí àìdáṣiṣẹ́ nẹ́tíwọ́kì kì í ṣe òfin tí ó kù.

sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route

Àṣẹ àkọ́kọ́ ni ìrísí ìpè déédé, pẹ̀lú àfo tí o nílò ní ti gidi. Èkejì ń fi hàn ohun tí irinṣẹ́ fi sórí ẹ̀rọ, ẹ̀kẹta sì ń jẹ́rìí pé kò sí ojú-ọ̀nà abẹ́lẹ̀ tí ó jáde, èyí tí ó jẹ́ àbájáde tí a ń retí fún àpẹrẹ yìí.

Ohun tí ẹ̀gbẹ́ jíjìnnà ń ṣiṣẹ́

Ẹ̀gbẹ́ jíjìnnà ni àkọsílẹ̀ SSH tí a fọwọ́ sí pẹ̀lú àyíká olùrànlọ́wọ́ Python tí ó bá a mu. Ìwọlé tí ó ṣẹ́gun nínú ṣẹ́ẹ̀lì tí a dín kò ní fúnni ní àṣẹ láti ṣiṣẹ́ olùrànlọ́wọ́ yẹn lọ́nà àìdábọ̀, àkọsílẹ̀ tí ó lè ṣiṣẹ́ olùrànlọ́wọ́ kò sì dé gbogbo iṣẹ́ àfojúsùn lọ́nà àìdábọ̀. Òtítọ́ méjèèjì jẹ́ ti ìbéèrè ìwọlé kì í ṣe ti àwọn àkọsílẹ̀ àtúnṣe ìṣòro.

Dáàbò bo ìjẹ́rìí ìdánimọ̀ agbàlejò àti ìjẹ́rìí àkọsílẹ̀. Gbígba kọ́kọ́rọ́ agbàlejò àìmọ̀ kí ìsopọ̀ àkọ́kọ́ lè ṣiṣẹ́ ń yọ ìṣàyẹ̀wò pé ẹ̀gbẹ́ jíjìnnà ni ẹ̀rọ tí o ní lọ́kàn kúrò, èyí sì wúwo níbí ju gbígbé fún ète kan lọ.

Dín àkọsílẹ̀ jíjìnnà mọ́ àwọn iṣẹ́ tí ìṣàn iṣẹ́ nílò, kí o sì jíròrò ààlà yẹn pẹ̀lú àwọn tí ń ṣiṣẹ́ agbàlejò. Wọ́n jẹ́ apá kan ìbáṣepọ̀ ìgbẹ́kẹ̀lé, kò sì sí ètò ní ẹ̀gbẹ́ olùfẹ́ ẹ̀rọ tí ó ń yí i padà.

Níbo ni ààlà ìgbẹ́kẹ̀lé wà

Gbígbé ìsopọ̀ API àdáni nípasẹ̀ SSH kò fúnni ní àṣẹ fún gbogbo ìgbésẹ̀ API. TLS ohun èlò àti ìwọlé sínú ohun èlò ṣì ń lò, irinṣẹ́ kò sì lè sọ iṣẹ́ tí kò ní ìjẹ́rìí di ààbò. Bẹ́ẹ̀ ni ìfò mìíràn láti agbàlejò jíjìnnà kì í ṣe apá ààbò kan náà pẹ̀lú ọ̀nà SSH lọ́nà àìdábọ̀, nítorí pé ìsopọ̀ kejì yẹn ń tẹ̀lé ètò ìmúṣẹ èyíkéyìí tí agbàlejò jíjìnnà ní.

Kọ ààlà náà sí ìdí ọ̀rọ̀ kan: ìrìnàjò sí àwọn àfo yìí ń jáde nípasẹ̀ àkọsílẹ̀ yìí lórí agbàlejò yẹn. Bí ọ̀rọ̀ náà bá nílò ìpín ìyàsọ́tọ̀, àpẹrẹ náà ń ṣe ju ohun tí ìwé rẹ̀ ń sọ lọ, ó sì yẹ kí a tún wò ó kí ó tó dé ìmújáde.

Jẹ́rìí rẹ̀ fún ìlànà kọ̀ọ̀kan, lẹ́yìn náà yan irinṣẹ́

Dán gbogbo ìlànà tí ó nílò wò pẹ̀lú ìbéèrè tí kò léwu, pẹ̀lú ọ̀nà olùyẹ́já àti àwọn ẹbí àdírẹ́sì tí ohun èlò ń lò. Fi ìjápọ̀ mọ́ nínú ìdánwò, kí ìhùwàsí ìkùnà tí a gbà láàyè ti ohun èlò lè di àbájáde tí a mọ̀ kì í ṣe ìyàlẹ́nu nígbà ìṣẹ̀lẹ̀. Ìpàdé tí ó gbé lọ́nà tọ́ nígbà tí ó wà kò sọ ohunkóhun nípa ohun tí ó ṣẹlẹ̀ nígbà tí ó bá ṣubú.

Fún àwọn iṣẹ́ díẹ̀ tí a dárúkọ ní kedere, gbígbé ibílẹ̀ déédé rọrùn láti ní àti rọrùn láti ṣàyẹ̀wò. Fún ìrìnàjò ohun èlò tí ó bá ọ̀nà rẹ̀ mu, sshuttle ń pèsè ọ̀nà àárín tí ó tọ́. Nígbà tí ohun tí a nílò bá jẹ́ ìsopọ̀ IP gbòòrò, àpẹrẹ VPN ni ìdáhùn olódodo, yíyan sì ń tẹ̀lé ìbo àti ojúṣe ìṣiṣẹ́ kì í ṣe ìlà ìpele àwọn alugorídìmù ìkọ̀kọ̀.

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