VPN కంటైనర్ లోపల ఉన్న వెబ్ ఇంటర్ఫేస్ను చేరుకోవడం: పోర్ట్ యజమానిని ఎంచుకోండి
యాప్ VPN పేరు స్థలాన్ని పంచుకుంటుంది, కాబట్టి పోర్ట్ VPN కంటైనర్కు చెందుతుంది. శ్రోతను సరిగ్గా బంధించండి, యజమానిపై ప్రచురించండి మరియు మార్గాన్ని ఇరుకుగా ఉంచండి.
యాప్లో ఏ తప్పూ లేదు మరియు టన్నెల్లో ఏ తప్పూ లేదు, అయినా డాష్బోర్డ్ లోడ్ కావడం లేదు. సేవ network_mode: service:vpn తో నడిచినప్పుడు, అది VPN కంటైనర్ నెట్వర్క్ పేరు స్థలాన్ని పంచుకుంటుంది, అంటే దాని శ్రోత మరియు ప్రచురించిన పోర్ట్లు సేవకు కాదు, ఆ పేరు స్థలానికి చెందుతాయి. దీని నుండి మూడు నిర్ణయాలు వస్తాయి: యాప్ ఎక్కడ బంధిస్తుంది, ఏ కంటైనర్ పోర్ట్ను ప్రచురిస్తుంది, మరియు నిర్వహణ మార్గం ఎంత ఇరుకుగా ఉంది. వాటిని తప్పు క్రమంలో చేస్తే ప్రతి ప్రత్యేక సెట్టింగ్ సరిగ్గా కనిపిస్తుంది, కానీ కలయిక పనిచేయదు.
పోర్ట్ పేరు స్థలం ఎవరికి చెందుతుంది
పంచుకున్న పేరు స్థలంలో, ఆధారిత సేవకు ports: నమోదును జోడించడం ఉపయోగకరమైనది ఏమీ చేయదు, మరియు అనేక నెట్వర్క్ ఎంపికలు రూపకల్పన ప్రకారమే దానికి మద్దతు పొందవు. బదులుగా పేరు స్థలాన్ని కలిగిన కంటైనర్పై ప్రచురించండి. అదే కంటైనర్ హోస్ట్పై చిరునామా కనిపించే కంటైనర్ కూడా, కాబట్టి మ్యాపింగ్ ప్రతి సేవకు ఒకటి కాదు, ఒకే నమోదుగా చదవబడుతుంది.
services:
vpn:
image: vpn-client-image
cap_add: [NET_ADMIN]
ports:
- "127.0.0.1:8080:8080"
app:
network_mode: "service:vpn"
మ్యాపింగ్ ఎడమ వైపు ఉన్న చిరునామాను గమనించండి. 127.0.0.1 కు బంధించడం ప్రచురించిన పోర్ట్ను హోస్ట్ లూప్బ్యాక్లో ఉంచుతుంది, ఇది సాధారణంగా నిర్వహణ ఇంటర్ఫేస్ కోరుకునేది. 0.0.0.0 కు బంధించడం దానిని హోస్ట్ యొక్క ప్రతి ఇంటర్ఫేస్పై బహిర్గతం చేస్తుంది, మరియు ఇది సౌలభ్యం కాదు, వేరే భద్రతా నిర్ణయం.
పేరు స్థలం ఆశించే చోట యాప్ వినిపించనివ్వండి
పేరు స్థలం లోపల 127.0.0.1 కు బద్ధమైన శ్రోత ఆ పేరు స్థలం లోపలి నుండి మాత్రమే చేరుకోగలం. ప్రచురించిన హోస్ట్ పోర్ట్లు బయటి నుండి వస్తాయి, కాబట్టి మ్యాపింగ్ పనిచేయాలంటే యాప్ విస్తృత చిరునామాను బంధించాలి. ఇది చాలా సర్వర్లలో ఒక పంక్తి మార్పు, మరియు కంటైనర్ లేని అమరిక కోసం రాసిన గట్టిపరచడం మార్గదర్శిని కాపీ చేసిన తర్వాత ప్రజలు దాటవేసే దశ కూడా ఇదే.
docker compose exec app ss -lntp
docker port vpn
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/
యాప్ లోపలి శ్రోత జాబితా బంధన చిరునామా గురించి నిజం చెబుతుంది, మరియు docker port యజమాని నిజంగా ఏమి ప్రచురించారో చూపిస్తుంది. మొదటిది 127.0.0.1 చూపి రెండవది హోస్ట్ మ్యాపింగ్ చూపితే, VPN కాన్ఫిగరేషన్ను తాకకుండానే మీరు అసమతుల్యతను కనుగొన్నారు.
నిర్వహణ మార్గం ఎలా లోపలికి వస్తుందో ఎంచుకోండి
మూడు సమంజసమైన ఏర్పాట్లు ఉన్నాయి. VPN కంటైనర్పై ప్రచురించి హోస్ట్ నుండి లేదా స్థానిక నెట్వర్క్ నుండి చేరుకోండి. పేరు స్థలం ముందు రివర్స్ ప్రాక్సీ పెట్టి ప్రాక్సీకి ఏకైక తెరిచిన పోర్ట్ ఇవ్వండి. లేదా డాష్బోర్డ్ను పేరు స్థలం లోపలి నుండి మాత్రమే exec సెషన్ లేదా SSH టన్నెల్ ద్వారా చేరుకునేలా ఉంచండి, ఇది అత్యల్ప బహిర్గతం మరియు అత్యల్ప సౌలభ్యం.
ఏది సరిపోతుందో ఇంటర్ఫేస్ ఎవరికి, ఎక్కడి నుండి కావాలి అనే దానిపై ఆధారపడి ఉంటుంది. అదే హోస్ట్పై ఒకే నిర్వాహకుడికి లూప్బ్యాక్ బంధనం సరిపోతుంది. VPN ద్వారా చేరే జట్టుకు ఉద్దేశపూర్వక మార్గం మరియు పేరు పెట్టిన యజమాని అవసరం. ప్రాక్సీ ఎంపికను ఎంచుకుంటే మీకు TLS మరియు యాక్సెస్ లాగ్లు లభిస్తాయి, బదులుగా నవీకరించి ఉంచాల్సిన మరో భాగం చేరుతుంది.
అన్నీ తెరవకుండా నిర్వహణ పోర్ట్ తెరవండి
VPN క్లయింట్ యొక్క స్వంత స్థానిక యాక్సెస్ లేదా లాక్డౌన్ విధానం బయటకు వెళ్లే టన్నెల్ పరిపూర్ణంగా పనిచేస్తున్నప్పుడు కూడా లోపలికి వచ్చే నిర్వహణ అభ్యర్థనను పడవేయగలదు. ఉద్దేశించిన మూలం మరియు పోర్ట్ కోసం ఒక పత్రబద్ధమైన మినహాయింపును అనుమతించి, తర్వాత టన్నెల్ యొక్క సాధారణ రక్షణ మారలేదని నిర్ధారించండి. డాష్బోర్డ్ లోడ్ కావడానికి అత్యవసర స్విచ్ను ఆఫ్ చేయడం బ్రౌజర్ ట్యాబ్కు బదులుగా నిజమైన నియంత్రణను కోల్పోవడం.
యాప్ యొక్క స్వంత ప్రామాణీకరణను ఆన్లో ఉంచండి. VPN తో అనుసంధానించిన స్టాక్ లోపల ఉండటం ప్రతి స్థానిక వినియోగదారుకు లేదా హోస్ట్ను చేరుకోగల ప్రతి పరికరానికి అధికారం ఇవ్వదు, మరియు టన్నెల్ వెనుక ప్రామాణీకరణ లేని నిర్వాహక ప్యానెల్ ఇప్పటికీ ప్రామాణీకరణ లేని నిర్వాహక ప్యానెల్.
నిర్వహణ పరికరం నుండి ధృవీకరించండి, తర్వాత మళ్లీ ధృవీకరించండి
సేవను నిజంగా నిర్వహించే మిషన్ నుండి పరీక్షించండి, హోస్ట్ నుండి కాదు, తర్వాత యాప్కు అవసరమైన ఇంటర్నెట్ మార్గాన్ని విడిగా ధృవీకరించండి. నిర్వహణలో విజయం ఒక దిశను మాత్రమే నిరూపిస్తుంది, బయటకు వెళ్లే ప్రవాహం గురించి ఏమీ చెప్పదు.
స్టాక్ మళ్లీ సృష్టించబడిన తర్వాత మళ్లీ పరీక్షించండి. మార్చబడిన నెట్వర్క్ యజమాని యాప్ అనుసంధానించే పేరు స్థలాన్ని మారుస్తారు, మరియు నవీకరణకు ముందు పనిచేసిన URL తర్వాత ఎక్కడికీ సూచించకపోవచ్చు. ప్రచురించిన మ్యాపింగ్ మరియు బంధన చిరునామాను రాసి ఉంచండి, తద్వారా తదుపరి పునర్నిర్మాణం మళ్లీ దర్యాప్తు కాకుండా రెండు నిమిషాల తనిఖీ అవుతుంది.