SOCKS5 proxy fun OpenVPN: TCP tunnel tabi ṣe proxy àwọn app?
Proxy ń gbé ìṣàn kan lọ, kì í ṣe datagram. Fi TCP tunnel lẹ́yìn socks-proxy wé ìdarí redsocks, kí o sì wo ibi tí àpẹẹrẹ kọ̀ọ̀kan ti kọ́kọ́ kùnà.
Àwọn nẹ́tíwọ́kì tí wọ́n ń gba ìjáde la ìmú-ṣiṣẹ́ proxy nìkan ni ibi tí profáìlì tí ń ṣiṣẹ́ ti kú lójijì. Àdírẹ́sì proxy ni oníyípadà tí kò fani mọ́ra jùlọ nínú ìkùnà yẹn. Ohun gbogbo ni ìrísí ìrìnàjò tí proxy yóò gbé lọ máa pinnu, nítorí àwọn proxy wọnyí ń fi ìṣàn byte ránṣẹ́, TCP tunnel kì í sì í ṣe bẹ́ẹ̀. Ìyẹn fi àwọn ìmọ̀-ẹ̀rọ méjì sílẹ̀, wọ́n sì ń já ní àwọn ibi ọ̀tọ̀ọ̀tọ̀.
Ìdíwọ́ kan ni ó ń pinnu àpẹẹrẹ náà
SOCKS5 kọ́ ni ó ń sọ ipò ìsopọ̀ UDP ní tòótọ́. Bí ó ti wù kí ó rí, àtìlẹ́yìn proxy ti ẹ̀rọ-aṣàkóso OpenVPN ni a kọ́ yí àwọn ìṣàn ká: socks-proxy ni a kọ sílẹ̀ fún àwọn profáìlì TCP, proxy HTTP CONNECT kò sì ní ọ̀nà kankan fún àwọn datagram. Ìlà kan nínú ìwé-ìtọ́kasi ni ó ń pinnu ìmọ̀-ẹ̀rọ náà kí o tó fi ọwọ́ kan fáìlì ìṣètò.
Nítorí náà ìbéèrè kì í ṣe irú proxy tí a yàn. Ìbéèrè ni bóyá tunnel yóò di ìṣàn, tàbí yóò wà bí datagram, kí ohun mìíràn lè gba iṣẹ́ proxy náà.
Àṣàyàn A: sọ tunnel di ìṣàn
Èyí nílò sáfà tí ó ní olùgbọ́ TCP, àti profáìlì oníbàárà tí ó dárúkọ proxy náà. Àwọn ẹ̀yà méjèèjì ni a nílò, ẹ̀gbẹ́ sáfà ni èyí tí àwọn ènìyàn ń gbàgbé:
proto tcp-client
remote vpn.example.net 443
socks-proxy 127.0.0.1 1080Rọ́pò ìlà tí ó kẹ́yìn pẹ̀lú http-proxy proxy.internal 8080 nígbà tí proxy bá ń sọ HTTP, kí o sì fi fáìlì ẹ̀rí-ìdánimọ̀ kún un bí ó bá béèrè. Proxy gbọdọ̀ múra láti ṣe CONNECT sí ibùdókọ̀ VPN rẹ, sáfà sì gbọdọ̀ dáhùn lórí TCP; olùgbọ́ UDP nìkan yóò pa ìgbìyànjú náà tì. Yíyan 443 jẹ́ ìgbésẹ̀ tí ó wúlò, nítorí ọ̀pọ̀lọpọ̀ nẹ́tíwọ́kì tí ó ní ìkálọ́wọ́kò ń gba ìyẹn àti díẹ̀ mìíràn láàyè.
Iye owó ni TCP tí a tò lé TCP lórí. Ẹ̀ka ìta kan tí ó sọnù yóò dá gbogbo ìṣàn inú tí ó ń pín ìsopọ̀ yẹn dúró, nítorí náà ìmúpadàbọ̀sípẹ̀ tí yóò ti jẹ́ òmìnira yóò di èyí tí a pín. Ìṣètò náà tún gba àkókò púpọ̀, ọ̀nà ìta tí kò dúró ṣinṣin yóò sì di tunnel tí kò dúró ṣinṣin dípò èyí tí ó lọ jẹ́jẹ́.
Àṣàyàn B: fi tunnel sílẹ̀
Nígbà tí tunnel gbọdọ̀ wà lórí UDP, tunnel kì í ṣe ibi tí o ti ń ṣètò ohunkóhun. Dípò bẹ́ẹ̀, TCP tí ó ń jáde láti inú àwọn app ni a ń darí lọ sí olùgbọ́ SOCKS àdúgbò, àwọn app kò sì mọ̀ pé proxy wà. Lórí Linux ìyẹn sábà máa ń jẹ́ redsocks pẹ̀lú ìlànà NAT REDIRECT nínú tábìlì nat.
TCP nìkan, lẹ́ẹ̀kan sí i. Proxy HTTP nìkan bí privoxy kò lè gbé àwọn ìlànà àìdábọ̀ lọ, àpẹẹrẹ yìí kò sì fi àtìlẹ́yìn datagram kún un fún àwọn app.
Sísọ fún app kọ̀ọ̀kan nípa proxy ní tààrà sábà máa ń dára níbi tí sọ́fùwéà bá ti ń gbà á. Ó rọrùn láti ṣàyẹ̀wò, ó sì ń já ní ibi tí ìwọ náà lè rí.
Ibi tí àṣàyàn kọ̀ọ̀kan ti ń já
Àṣàyàn A ń já nígbà tí sáfà kò ní olùgbọ́ TCP, nígbà tí proxy kọ̀ ọ́ sí ibi-afẹ́de CONNECT, tàbí nígbà tí a dín ìṣàn ìta kù sí ìsàlẹ̀ ohun tí tunnel nílò. Àwọn méjì àkọ́kọ́ ń fi àkọsílẹ̀ sílẹ̀ nínú ìwé-ìṣẹ́ proxy; ẹ̀kẹta ń fi ìsopọ̀ tí ó fìdí kalẹ̀ tí yóò sì dàbí àṣìṣe sílẹ̀. Ka ìwé-ìṣẹ́ yẹn kí o tó ṣàtúnṣe profáìlì, nítorí ó ń ya ìṣòro àṣẹ sọ́tọ̀ kúrò nínú ìṣòro agbára. CONNECT tí ó parí ń gbé ìwádìí lọ sínú tunnel.
Àṣàyàn B ń já fún ohunkóhun tí ó nílò datagram, fún àwọn ìlànà tí proxy kò gbọ́, àti ní ìdákẹ́jẹ́ lórí àwọn agbàlejò níbi tí ìlànà ìdarí wà ṣùgbọ́n ìtọ́sọ́nà ń fi ìrìnàjò náà kọjá ẹ̀gbẹ́ rẹ̀.
Kò sí àṣàyàn tí ó ń yí ìbéèrè ẹ̀rọ náà padà. Àwọn pákẹ́tì ṣì nílò node TUN tàbí TAP kí kẹ́nẹ́lì tó tọ́ wọn sọ́nà, nítorí náà ìlànà náà ṣì nílò àṣẹ lórí /dev/net/tun. Ìbòjú ń yí ohun tí ó ṣẹlẹ̀ lẹ́yìn tí node yẹn bá ṣí, kì í ṣe bóyá o nílò rẹ̀.
Fi hàn irú ọ̀nà tí o kọ́
Wo àwọn socket dípò àwòrán tray. Ìlànà VPN gbọdọ̀ di ìsopọ̀ tí ó fìdí kalẹ̀ sí àdírẹ́sì proxy mú, proxy sì gbọdọ̀ ti kọ ibi-afẹ́de tí a béèrè pé kí ó dé:
ss -tnp | grep openvpnLẹ́yìn náà lọ sí ibi tí tunnel nìkan lè ṣe iṣẹ́ fún, àti orúkọ tí olùyẹ́jáde tunnel nìkan lè dáhùn. Ìsopọ̀ proxy tí ó parí pẹ̀lú tunnel tí ó kú sábà máa ń túmọ̀ sí pé ẹ̀gbẹ́ jíjìnnà kò fi ìrìnàjò tí a dárúkọ nínú profáìlì rẹ hàn rí.
Kọ ìrìnàjò àti proxy tí ó gbà sílẹ̀ sí ibi tí ó dúró ṣinṣin. Nígbà tí profáìlì kan náà bá já lórí nẹ́tíwọ́kì mìíràn, àkọsílẹ̀ yẹn yóò yọ proxy kúrò tàbí fìdí rẹ̀ múlẹ̀ ní ìṣẹ́jú àáyá.