मी GNOME सेटिंग्जमध्ये फाइलमधून आयात करा… निवडले, विक्रेत्याच्या क्लायंटसह काम करणारे प्रोफाइल निवडले, आणि संवाद यादीत काहीही न जोडता बंद झाला. दुसऱ्या लॅपटॉपवर आयात पूर्ण झाला, कनेक्शन प्रोफाइलच्या नावाने दिसले, आणि नंतर पहिल्या प्रमाणीकरण विनंतीवर अयशस्वी झाले. NetworkManager तुमची .ovpn किंवा wg-quick फाइल कधीही जशी आहे तशी चालवत नाही. तो फाइल पार्सरला देतो, पार्सर तिला NetworkManagerच्या स्वतःच्या कनेक्शन स्वरूपात बदलतो, आणि तेव्हापासून बोगदा त्याच पार्स केलेल्या वस्तूपासून बांधला जातो — रहस्ये, रूट, DNS आणि बाकी सर्व. म्हणून उपयुक्त प्रश्न हा नाही की फाइल का खराब आहे, तर हा की पार्सिंग झाले का आणि त्याने काय ठेवले.

आयात प्रत्यक्षात फाइलसोबत काय करते

OpenVPN साठी पार्सर प्लगइन पॅकेजमध्ये राहतो, आणि तो तयार करतो ते कनेक्शन org.freedesktop.NetworkManager.openvpn सारख्या D-Bus सेवेकडे निर्देश करते. प्लगइन नाही तर पार्सर नाही: प्रकार nmcli साठी अज्ञात आहे, आणि VPN जोडण्याची ग्राफिकल यादी कदाचित आयात नोंदच दाखवणार नाही. WireGuard एका महत्त्वाच्या बिंदूवर वेगळे आहे — NetworkManagerकडे 1.30 मालिकेपासून स्वतःच्या WireGuard सेटिंग्ज आहेत, म्हणून वेगळे प्लगइन पॅकेज नाही, पण wg-quick वाचक फक्त त्या बिल्डमध्ये आहे जे तो देतात.

कोणत्याही प्रकारे फाइल एकदाच वाचली जाते. निकाल /etc/NetworkManager/system-connections/ अंतर्गत keyfile म्हणून लिहिला जातो, कनेक्शनच्या नावाने, root च्या मालकीत आणि इतर वापरकर्त्यांसाठी न वाचता येणारा कारण त्यात की सामग्री आहे. तो keyfile आता कनेक्शन आहे; मूळ .ovpn नंतर संपादित केल्याने काहीही बदलत नाही.

तीन लक्षणे तीन वेगवेगळ्या टप्प्यांशी संबंधित आहेत. आयात नोंद नसणे किंवा अज्ञात प्रकार म्हणजे प्लगइन किंवा आवृत्ती नाही. निर्देशाचे नाव घेणारी आयात त्रुटी म्हणजे पार्सरने फाइल वाचली आणि तिचा काही भाग नाकारला. अस्तित्वात असलेले पण कधीही सक्रिय न होणारे कनेक्शन म्हणजे पार्स केलेली वस्तू अपूर्ण आहे किंवा सर्व्हर ती नाकारत आहे. काहीही संपादित करण्यापूर्वी तुमच्याकडे तीनपैकी कोणती स्थिती आहे ते ठरवा.

प्रोफाइल डीबग करण्यापूर्वी प्लगइनची पुष्टी करा

गहाळ प्लगइन अगदी खराब प्रोफाइलसारखा दिसतो, म्हणून आधी पॅकेज तपासा. Debian आणि Ubuntu वर OpenVPN समर्थन network-manager-openvpn आणि डेस्कटॉप सहाय्यक म्हणून येते; Fedora वर पॅकेज NetworkManager-openvpn आणि NetworkManager-openvpn-gnome आहेत; Arch वर ते networkmanager-openvpn आहे.

dpkg -l network-manager-openvpn-gnome | tail -n 2
rpm -q NetworkManager-openvpn
pacman -Q networkmanager-openvpn

मग निरपेक्ष मार्गाने आयात करा: nmcli connection import type openvpn file /home/you/profile.ovpn. सापेक्ष मार्ग सहसा चालतात, पण डिरेक्टरी बदललेली शेल त्वरित आयातीचा घेर करते. WireGuard साठी nmcli --version तपासा आणि कर्नेल बाजू modprobe wireguard ने अस्तित्वात आहे याची खात्री करा; मॉड्यूलशिवाय मशीनवर यशस्वी होणारी आयात तुम्हाला अशा कनेक्शनसह सोडते ज्याचे उपकरण कधीही दिसत नाही. nmcli संदर्भ import उपआदेश आणि स्वीकारलेली प्रकार नावे दस्तऐवजीकरण करतो. जर type wireguard सरळ नाकारले गेले, तर बिल्ड या सुविधेपेक्षा जुने आहे, आणि योग्य पाऊल वितरण पॅकेज किंवा backport आहे — कॉन्फिगरेशन कोणत्याही अनियंत्रित डिरेक्टरीत कॉपी करून कोणी ते वाचेल अशी आशा करणे नाही.

