Systemd සහ NetworkManager: බූට් වන විට VPN එක අරඹන්නේ කවුද?
යන්ත්රණ ක්රම තුනකට එකම Ubuntu පැතිකඩ අරඹන්න පුළුවන්, එකින් එකට වෙනස් ට්රිගර් එකක් ඇත. ඒවා සසඳන්න, එක් හිමිකරුවෙක් තබාගන්න, අනුපිටපත ඉවත් කරන්න.
එකම රූපයෙන් එන Ubuntu යන්ත්ර දෙකක්, එකම VPN පැතිකඩක්, පිවිසීමේදී විරුද්ධ ප්රතිඵල: එකක ඩෙස්ක්ටොප් එක පෙනෙන්නටත් පෙර ටනලය උඩ ඇත, අනෙකේ එය කිසිදා උඩ නොයයි. මෙහි පැතිකඩ විචල්යය නොවේ. වෙනස වන්නේ කොටස් තුනෙන් කුමකට එය අරඹන්නට නියෝග ලැබුණාද යන්නයි, ඒ තුන එකම ස්විචයක් බෙදා නොගනී.
ඒවා පැත්තෙන් පැත්තට සසඳනවා අනුමාන කරනවාට වඩා ඉක්මන් ය. එකින් එක හඳුනාගත හැකි ආකාරයෙන් අසාර්ථක වේ, ඒ නිසාම සංසන්දනය වටී.
වෙනස් ට්රිගර් තුනක් ඇති ආරම්භක තුනක්
පැකේජ් කළ openvpn සේවාව පැරණිම මාර්ගයයි. එහි init ස්ක්රිප්ටය /etc/default/openvpn වෙතින් ස්වයං ආරම්භක ලැයිස්තුවක් කියවයි. එම ලැයිස්තුව අදහස් කර හෝ හිස්ව තබා ඇත්නම්, ස්ක්රිප්ටය ඔබ එකතු කළ එකම වින්යාසය වෙනුවට එම ඩිරෙක්ටරියේ හමුවන සෑම වින්යාසයක්ම අරඹයි. එක් ටනලයක් සඳහා එකතු කළ එක් ගොනුවකට නිශ්ශබ්දව කිහිපයක් උඩට ගෙන ඒමට පුළුවන.
| Starter | What triggers it | Typical failure |
|---|---|---|
| Init script and templated units | Boot, plus anything in the autostart list | Starts every config, not the one you meant |
| NetworkManager secondary | Activation of the base Wi-Fi or Ethernet profile | Nothing happens until that base link comes up |
| Hand-written unit or wrapper | Whatever its WantedBy and ExecStart say | Runs a different binary or environment than your shell |
දෙවන පේළිය මිනිසුන් වැරදි ලෙස වින්යාස කරන එකයි. NetworkManager ආයාත කළ පැතිකඩ තබාගෙන එය අරඹනු ඇත, නමුත් තවත් සම්බන්ධතාවක ද්විතීයක ලෙස පමණි, එනම් ට්රිගරය VPN එකට නොව ජාල සබැඳියට අයත් වේ.
සැකසුම් පිරිවැය සහ විෂය පථය සසඳන්න
init ස්ක්රිප්ටයේ මාර්ගය පේළියක් පමණක් ගනී, යන්ත්රයේ සෑම වින්යාසයක්ම ආවරණය කරයි. එය රවුටරයකට හොඳයි, විවිධ ජාලවලට සම්බන්ධ වන ලැප්ටොප් එකකට වැරදිය. NetworkManager මාර්ගය UUID සෙවීමක් ගනී, ටනලය එක් මූලික සම්බන්ධතාවකට බැඳ තබයි. එය කාර්යාලයේ SSID එකේ උඩ නගින අතර හෝටල් ජාලයක පහළම රැඳී සිටියි.
අතින් ලියන ලද unit එකක් වැඩිම පිරිවැයක් ගන්නා අතර, වෙනත් සේවා සමඟ ඇති අනුපිළිවෙල ඇතුළුව වැඩිම පාලනය ලබා දෙයි. තීරණාත්මක සාධකය විෂය පථයයි. යන්ත්රයට එක් ජාලයක් සහ එක් ටනලයක් ඇත්නම්, පැකේජ් කළ සේවාව අවංක සහ අනාවැකි කළ හැකි ය. ටනලය නිශ්චිත Wi-Fi ජාලයක් අනුගමනය කළ යුතු නම්, අමතර ස්ක්රිප්ට් නොමැතිව එම කොන්දේසිය ප්රකාශ කරන්නේ තුනෙන් ද්විතීයක පමණි.
එක් හිමිකරුවෙක් තෝරන්න, අනෙක් අය ඉවත් කරන්න
හිමිකරුවන් දෙදෙනෙකු අරඹන පැතිකඩක් බූට් අතර වෙනස් වන කාලයක් නිපදවයි, එය ඕනෑම යන්ත්රණයකට වඩා නරකය. හිමිකරු තෝරන්න, පසුව තරඟකාරී මාර්ගය අහම්බෙන් නොව චේතනාන්විතව අක්රීය කරන්න.
# who is configured to start something?
grep -v '^#' /etc/default/openvpn
systemctl list-units 'openvpn*'
nmcli -g connection.secondaries connection show 'Work Wi-Fi'
# NetworkManager: attach the tunnel to the base link by UUID
TUNNEL=$(nmcli -g UUID connection show 'Corp Tunnel')
nmcli connection modify 'Work Wi-Fi' +connection.secondaries "$TUNNEL"
ඉවත් කරන මාර්ගය පැකේජ් කළ මාර්ගය නම්, නිවැරදි අනුපිළිවෙලින් කරන්න: AUTOSTART none ලෙස සකසන්න, ජනනය වූ unit නව ලැයිස්තුව ගන්නා පරිදි systemctl daemon-reload ධාවනය කරන්න, පසුව තවදුරටත් අවශ්ය නැති ටෙම්ප්ලේට් අවස්ථාව අක්රීය කරන්න. නැවත පූරණය මඟ හැරියොත් පැරණි unit සක්රීයව පවතී, එය වෙනසට කිසිදු බලපෑමක් නොවූ ලෙස පෙනේ.
එල්ලා යන නැවැත්වීම වෙනම ගැටලුවක් වන අතර එයට සීමිත පිළිතුරක් ඇත. SIGKILL යැවීමට පෙර systemd කොපමණ කල් රැඳී සිටිනවාද යන්න TimeoutStopSec සීමා කරයි. එය සැකසීමට නිවැරදි තැන drop-in ගොනුවයි, මන්ද පැකේජ් කළ unit සංස්කරණය කිරීමෙන් ඊළඟ උත්ශ්රේණියේදී වෙනස නැති වේ.
සැබවින්ම අරඹා ඇත්තේ කුමක්ද පරීක්ෂා කරන්න
නැවත බූට් කර වින්යාස ගොනුවට විශ්වාස කරනවා වෙනුවට සාක්ෂි කියවන්න. ටනලයට හිමි unit එක සක්රීය තත්ත්වයක් සහ බූට් එකට ගැළපෙන ආරම්භක වේලා මුද්රාවක් පෙන්වනු ඇත, VPN අතුරුමුහුණත ඔබ පිවිසෙන්නටත් පෙර පවතිනු ඇත.
systemctl is-enabled openvpn-client@office
systemctl status openvpn-client@office --no-pager
nmcli -f GENERAL.STATE,connection.secondaries connection show 'Work Wi-Fi'
ip -brief link show tun0
මෙහි තවත් පරීක්ෂාවක් අදාළ වේ: unit එකේ ExecStart ඔබ සිතන ද්විමය ගොනුවට යොමු වේදැයි තහවුරු කරන්න. දේශීයව සම්පාදනය කළ සේවාදායකයකට හෝ snap පැකේජයකට බොහෝ විට පැහැදිලි මාර්ගයක් හෝ snap run ආවරණයක් අවශ්ය වේ, මන්ද systemd ඔබේ ෂෙල් එකේ සෙවුම් අනුපිළිවෙල උරුම නොකරයි. command -v openvpn unit ගොනුව සමඟ සැසඳීම තත්පර කිහිපයකින් එය විසඳයි.
තෝරාගත් හිමිකරු පැතිකඩ නම අසල යන්ත්රයේ සටහන්වල ලියන්න. ඊළඟ පුද්ගලයා අතුරුදහන් ටනලයක් නිරාකරණය කරන විට සංසන්දනය නැවත නොකර එම පේළියෙන් පටන් ගනී.