Títún VPN client bẹ̀rẹ̀ ń fi hàn pé ihò náà ti padà, kìkì. Kò sọ ohunkóhun nípa proxy tí a pàṣẹ fún pé kí ó gbà á jáde. Squid, tinyproxy àti ọ̀pọ̀ olùtọ́jú mìíràn ń di àdírẹ́sì orísun àdúgbò tí wọ́n rí nígbà ìbẹ̀rẹ̀ mú títí ohun kan yóò fi fipá mú wọn láti tún gbé e. Nígbà tí títún so pọ̀ bá fún ní àdírẹ́sì ihò tuntun, olùtọ́jú yóò kùnà ní gbogbo ìsopọ̀ jáde, tàbí yóò bẹ̀rẹ̀ sí jáde nípasẹ̀ ọ̀nà rẹ̀ déédéé.

Ìkùnà kejì ni èyí tí ó léwu: ihò wà níṣẹ́, ojú-ìwé ń gbé e, àdírẹ́sì jáde nìkan ni kò tọ́.

Bẹ̀rẹ̀ pẹ̀lú olùgbọ́, kì í ṣe ihò

Àdírẹ́sì mẹ́ta wà nínú eré, títún so pọ̀ ń gbé àwọn kan nìkan. Olùgbọ́ ni ibi tí aṣàwákiri rẹ ń tọ́ka sí, ní ọ̀pọ̀ ìgbà 127.0.0.1 tàbí àdírẹ́sì LAN, kò sì náà ní ohun kan pé ihò ti yí padà. Orísun àdúgbò jáde ni ohun tí olùtọ́jú béèrè lọ́wọ́ kẹ́rnẹ́lì láti lò nígbà tí ó ń pe ìgbésẹ̀ tó kàn, ó sì so mọ́ ẹ̀rọ ihò náà. Ojú-ìwé jáde sí gbangba ni ohun tí server wẹ́ẹ̀bù ń kọ sílẹ̀, ó sì lè jẹ́ àdírẹ́sì tí a túmọ̀ ní ìgbésẹ̀ mélòó kan síwáju.

Ìwá IP gbangba ń dáhùn ìbéèrè tó kẹ́yìn nìkan. Kò lè sọ fún ọ pé àdírẹ́sì àdúgbò wo ni olùtọ́jú yẹ kí ó so mọ́, nítorí ojú-ìwé jáde kan lè fi orísun inú mélòó kan pamọ́. Ka àdírẹ́sì náà lọ́wọ́ ẹni tí ó ní ìsopọ̀ náà: àbájáde ipò client, gbogbo ìta ẹ̀rọ náà, tàbí ààyè orúkọ tí ihò wà. Gbígba ẹ̀rọ àkọ́kọ́ tí orúkọ rẹ̀ dà bí ihò yóò fún ní ìdáhùn tí kò tọ́ ní kété tí profáìlì kejì bá wà.

Ìṣètò kọ́ntẹ́nà àti ààyè orúkọ ń fọ́ ìrònú yìí ní ìdákẹ́jẹ́. Olùtọ́jú inú ààyè orúkọ nẹ́tíwọ́kì kan kò lè so mọ́ ihò tí ó wà nínú ìkejì, kò sì sí ìwọ̀n àtúnṣe ìṣètò tí yóò tún èyí ṣe.

Àyẹ̀wò mẹ́rin kí o tó tún ohunkóhun ṣe

Ṣe wọ́n ní tẹ̀lẹ́ntẹ̀lẹ́n. Àyẹ̀wò àkọ́kọ́ tí ó kùnà ni ibi tí o dúró sí, nítorí àwọn tó kàn gbà pé àwọn tó ṣáájú tọ́.

  1. Jẹ́rìí pé ihò tí a ń lò ni profáìlì tí a kọ́ proxy yí ká, kì í ṣe profáìlì kejì tí ó so ara rẹ̀ pọ̀.
  2. Tẹ àdírẹ́sì tí ó wà lórí ẹ̀rọ yẹn báyìí jáde kí o sì fi wé àdírẹ́sì inú ìṣètò tí ń ṣiṣẹ́.
  3. Béèrè lọ́wọ́ olùtọ́jú orísun wo ni ó rí, kì í ṣe ohun tí fáìlì orí disiki ń sọ.
  4. Jẹ́rìí pé ìsọfúnni tí ń bọ̀ láti olùtọ́jú wà lábẹ́ ìlànà ìtọ́sọ́nà àti odi iná tí o retí.