OpenVPN कनेक्शन वाचा, .ovpn नाही

कनेक्शन तयार झाल्यावर फाइल पुन्हा न वाचता पार्स केलेल्या सेटिंग्ज वाचा: nmcli connection show "Work VPN" | grep -E '^vpn\.'. तुम्हाला remote आणि पोर्ट, ट्रान्सपोर्ट, ओळख सामग्री — ca, cert, key, tls-auth किंवा tls-crypt — आणि प्रमाणीकरण पद्धत हवी आहे. खाजगी की पासवर्ड असलेल्या प्रोफाइलमध्ये sudo nmcli --show-secrets connection show "Work VPN" जोडा आणि secret फ्लॅग पहा: 0 none आहे, म्हणजे रहस्य keyfile मध्ये आहे; 1 agent-owned आहे; 2 not-saved आहे, म्हणजे ते कधीही keyfile मध्ये लिहिले जात नाही; 4 not-required आहे, म्हणजे कोणतेही रहस्य आवश्यक नाही. हे बिट आहेत, मापन नाही, म्हणून 3 म्हणजे फक्त agent-owned अधिक not-saved. प्रति सत्र एकदा विचारले जाणारे रहस्य agent-owned (1) आहे जिथे एजंट ते मागतो; त्यासाठी वेगळा फ्लॅग क्रमांक नाही. फ्लॅग जुळून न येणे हे नेहमीचे कारण आहे की प्रोफाइल डेस्कटॉप ऍपलेटमधून जोडते आणि स्क्रिप्ट किंवा बूटवर अयशस्वी होते.

पार्सरने काय टाकले हे पाहण्याचा सर्वात वेगवान मार्ग म्हणजे प्लगइनला फाइल परत लिहायला सांगणे आणि नंतर तिची तुलना करणे: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. त्या फरकात जे निर्देश गायब होतील ते कनेक्शनच्या वेळी अस्तित्वात नसतील. हूक नेहमीचे संशयित आहेत — script-security, up, down आणि route-up उच्च अधिकारांनी चालणाऱ्या स्क्रिप्टची अपेक्षा करतात आणि जाणूनबुजून हस्तांतरित होत नाहीत. पडताळणी कमी करू नका आणि आयात यशस्वी करण्यासाठी अतिरिक्त विशेषाधिकार देऊ नका; असमर्थित पर्याय सहसा प्लगइनची वैशिष्ट्ये दर्शवतो, अगम्य सर्व्हर नाही. ते वर्तन NetworkManager डिस्पॅचर स्क्रिप्ट किंवा सर्व्हर-बाजू धोरणात हलवा.

ओळख क्षेत्रे टिकली का हेही पुष्टी करा: CA संदर्भ, remote-cert-tls आणि प्रोफाइल ज्या कोणत्याही नाव तपासणीवर अवलंबून होते. जे कनेक्शन यांच्याशिवाय वर येते ते कदाचित त्या पत्त्यावर उत्तर देणाऱ्या कोणत्याही गोष्टीशी बोलत असेल.

WireGuard कनेक्शन वाचा, wg-quick फाइल नाही

wg-quick फाइल शेल अर्थ असलेले स्वरूप आहे; आयात केलेले कनेक्शन सेटिंग्जचा संच आहे. PrivateKey इंटरफेसची खाजगी की बनते, Address एक किंवा अधिक IPv4 आणि IPv6 पत्ते बनतात, DNS NetworkManagerच्या resolver गुणधर्मांवर मॅप होते, MTU wireguard.mtu वर मॅप होते (wg-quickचे स्वतःचे डीफॉल्ट 1420 आहे), आणि प्रत्येक peer ब्लॉक सार्वजनिक की, endpoint, परवानगी दिलेले IP आणि persistent keepalive असलेली peer नोंद बनते. जे साठवले गेले ते nmcli --show-secrets connection show wg0 ने छापा; peer यादी त्या आउटपुटमध्ये न दिसल्यास keyfile वाचा:

sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection

