Kò sí àṣìṣe kankan nínú app náà, kò sì sí àṣìṣe kankan nínú ọ̀nà abẹ́lẹ̀ náà, ṣùgbọ́n ojú-ewe náà kò gbé wọlé. Nígbà tí iṣẹ́ kan ń ṣiṣẹ́ pẹ̀lú network_mode: service:vpn, ó ń pín ààyè orúkọ nẹ́tíwọ́kì kóńtéńà VPN, èyí tí ó túmọ̀ sí pé olùgbọ́ rẹ̀ àti àwọn ibudo tí wọ́n tẹ̀ jáde jẹ́ ti ààyè orúkọ yẹn, kì í ṣe ti iṣẹ́ náà. Àwọn ìpinnu mẹ́ta ń tẹ̀le: ibo ni app náà so ara rẹ̀ mọ́, kóńtéńà wo ni ó ń tẹ ibudo jáde, àti bí ọ̀nà ìṣàkóso ṣe kúrò ní gbòòrò tó. Tí o bá ṣe wọ́n ní ọ̀nà tí kò tọ́, gbogbo ètò kọ̀ọ̀kan yóò dàbí ẹni tí ó tọ́, ṣùgbọ́n àpapọ̀ náà kò lè ṣiṣẹ́.

Ta ni ó ni ààyè orúkọ ibudo náà

Nínú ààyè orúkọ tí a pín, fífi àkọsílẹ̀ ports: kún iṣẹ́ tí ó gbára lé kò ṣe ohunkóhun tí ó wúlò, àwọn àṣàyàn nẹ́tíwọ́kì mélòó kan kò sì ní àtìlẹ́yìn fún un gẹ́gẹ́ bí a ṣe ṣe é. Dípò èyí, tẹ̀ ẹ́ jáde lórí kóńtéńà tí ó ni ààyè orúkọ náà. Kóńtéńà yẹn ni ó tún ni àdírẹ́sì rẹ̀ ń hàn lórí host, nítorí náà a ka àfihàn náà gẹ́gẹ́ bí àkọsílẹ̀ kan, kì í ṣe ọ̀kan fún iṣẹ́ kọ̀ọ̀kan.

services:
  vpn:
    image: vpn-client-image
    cap_add: [NET_ADMIN]
    ports:
      - "127.0.0.1:8080:8080"
  app:
    network_mode: "service:vpn"

Kíyèsí àdírẹ́sì tí ó wà ní apá òsì àfihàn náà. Sísopọ̀ mọ́ 127.0.0.1 ń pa ibudo tí a tẹ̀ jáde mọ́ lórí loopback host, èyí tí ojú-ewe ìṣàkóso sábà fẹ́. Sísopọ̀ mọ́ 0.0.0.0 ń fi hàn lórí gbogbo ojú-ewe host, èyí sì jẹ́ ìpinnu ààbò mìíràn, kì í ṣe ìrọ̀rùn.

Jẹ́ kí app náà gbọ́ níbi tí ààyè orúkọ náà ń retí

Olùgbọ́ tí a so mọ́ 127.0.0.1 nínú ààyè orúkọ náà kò ṣe é dé àyàfi láti inú ààyè yẹn. Àwọn ibudo host tí a tẹ̀ jáde ń wá láti ìta, nítorí náà app náà gbọdọ̀ so àdírẹ́sì tí ó gbòòrò mọ́ kí àfihàn náà lè ṣiṣẹ́. Ìyípadà ìlà kan ni èyí nínú ọ̀pọ̀lọpọ̀ sáfà, ìgbésẹ̀ yẹn gan-an sì ni àwọn ènìyàn ń gbé kọjá lẹ́yìn tí wọ́n ti dà á láti inú ìtọ́sọ́nà ìmúgbóòrò tí a kọ fún ìfilélẹ̀ tí kò ní kóńtéńà.

docker compose exec app ss -lntp
docker port vpn
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/

Àkójọ àwọn olùgbọ́ nínú app náà sọ òtítọ́ nípa àdírẹ́sì ìsopọ̀, docker port sì ń fi ohun tí olówó tẹ̀ jáde níti gidi hàn. Bí èkíní bá fi 127.0.0.1 hàn tí èkejì sì fi àfihàn host hàn, o ti rí àìbáramu náà láìfi ọwọ́ kàn ìṣètò VPN.

