NetworkManager තුළ OpenVPN සහ WireGuard ගොනු ආයාත කිරීම අසාර්ථක වේ
ගැටලුව සාමාන්යයෙන් කැඩෙන්නේ පැතිකඩ නොව විග්රහකය ය. ප්ලගින් පරීක්ෂා කරන්න, ආයාත කළ සම්බන්ධතාව කියවන්න, රහස් ධජ සහ මාර්ග නිවැරදි කරන්න, පසුව නැවත ඇරඹුමක් අත්හදා බලන්න.
මම GNOME Settings තුළ ගොනුවකින් ආයාත කරන්න… තෝරාගෙන, වෙළෙන්දාගේ සේවාලාභී යෙදුම සමඟ වැඩ කරන පැතිකඩක් තෝරාගත්තා; සංවාදය කිසිවක් ලැයිස්තුවට එකතු නොකර වැසී ගියා. දෙවන ලැප්ටොප් පරිගණකයේ ආයාතය සම්පූර්ණ වුණා, සම්බන්ධතාව පැතිකඩේ නමින් දර්ශනය වුණා, පසුව පළමු සත්යාපන විමසුමේදී එය අසාර්ථක වුණා. NetworkManager ඔබේ .ovpn හෝ wg-quick ගොනුව කිසිදා එලෙසම ධාවනය නොකරයි. එය ගොනුව විග්රහකයකට භාර දෙයි, විග්රහකය එය NetworkManager හිම සම්බන්ධතා ආකෘතියට හරවයි, ඉන්පසු උමග ගොඩනැගෙන්නේ එම විග්රහ කළ වස්තුවෙනි — රහස්, මාර්ග, DNS සහ සියල්ල. එබැවින් ප්රයෝජනවත් ප්රශ්නය වන්නේ ගොනුව ඇයි කැඩුණේ යන්න නොව, විග්රහය සිදු වුණාද සහ එය කුමක් රඳවා ගත්තාද යන්නයි.
ආයාතය ගොනුව සමඟ සැබවින්ම කරන්නේ කුමක්ද
OpenVPN සඳහා විග්රහකය ප්ලගින් පැකේජයේ පිහිටයි, එය සාදන සම්බන්ධතාව org.freedesktop.NetworkManager.openvpn වැනි D-Bus සේවාවකට යොමු වේ. ප්ලගින් නැත්නම් විග්රහකයක් නැත: nmcli ට එම වර්ගය නොදනී, චිත්රක add-VPN ලැයිස්තුවේ ආයාත ඇතුළත් කිරීමක් පවා නොපෙනිය හැක. WireGuard එක් වැදගත් අංශයකින් වෙනස් ය — 1.30 මාලාවේ සිට NetworkManager සියම 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. සාපේක්ෂ මාර්ග සාමාන්යයෙන් වැඩ කරයි, නමුත් නාමාවලිය මාරු කළ shell එකක් ඉක්මන් ආයාතයක් වටහනක් බවට හරවයි. WireGuard සඳහා nmcli --version පරීක්ෂා කර modprobe wireguard සමඟ කර්නල පැත්ත පවතින බව තහවුරු කරගන්න; මොඩියුලය නොමැති යන්ත්රයක සාර්ථක වන ආයාතයක් ඔබට ඉතිරි කරන්නේ උපාංගය කිසිදා නොපෙනෙන සම්බන්ධතාවයකි. nmcli යොමුව ආයාත උපවිධානය සහ පිළිගන්නා වර්ග නාම ලේඛනගත කරයි. type wireguard කෙළින්ම ප්රතික්ෂේප වේ නම්, එම ගොඩනැගිල්ල එම විශේෂාංගයට පෙර එකකි, නිවැරදි පියවර වන්නේ බෙදාහැරීමේ පැකේජයක් හෝ backport එකකි — වින්යාසය අහඹු නාමාවලියකට පිටපත් කර යමක් එය කියවාවි යැයි බලාපොරොත්තු වීම නොවේ.
OpenVPN සම්බන්ධතාව කියවන්න, .ovpn නොව
සම්බන්ධතාව පවතින විට, ගොනුව නැවත කියවීම වෙනුවට විග්රහ කළ සැකසුම් කියවන්න: nmcli connection show "Work VPN" | grep -E '^vpn\.'. ඔබට අවශ්ය වන්නේ දුරස්ථය සහ තොටුපළ, ප්රවාහංගය, හැඳුනුම් ද්රව්ය — ca, cert, key, tls-auth හෝ tls-crypt — සහ සත්යාපන ක්රමයයි. පෞද්ගලික යතුරු මුරපදයක් සහිත පැතිකඩක, sudo nmcli --show-secrets connection show "Work VPN" එකතු කර රහස් ධජ බලන්න: 0 යනු කිසිවක් නැත, එනම් රහස keyfile එකේ තිබේ; 1 යනු agent-owned; 2 යනු not-saved, එනම් එය කිසිදා keyfile එකට නොලියැවේ; 4 යනු not-required, එනම් රහසක් කිසිසේත් අවශ්ය නැත. ඒවා බිටු මිස මිනුම් පරිමාණයක් නොවේ, එබැවින් 3 යනු agent-owned සහ not-saved පමණි. සැසියකට වරක් ඔබෙන් විමසන රහසක් agent-owned (1) වන අතර එය විමසන්නේ නියෝජිතයා ය; ඒ සඳහා වෙනම ධජ අංකයක් නැත. ධජ නොගැලපීම යනු පැතිකඩක් ඩෙස්ක්ටොප් ඇප්ලට් එකෙන් සම්බන්ධ වී script එකකින් හෝ ඇරඹුමේදී අසාර්ථක වීමේ සාමාන්ය හේතුවයි.
විග්රහකය ඉවත් කළ දේ බැලීමට ඇති ඉක්මන්ම මාර්ගය නම් ගොනුව නැවත ලිවීමට ප්ලගිනයට කියා එය diff කිරීමයි: nmcli connection export "Work VPN" /tmp/roundtrip.ovpn. එම diff එකේදී අතුරුදහන් වන උපදෙස් සම්බන්ධ වන අවස්ථාවේ නොපවතී. කොක්ක යනු සාමාන්ය සැකකරුවන් ය — script-security, up, down, route-up උත්තරීතර අයිතිවාසිකම් සහිතව script එකක් ධාවනය වනු ඇතැයි අපේක්ෂා කරයි, හිතාමතා ඒවා රැගෙන නොයයි. ආයාතයක් සාර්ථක කරගන්න සත්යාපනය පහත නොදමන්න, අමතර වරප්රසාද නොදෙන්න; අනාධාරිත විකල්පයක් සාමාන්යයෙන් පිළිබිඹු කරන්නේ ප්ලගිනයේ විශේෂාංග පරාසය මිස ළඟා විය නොහැකි සේවාදායකයක් නොවේ. එම හැසිරීම NetworkManager dispatcher script එකකට හෝ සේවාදායක පැත්තේ ප්රතිපත්තියකට මාරු කරන්න.
හැඳුනුම් ක්ෂේත්ර ඉතිරි වී ඇත්ද යන්න ද තහවුරු කරන්න: CA යොමුව, remote-cert-tls, සහ පැතිකඩ විශ්වාස කළ ඕනෑම නම් පරීක්ෂාවක්. ඒවා නොමැතිව ඉහළ එන සම්බන්ධතාවක් එම ලිපිනයේ පිළිතුරු දෙන කා සමඟත් කථා කරමින් සිටිය හැක.
WireGuard සම්බන්ධතාව කියවන්න, wg-quick ගොනුව නොව
wg-quick ගොනුවක් යනු shell අර්ථවින් ඇති ආකෘතියකි; ආයාත කළ සම්බන්ධතාව යනු සැකසුම් කට්ටලයකි. PrivateKey අතුරුමුහුණතේ පෞද්ගලික යතුර බවට පත්වේ, Address එක හෝ කිහිපයක් IPv4 සහ IPv6 ලිපින බවට පත්වේ, DNS NetworkManager හි විසඳුම් ගුණාංගවලට සිතියම් වේ, MTU wireguard.mtu වෙත සිතියම් වේ (wg-quick හිම පෙරනිමිය 1420 වේ), සහ එක් එක් peer කොටස පොදු යතුර, endpoint, allowed IPs සහ persistent keepalive සහිත peer ඇතුළත් කිරීමක් බවට පත්වේ. nmcli --show-secrets connection show wg0 සමඟ ගබඩා කළ දේ මුද්රණය කරන්න; එම ප්රතිදානයේ peer ලැයිස්තුව නොපෙනේ නම්, keyfile එක කියවන්න:
sudo sed -n '/^\[wireguard\]/,/^\[/p' /etc/NetworkManager/system-connections/wg0.nmconnection
ඉතිරි නොවන්නේ wg-quick හි shell අර්ධයයි. PreUp, PostUp, PreDown, PostDown සහ Table යනු එම මෙවලමේ හැසිරීම මිස WireGuard අතුරුමුහුණතක ගුණාංග නොවේ, එබැවින් ආයාතයකින් පසු ඒවා කිසිවක් ධාවනය නොකරයි. මුල් එක පෙරනිමි මාර්ගය තනිව තැබීමට Table = off භාවිත කළේ නම්, මෑත NetworkManager නිකුතු ip4-auto-default-route සහ ip6-auto-default-route එම අරමුණට ලබා දෙයි; සම්බන්ධතාව script එක මෙන් හැසිරෙනු ඇතැයි උපකල්පනය කරනවාට වඩා ඒවා පැහැදිලිව සකසන්න. අභිරුචි මාර්ගයක් තල්ලු කළ කොක්කකට එම මාර්ගය සම්බන්ධතාවේ මාර්ග සැකසුම්වලට එකතු කළ යුතුය, නැතිනම් එය සරලවම නැති වේ.
සම්බන්ධතාවට හරියටම එක් හිමිකරුවෙක් දෙන්න
සම්ප්රදායික අනුක අසාර්ථකත්වය යනු ඊළඟ ඇරඹුම දක්වා වැඩ කර පසුව ලූප් වන සම්බන්ධතාවකි. සාමාන්යයෙන් කලින් පරීක්ෂණයකින් [email protected] තවමත් සක්රීය කර තිබුණි, නැතිනම් වෙළෙන්දෙකුගේ සේවාලාභී යෙදුමක් සියම ඩේමනය දියත් කරමින් සිටියේය, සහ හිමිකරුවන් දෙදෙනෙක් එකම ගමනාන්තය සඳහා මාර්ග සහ DNS ලියමින් සිටියහ. NetworkManager සියම මාර්ගයෙන් විසඳුම්කරු සකසයි, wg-quick resolvconf හරහා ලියයි, අවසන් වරට ලියන අය දිනයි — එබැවින් නම් විසඳුම වැඩ කරයි, පසුව නවතී, පසුව නැවත වැඩ කරයි. systemctl status wg-quick@wg0, nmcli connection show --active සහ ip link show type wireguard පරීක්ෂා කර, එහි මෙට්රිකය සකසනවාට වඩා දෙවන හිමිකරු අක්රීය කරන්න.
ඔබට දෙකම සැබවින්ම අවශ්ය නම්, ඒවාට වෙන වෙනම අතුරුමුහුණත් සහ එකිනෙක නොගැටෙන allowed IPs දෙන්න, සහ ඉන් හරියටම එකකට පමණක් පෙරනිමි මාර්ගය ස්ථාපනය කිරීමට ඉඩ දෙන්න. වෙනස් මෙට්රික සහිත පෙරනිමි මාර්ග දෙකක් යනු split tunnel එකක් නොවේ; එය දෙවනුව ආරම්භ වන සේවාව තීරණය කරන තරඟයකි. නැවත සම්බන්ධ වීමෙන් පසු, යෙදූ තත්ත්වය නැවත පරීක්ෂා කරන්න — දේවල් වැඩ කරවන එක් වරක් සිදු කළ අත්පසු විසඳුම් සංස්කරණයක් ආයාතය සම්පූර්ණ බවට සාක්ෂියක් නොවේ.
දත්ත ගමනාගමනයෙන් තහවුරු කර නැවත ඇරඹුමට ඔරොත්තු දෙන්න
nmcli connection up "Work VPN" සමඟ සම්බන්ධතාව ඉහළ අරන්, පසුව අයිකනය විශ්වාස කරනවාට වඩා තත්ත්වය, ලිපිනය සහ මාර්ග කියවන්න: nmcli device show wg0 | grep -E 'GENERAL.STATE|IP4.ADDRESS|IP4.ROUTE', ip route show default, සහ උමග තුළ පමණක් විසඳෙන නමක සැබෑ සෙවීමක්. අත් ගැටීමක් හෝ සාර්ථක පිංගුවක් ක්රිප්ටෝව වැඩ කරන බව පමණක් ඔප්පු කරයි; යැවීම, split-tunnel උපසර්ග හෝ පෞද්ගලික DNS ගැන එය කිසිවක් නොකියයි, ඒවායින් බොහෝ විට කැඩෙන්නේ එම කොටස් ය.
පසුව නැවත ඇරඹා එය පුනරාවර්තනය කරන්න. ස්වයං-සම්බන්ධ හැසිරීම, නම මාරු වූ අතුරුමුහුණතක් සහ උපාංගයෙන් පසු පූරණය වන ප්ලගින් එකක් යනු නැවුම් ඇරඹුමකදී පමණක් දකින අසාර්ථකතා ය. මෙම ඇරඹුමේදී ඩේමනය මෙම සම්බන්ධතාව සමඟ කළ දේ journalctl -u NetworkManager -b --no-pager | tail -n 40 පෙන්වයි. දෙවන ඩෙස්ක්ටොප් එකකට, keyfile එක පිටපත් කර root හිමිකාරිත්වයෙන් mode 600 තබන්න, නැතිනම් OpenVPN සඳහා nmcli connection export භාවිත කර ලැබෙන .ovpn නැවත ආයාත කරන්න — අපනයන මාර්ගයට WireGuard සමානයක් නැත, එබැවින් එම දිශාව ගොනු පිටපතක් හෝ ආරක්ෂිත මුල් පිටපතෙන් නැවුම් ආයාතයක් ය.
කෙටියෙන්, පිළිවෙළින්: ප්ලගින් හෝ NetworkManager අනුවාදය තහවුරු කරන්න, නිරපේක්ෂ මාර්ගයකින් ආයාත කරන්න, රහස් ධජ ඇතුළුව විග්රහ කළ සැකසුම් කියවන්න, OpenVPN අපනයනය මුල් පිටපත සමඟ diff කරන්න, WireGuard පැත්තේ කොක්ක සහ මාර්ග පරීක්ෂා කරන්න, ඕනෑම දෙවන හිමිකරුවෙක් අක්රීය කරන්න, පසුව නැවත ඇරඹුමකින් පසු නම් සෙවීම සහ මාර්ග වගුව තහවුරු කරන්න. සම්බන්ධතාවක් ඒ සියල්ල පසු කළ පසු, එය ආරම්භ කළ පැතිකඩ ගොනුව නැවත ආරක්ෂිත ගබඩාවට යා හැක.