Àdírẹ́sì ẹ̀rọ rọ̀: ip -4 addr show dev tun0 ń tẹ èyí tí ó wà jáde, ip -4 route get 1.1.1.1 sì ń fi hàn ẹ̀rọ wo ni kẹ́rnẹ́lì yóò yàn fún ibi-ìlọ náà. Olùtọ́jú tí ó so mọ́ àdírẹ́sì pàtó yóò kùnà ní ariwo nígbà tí àdírẹ́sì náà bá pòórá. Olùtọ́jú tí ó so mọ́ ẹ̀rọ, tàbí tí ó padà sí orísun àìbáramu, yóò máa ṣiṣẹ́ kí ó sì máa jo, ìyẹn sì ni àbájáde ìdákẹ́jẹ́.

Fi àwọn ìwé ṣe bá ìtẹ̀jáde tí o ń ṣiṣẹ́, kì í ṣe àbájáde ìwádìí àkọ́kọ́. Ìtọ́ni àdírẹ́sì jáde ti Squid wà nínú ìwé fún v7 àti àwọn tó ṣáájú, ìwé v8 sì sọ kedere pé ìtọ́ni kò sí níbẹ̀, nítorí náà script tí a kọ yí i ká kò kọjá ààlà yẹn (ìtọ́kasí Squid tcp_outgoing_address wo). Jẹ́rìí pẹ̀lú olùyẹ̀wò tí ọjà náà fúnra rẹ̀ kí o tó tún ohunkóhun gbé: squid -k parse ń ròyìn àṣìṣe kí ó sì jáde láìfi ọwọ́ kàn sí ìlànà tí ń ṣiṣẹ́.

Nọ́mbà ihò kọ̀ọ̀kan kí o sì sọ àwọn pàṣípààrọ̀ tí ó ti gbó dà nù

Títún so pọ̀ jẹ́ ìfirán-ṣiṣẹ́, ìfirán-ṣiṣẹ́ sì nílò tẹ̀lẹ́ntẹ̀lẹ́n. Fi àmì sí gbogbo ìsopọ̀ tí a ṣàkíyèsí pẹ̀lú olùkà tàbí àmì àkókò tí ń pọ̀ sí i ní gbogbo ìdásílẹ̀ tí ó ṣàṣeyọrí, lẹ́yìn náà gbé àmì yẹn sínú ìṣètò olùdíje. Nígbà tí àmì lórí olùdíje bá gbó ju ti báyìí lọ, sọ olùdíje nù dípò lílò ó, nítorí ìmúdójúìwọ̀n tí ó lọ́ra fún ihò tí ó kọjá yóò tàbí kí ó kọ lórí ètò ti báyìí. So àwọn ìṣẹ̀lẹ̀ pọ̀ pẹ̀lú ara wọn kí ìsopọ̀ tí ń mì lè mú ìyípadà kan wá dípò mẹ́ẹ̀ẹ́dógún.

Ṣètò iṣẹ́ náà ní ìgbésẹ̀ mẹ́rin: sọ ipò jáde àtijọ́ di asán, dúró kí ẹni tí ó ní ìsopọ̀ ròyìn ìparí, kọ́ ẹ̀ka tí a ń ṣàkóso nìkan, lẹ́yìn náà jẹ́rìí kí o sì mú u ṣiṣẹ́ nípasẹ̀ olùṣàkóso iṣẹ́. Títún gbogbo fáìlì ṣe láti inú iye àdírẹ́sì méjì ni ọ̀nà tí àwọn ìdíwọ́ olùgbọ́, ìjẹ́rìí ẹni àti ìlànà ibi-ìlọ fi ń pòórá ní ìdákẹ́jẹ́. Bọ̀wọ̀ fún ìdúró àìmọ̀ọ́mọ̀ pẹ̀lú. Olùrànlọ́wọ́ tí ó ń pe ihò tí olùlò ti pa kò jẹ́ àṣìṣe, kì í ṣe ìfaradà.