Yan bí ọ̀nà ìṣàkóso ṣe ń wọlé

Àwọn ìṣètò tí ó bọ́gbọ́n mu mẹ́ta wà. Tẹ̀ ẹ́ jáde lórí kóńtéńà VPN kí o sì dé ibẹ̀ láti host tàbí láti nẹ́tíwọ́kì àdúgbò. Fi aṣojú-ìdàpadà sí iwájú ààyè orúkọ náà kí o sì fi ibudo ṣíṣí kan ṣoṣo fún aṣojú náà. Tàbí jẹ́ kí ojú-ewe náà ṣe é dé nípasẹ̀ ìpàdé exec tàbí ọ̀nà abẹ́lẹ̀ SSH láti inú ààyè orúkọ náà nìkan, èyí tí ó jẹ́ ìfihàn tí ó kéré jù àti ìrọ̀rùn tí ó kéré jù.

Èwo ni ó bá a mu dá lórí ẹni tí ó nílò ojú-ewe náà àti ibi tí ó ti ń wá. Alákòóso kan ṣoṣo lórí host kan náà yóò tẹ́rùn pẹ̀lú ìsopọ̀ loopback. Ẹgbẹ́ tí ó ń dé ibẹ̀ nípasẹ̀ VPN nílò ọ̀nà tí a gbèrò àti olówó tí a dárúkọ. Yíyan àṣàyàn aṣojú ń fún ọ ní TLS àti àwọn àkọsílẹ̀ àṣẹ́wọlé, ní àfikún ẹ̀yà mìíràn tí a gbọdọ̀ jẹ́ kí ó wà ní ìgbà tuntun.

Ṣí ibudo ìṣàkóso láìṣí gbogbo rẹ̀

Ìlànà àṣẹ́wọlé àdúgbò tàbí títìpa ti alábàáṣepọ̀ VPN lè ju ìbéèrè ìṣàkóso tí ó ń wọlé nù gan-an nígbà tí ọ̀nà abẹ́lẹ̀ tí ó ń jáde ń ṣiṣẹ́ dáadáa. Gba àyọkùrò kan tí a kọ sílẹ̀ fún orísun àti ibudo tí a dábàá, lẹ́yìn náà jẹ́rìí pé ààbò deede ọ̀nà abẹ́lẹ̀ náà kò yí padà. Pípa switsi pàjáwìrì láti jẹ́ kí ojú-ewe gbé wọlé ń fi ìṣàkóso gidi ṣe pàṣípààrọ̀ fún tábìlì aṣàwákiri.

Jẹ́ kí ìjẹ́rìí app náà fúnra rẹ̀ wà ní ṣíṣí. Wíwà nínú àkójọ tí ó so mọ́ VPN kò fún gbogbo olùlò àdúgbò tàbí gbogbo ẹ̀rọ tí ó lè dé host ní àṣẹ, pátákó alákòóso tí kò ní ìjẹ́rìí lẹ́yìn ọ̀nà abẹ́lẹ̀ ṣì jẹ́ pátákó alákòóso tí kò ní ìjẹ́rìí.

Jẹ́rìí láti ẹ̀rọ ìṣàkóso, lẹ́yìn náà tún jẹ́rìí lẹ́yìn náà

Dán wò láti ẹ̀rọ tí yóò kó ipa ìṣàkóso iṣẹ́ náà níti gidi, kì í ṣe láti host, lẹ́yìn náà jẹ́rìí ọ̀nà íńtánẹ́ẹ̀tì tí app náà nílò lọ́nà ọ̀tọ̀. Àṣeyọrí nínú ìṣàkóso ń fi ọ̀nà kan hàn, kò sì sọ ohunkóhun nípa ìjáde.

Tún dán wò lẹ́yìn tí a ti tún àkójọ náà ṣe. Olówó nẹ́tíwọ́kì tí a rọ́pò ń yí ààyè orúkọ tí app náà so ara rẹ̀ mọ́ padà, URL tí ó ń ṣiṣẹ́ ṣáájú ìmúdójúìwọ̀n sì lè máà tọ́ka sí ibikíbi lẹ́yìn náà. Kọ àfihàn tí a tẹ̀ jáde àti àdírẹ́sì ìsopọ̀ sílẹ̀ kí àtúntò tó ń bọ̀ lè jẹ́ àyẹ̀wò ìṣẹ́jú méjì dípò ìwádìí tí a tún ṣe.

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