जे टिकत नाही ते wg-quickचा शेल अर्धा भाग आहे. PreUp, PostUp, PreDown, PostDown आणि Table त्या साधनाचे वर्तन आहेत, WireGuard इंटरफेसचे गुणधर्म नाहीत, म्हणून आयातीनंतर त्यांना कोणीही चालवत नाही. जर मूळने Table = off वापरले असेल डीफॉल्ट रूट अलग ठेवण्यासाठी, तर नवीन NetworkManager आवृत्त्या त्याच हेतूने ip4-auto-default-route आणि ip6-auto-default-route देतात; ते स्पष्टपणे सेट करा, कनेक्शन स्क्रिप्टसारखे वागते असे गृहीत धरण्यापेक्षा. जो हूक सानुकूल रूट ढकलत होता त्याला तो रूट कनेक्शनच्या राउटिंग सेटिंग्जमध्ये हवा आहे, अन्यथा तो फक्त गायब राहील.

कनेक्शनला नेमका एक मालक द्या

क्लासिक पुढील बिघाड म्हणजे पुढील बूटपर्यंत चालणारे आणि नंतर लूपमध्ये पडणारे कनेक्शन. सहसा [email protected] मागील प्रयोगापासून अजून सक्षम होते, किंवा विक्रेत्याचा क्लायंट स्वतःचा डेमॉन चालवत होता, आणि दोन मालक एकाच गंतव्यासाठी रूट आणि DNS लिहीत होते. NetworkManager resolver स्वतःच्या मार्गाने सेट करतो, wg-quick resolvconf मार्फत लिहितो, आणि शेवटचा लिहिणारा जिंकतो — म्हणून नाव विश्लेषण चालते, मग थांबते, मग पुन्हा चालते. systemctl status wg-quick@wg0, nmcli connection show --active आणि ip link show type wireguard तपासा, मग दुसऱ्या मालकाला अक्षम करा, त्याचे metric ट्यून करण्याऐवजी.

जर तुम्हाला खरोखर दोन्ही हवे असतील, तर त्यांना वेगळे इंटरफेस आणि असंबद्ध परवानगी दिलेले IP द्या, आणि नेमके एकाने डीफॉल्ट रूट इंस्टॉल करू द्या. वेगळ्या metrics असलेले दोन डीफॉल्ट रूट split tunnel नाहीत; ही एक शर्यत आहे जी दुसरी सुरू होणारी सेवा ठरवते. आणि पुन्हा कनेक्ट झाल्यावर लागू स्थिती पुन्हा पहा — resolverचा एकदाचा मॅन्युअल बदल जो गोष्टी चालवतो, आयात पूर्ण असल्याचा पुरावा नाही.

ट्रॅफिकने पडताळा आणि रीबूट सहन करा

कनेक्शन nmcli connection up "Work VPN" ने वर आणा, मग चिन्हावर विश्वास ठेवण्याऐवजी स्थिती, पत्ता आणि रूट वाचा: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default आणि केवळ बोगद्यातच सुटणाऱ्या नावाची खरी चौकशी. हँडशेक किंवा यशस्वी ping फक्त क्रिप्टोग्राफी चालते हे सिद्ध करते; ते फॉरवर्डिंग, split tunnel उपसर्ग किंवा खाजगी DNS बद्दल काहीही सांगत नाही, आणि सहसा हेच भाग तुटतात.

मग रीबूट करा आणि पुन्हा करा. autoconnect वर्तन, बदललेले इंटरफेस नाव आणि उपकरणानंतर लोड होणारे प्लगइन — हे सर्व ते बिघाड आहेत जे केवळ स्वच्छ बूटवर दिसतात. journalctl -u NetworkManager -b --no-pager | tail -n 40 दाखवतो की डेमॉनने या बूटमध्ये या कनेक्शनसह काय केले. दुसऱ्या संगणकासाठी keyfile कॉपी करा आणि तो root मालकीत 600 मोडसह ठेवा, किंवा OpenVPN साठी nmcli connection export वापरा आणि तयार झालेली .ovpn पुन्हा आयात करा — निर्यात मार्गाला WireGuard मध्ये समतुल्य नाही, म्हणून ती दिशा फाइल कॉपी किंवा संरक्षित मूळातून नवीन आयात आहे.

लहान आवृत्ती, क्रमाने: प्लगइन किंवा NetworkManager आवृत्तीची पुष्टी करा, निरपेक्ष मार्गाने आयात करा, secret फ्लॅगसह पार्स केलेल्या सेटिंग्ज वाचा, OpenVPN निर्यातीची मूळाशी तुलना करा, WireGuard बाजूला हूक आणि रूट तपासा, कोणताही दुसरा मालक अक्षम करा, आणि नंतर रीबूटनंतर नाव विश्लेषण आणि रूट तक्ता पडताळा. जेव्हा कनेक्शन हे सर्व पास होते, तेव्हा ते सुरू करणारी प्रोफाइल फाइल संरक्षित साठवणीत परत जाऊ शकते.

संबंधित लेख