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 यसको कन्फिग लागू नगरी बनाइएको हो। ठेगाना र मार्ग भए पनि काउन्टर शून्यमै रहे भने फाइल लोड भयो र हात मिलाउने असफल भइरहेको छ, जुन खण्ड-क्रमको होइन, कुञ्जी वा छेउको समस्या हो। सम्पादन अघि दुवै दृश्य तुलना गर्नुहोस्, किनभने तिनीहरूबीचको फरक नै सामान्यतया वास्तविक दोष हो।