Àwọn socket tí ó ṣí kò ní tẹ̀lé àdírẹ́sì tuntun

Títún olùtọ́jú ṣètò kò sọ ohunkóhun nípa àwọn ìsopọ̀ tí a ti dá sílẹ̀. Bóyá wọ́n yóò ṣán kí ó tàbí kí wọ́n kú dá lórí ọjà náà, nítorí náà ṣàkíyèsí ìhùwàsí dípò kí o gbà á rọ́ọ̀.

Ìbéèrè tí a ṣe nípasẹ̀ socket tí a ṣí kí pàṣípààrọ̀ tó dé ṣì ń jáde gba ọ̀nà àtijọ́, kódà nígbà tí ìṣètò tuntun bá tọ́. Bí èyí bá ṣe pàtàkì, pinnu kedere: gba àyè àkókò ìṣán kúkúrú kí o sì dá gbígba iṣẹ́ tuntun dúró, tàbí ti àwọn socket àtijọ́ kí o sì gba àwọn àṣìṣe. Lẹ́yìn náà dánwò pẹ̀lú ìsopọ̀ tuntun kí o sì pa àbájáde yẹn mọ́ lọ́tọ̀ kúrò nínú àyẹ̀wò ìṣán. Sísopọ̀ mọ́ orísun kò tún jẹ́ ààlà ààbò. Nígbà tí ìsọfúnni kò gbọdọ̀ kan ọ̀nà déédéé rárá, fi ipá mú un pẹ̀lú àmì àti ìlànà odi iná, pẹ̀lú DNS àti IPv6, kí ìgbéyọpadà tí ó kùnà lè fi proxy sílẹ̀ ní òkùnkùn kedere dípò ṣíṣí.

Fi ìbéèrè tuntun jẹ́rìí ojú-ìwé jáde tuntun

Ohun tí ó ṣe pàtàkì ni ìbéèrè tí a ṣí lẹ́yìn ìmúṣiṣẹ́, kì í ṣe ping àti kì í ṣe ojú-ìwé tí ó ti wà nínú kásẹ̀. Béèrè URL gidi lọ́wọ́ proxy kí o sì ka àdírẹ́sì jáde tí ẹ̀gbẹ́ tí ó jìnnà ròyìn, lẹ́yìn náà fi wé ìwòye client fúnra rẹ̀ nípa ihò nígbà tí olùpèsè bá fi ọ̀kan hàn.

Pa ìtúpalẹ̀, ìgbégbé jáde àti ìbéèrè mọ́ gẹ́gẹ́ bí àṣẹ ọ̀tọ̀ọ̀tọ̀ kí ìkùnà lè tọ́ka sí ìgbésẹ̀ kan. Àwọn méjì àkọ́kọ́ kò yí ohunkóhun padà nígbà tí wọ́n bá kùnà, ìyẹn sì ni ìdí tí wọ́n fi ń ṣiṣẹ́ kí ìtúnbẹ̀rẹ̀ tó dé.

squid -k parse
sudo squid -k reconfigure
curl -x http://127.0.0.1:3128 -sS -o /dev/null -w '%{http_code} %{remote_ip}\n' https://example.com

Bí ìgbé e jáde bá kùnà, dá iṣẹ́ dúró kí o sì tún ẹ̀ka náà ṣe; proxy tí ń fi ojú-ìwé jáde àtijọ́ ṣiṣẹ́ burú ju ìdádúró kúkúrú lọ. Bí ìgbé e jáde bá ṣàṣeyọrí ṣùgbọ́n ìbéèrè tuntun ṣì ń jáde ní ibi àìròtẹ́lẹ̀, padà sí àyẹ̀wò ìtọ́sọ́nà dípò títún àwọn àdírẹ́sì ṣe. Kọ ìran ihò tí o jẹ́rìí sílẹ̀, kí títún so pọ̀ tó kàn lè ní ohun pàtó láti fi wé.

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