NetworkManager లో OpenVPN మరియు WireGuard ఫైళ్ల దిగుమతి విఫలమవుతుంది
సాధారణంగా పార్సర్, ప్రొఫైల్ కాదు, పగిలిపోతుంది. ప్లగిన్ తనిఖీ చేయండి, దిగుమతి చేసిన కనెక్షన్ చదవండి, secret ఫ్లాగ్లు మరియు మార్గాలను సరిచేయండి, తర్వాత రీబూట్ పరీక్షించండి.
నేను 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 వైపు హుక్లు మరియు మార్గాలు తనిఖీ చేయండి, ఏదైనా రెండవ యజమానిని నిలిపివేయండి, తర్వాత రీబూట్ తర్వాత పేరు పరిష్కారం మరియు మార్గ పట్టికను ధృవీకరించండి. కనెక్షన్ అన్నీ దాటితే, దాన్ని ప్రారంభించిన ప్రొఫైల్ ఫైల్ రక్షిత నిల్వకు తిరిగి వెళ్లవచ్చు.