WireGuard కాన్ఫిగ్ను Interface నుండి Peer వరకు లైన్ లైన్గా చదవండి
Interface కీలు ఈ చివరివి, peer కీలు మరో వైపువి. ప్రతి పంక్తిని ఒక దిశగా చదివి, ఆ తర్వాత wg-quick ప్రోటోకాల్ చుట్టూ ఏమి జోడించిందో తనిఖీ చేయండి.
పాడైన WireGuard కాన్ఫిగ్లు చాలావరకు విలువలో తప్పు చేయవు; సరైన విలువను తప్పు వైపున ఉంచుతాయి. ప్రైవేట్ కీ ఈ మెషీన్కు చెందుతుంది, peer మరో మెషీన్ పబ్లిక్ కీని మోస్తుంది, టన్నెల్ ఎక్కడ నివసిస్తుందో వివరించినప్పటికీ చిరునామా interface బ్లాక్లో కూర్చుంటుంది. ఫైల్ను కలుసుకునే రెండు దిశలుగా చదివి, ఆ తర్వాత సహాయ స్క్రిప్ట్ పైన ఏమి జోడించిందో తనిఖీ చేయండి. ప్రోటోకాల్లో ఫైల్ కంటే తక్కువ ఫీల్డ్లు ఉన్నాయి, అదనపు ఫీల్డ్లను విడిగా తెలుసుకోవడం విలువైనది.
interface కీలు ఈ మెషీన్ను వివరిస్తాయి
interface బ్లాక్ ఈ చివరి స్వంత గుర్తింపును ఉంచుతుంది. PrivateKey ఆ గుర్తింపు మరియు ఎప్పుడూ హోస్ట్ను వదలదు; దాని నుండి సరిపోలే పబ్లిక్ కీ ఉత్పన్నమవుతుంది, ఇతర peers అదే జాబితా చేస్తాయి. ListenPort ఈ వైపు హ్యాండ్షేక్లను స్వీకరించే స్థలం, కాబట్టి ఒక చిరునామా వెనుక ఉన్న ఇద్దరు క్లయింట్లకు వేర్వేరు పోర్ట్లు అవసరం.
Address ఈ హోస్ట్ సమాధానమిచ్చే టన్నెల్ చిరునామా, ఉపసర్గ పొడవుతో రాయబడింది ఎందుకంటే అదే ఉపయోగించే మూలం కూడా. ఇక్కడ ఉపసర్గ తప్పు అయితే హోస్ట్ ఏ గమ్యాలను నేరుగా అనుసంధానించినట్లు భావిస్తుందో మారుతుంది, అది కాన్ఫిగ్ లాగా కాకుండా రూటింగ్ లాగా కనిపించే వైఫల్యాలను సృష్టిస్తుంది.
నిజమైన క్లయింట్తో [Interface] బ్లాక్లో మిగిలినవన్నీ సాధారణంగా wg-quick జోడిస్తుంది: DNS, MTU, Table, మరియు హుక్ పంక్తులు. ఇవి ప్రోటోకాల్ ఫీల్డ్లు కావు, మరియు బేర్ wg సెటప్ వాటిని పూర్తిగా విస్మరిస్తుంది.
ప్రతి peer ఎంట్రీ మరో ఒక వైపును వివరిస్తుంది
[Peer] బ్లాక్ దూరపు పక్షం. PublicKey ఆ పక్షం యొక్క ఉత్పన్న కీ, ఎప్పుడూ వారి ప్రైవేట్ కీ కాదు, మరియు PresharedKey రెండు వైపులా ఒకే విధంగా ఉంచాల్సిన ఐచ్ఛిక అదనపు రహస్యం. Endpoint ఎక్కడికి పంపాలో, మరియు PersistentKeepalive మరేదీ బయటకు వెళ్లనప్పుడు విరామం తర్వాత ఈ హోస్ట్ ప్యాకెట్ పంపాలని కోరుతుంది.
ఇక్కడి గందరగోళంలో ఎక్కువ భాగాన్ని రెండు తప్పులు వివరిస్తాయి. మీ స్వంత ప్రైవేట్ కీని peer బ్లాక్లోకి కాపీ చేస్తే రెండు చివరలు ఒకే గుర్తింపును పంచుకుంటాయి, హ్యాండ్షేక్ దుర్బలంగా నమోదయ్యే విధంగా విఫలమవుతుంది. Endpoint క్లయింట్పై వదిలేయడం సాధారణంగా ఉద్దేశపూర్వకం, ఎందుకంటే సర్వర్ వచ్చే హ్యాండ్షేక్ నుండి చిరునామాను నేర్చుకుంటుంది; ప్రారంభించాల్సిన సర్వర్పై దాన్ని వదిలేయడం అలా కాదు. keepalive NAT మ్యాపింగ్ను తెరిచి ఉంచుతుందని, అది థ్రూపుట్ను మెరుగుపరచదని లేదా జాప్యాన్ని తగ్గించదని కూడా గుర్తుంచుకోండి, కాబట్టి ట్రాఫిక్ ఇప్పటికే ప్రవహిస్తున్నప్పుడు ముప్పై సెకన్ల అదనపు ప్యాకెట్లు ఏమీ కొనవు.
AllowedIPs రూటింగ్, అనుమతి జాబితా కాదు
AllowedIPs WireGuard యొక్క క్రిప్టోకీ రూటింగ్. బయటకు, గమ్యం ఆధారంగా ఏ peer ప్యాకెట్ పొందుతుందో నిర్ణయిస్తుంది. లోపలికి, ఆ peer నుండి వచ్చే ప్యాకెట్ మూలం ఆధారంగా అంగీకరించబడుతుందో లేదో నిర్ణయిస్తుంది. అదే ఫీల్డ్ రెండు పనులు చేస్తుంది, అందుకే ఇది యాక్సెస్ నియంత్రణ జాబితా కాదు, అనుమతించిన వెబ్సైట్ల జాబితా కూడా కాదు.
సన్నని AllowedIPs సర్వర్పై క్లయింట్ కోసం అంటే సర్వర్ ఆ మూలాలను చెప్పుకునే ప్యాకెట్లను మాత్రమే అంగీకరిస్తుంది, ఆ గమ్యాలను మాత్రమే ఆ క్లయింట్కు పంపుతుంది. ఒక వైపును మరో వైపు విస్తరించకుండా విస్తరిస్తే, పైకి వచ్చి ఏమీ దాటని టన్నెల్ లభిస్తుంది.
wg-quick ప్రోటోకాల్ చుట్టూ ఏమి జోడిస్తుంది
wg-quick అదే ఫైల్ను చదివి ప్రోటోకాల్ ఆపరేటింగ్ సిస్టమ్కు వదిలే నెట్వర్క్ దశలను నిర్వహిస్తుంది. ఇది interface చిరునామాన్ని కేటాయిస్తుంది, AllowedIPs నుండి ఉత్పన్నమైన మార్గాలను జోడిస్తుంది, రిజాల్వర్ సెట్టింగ్లను వ్రాసి హుక్ ఆదేశాలను క్రమంగా నడుపుతుంది.
ఆ పొర క్లాసిక్ అసమానతను వివరిస్తుంది. 0.0.0.0/0 మరియు DNS పంక్తి ఉన్న ఫైల్ క్లయింట్కు డిఫాల్ట్ మార్గాన్ని, రిజాల్వర్ను ఇస్తుంది, సర్వర్ ఫార్వార్డింగ్ లేదా NAT నియమాలకు ఏమీ చేయదు. అవి సర్వర్ స్వంత కాన్ఫిగ్కు చెందుతాయి, ఏ క్లయింట్ ఫైల్ వాటిని ఇవ్వలేదు.
ఫైల్కు ఒకే యజమాని ఉంచండి. SaveConfig ప్రారంభంలో ఉన్నప్పుడు దాన్ని చేతితో సవరించడం అంటే తదుపరిసారి interface కిందకు దిగినప్పుడు మీ సవరణ మాయమవుతుంది, మరియు interface అది జరిగిందని మీకు చెప్పదు.
ఫైల్ కాదు, వర్తించిన స్థితిని తనిఖీ చేయండి
ఫైల్ ఒక ఉద్దేశం. వర్తించిన స్థితి కెర్నల్ ఉంచేది, యాక్టివేషన్ తర్వాత సహాయకుడు, drop-in లేదా హుక్ ఏదైనా సవరించిన ప్రతిసారీ రెండూ విడిపోతాయి.
సజీవ స్థితిని, చిరునామా కేటాయింపును కలిసి చదివి, ఆ తర్వాత రెండింటినీ మీరు వ్రాసిన దానితో పోల్చండి:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confpeer జాబితా ఖాళీగా ఉంటే, interface దాని కాన్ఫిగ్ వర్తించకుండానే సృష్టించబడింది. చిరునామాలు, మార్గాలు ఉన్నా కౌంటర్లు సున్నా వద్దే ఉంటే, ఫైల్ లోడ్ అయింది హ్యాండ్షేక్ విఫలమవుతోంది, ఇది విభాగ క్రమం కాదు, కీ లేదా చివరి సమస్య. సవరించే ముందు రెండు వీక్షణలను పోల్చండి, ఎందుకంటే వాటి మధ్య గ్యాపే సాధారణంగా నిజమైన లోపం.