සේවාව නතර කිරීම persist-tun සකසා තිබියදීත් අතුරුමුහුණත ඉවත් කරයි. මෙය විකල්පය ලේඛනගත පරිදි ක්‍රියා කිරීමයි, අසාර්ථකත්වයක් නොවේ. විකල්පය ධාවනය වන ක්‍රියාවලියක් තුළ එක් නැවත ආරම්භක මාර්ගයක් විස්තර කරයි, සහ systemctl stop එම මාර්ගය නොවේ.

නම් දෙක එකට කියවන්න, සැලසුම පැහැදිලි වේ. එකක් විස්තරකරුවක් රඳවා ගනී, අනෙක යතුරු ද්‍රව්‍ය රඳවා ගනී, සහ දෙකම වරප්‍රසාද අත්හැරීමෙන් පසු සිදුවන දේ නිසා පවතී.

සම්පත් දෙක සහ ඒවා අයත් වන නැවත සැකසුම

OpenVPN සාමාන්‍ය අවස්ථා දෙකකදී තමන්ගේම නැවත ආරම්භය සංඥා කරයි. පැහැදිලි SIGUSR1 එය කරයි, සහ මළ සහකරුවෙකු විසින් ඇති කරන ping-restart ද එයම කරයි. දෙකම ක්‍රියාවලිය ජීවමානව තබා සම්බන්ධතා සැකසුම නැවත ධාවනය කරයි, සහ එහිදීය විකල්ප තම ස්ථානය දිනා ගන්නේ.

EventTUN/TAP deviceKey and auth filesAddresses and routesup/down hooks
Soft reset, from SIGUSR1 or from a ping-restart the daemon sends itselfsurvives only with persist-tunsurvive only with persist-keysurvive with the device, otherwise rebuiltrun again only when restart hooks are enabled
Configuration reload, SIGHUPrecreatedre-read from diskrebuilt once the device returnsrun again
Service stoplostre-read at the next startremovedrun at the next start

මෙම විකල්ප දෙක වෙනස් කරන්නේ මෘදු-නැවත සැකසුම් පේළිය පමණි, සහ ඒවා මඟ හරින කාර්යය කාර්යබහුල සබැඳියක මිල අධික කොටසයි. උපාංගයක් නැවත විවෘත කිරීම එයට සම්බන්ධ ලිපින සහ මාර්ග කඩා දමයි, සහ ඒවා නැවත ගොඩනැගීම නැවත ආරම්භය ඇරඹෙන විට මාර්ගයේ තිබූ පැකට් අතහැරිය හැක. නතර කිරීම එම වස්තූන් රඳවා ගැනීමට කිසිදු විකල්පයක් නොමැතිව විනාශ කරයි.

මෙම විකල්ප කිසිසේත් පවතින්නේ ඇයි

දෘඩ කළ OpenVPN සේවාදායකය සාමාන්‍යයෙන් root ලෙස ආරම්භ වේ, එහි යතුරු සහ උපාංගය විවෘත කරයි, පසුව වරප්‍රසාද නොමැති පරිශීලකයෙකුට බසී. එම බැසීමෙන් පසු සමහර මෙහෙයුම් සරලව නැති වේ. මාදිලිය 0600 යතුරු ගොනුවක් කියවීම, ජාල අතුරුමුහුණතක් සෑදීම හෝ මාර්ග වෙනස් කිරීම සියල්ල ප්‍රතික්ෂේප විය හැක.

persist විකල්ප නොමැතිව, ping-restart ඇති කිරීමට ප්‍රමාණවත් කාලයක් නිහඬව සිටින සහකරු එම මෙහෙයුම්ම බල කරයි. වින්‍යාසයේ කිසිවක් වෙනස් නොවූවත් නැවත සම්බන්ධ වීම අසාර්ථක වේ. ක්‍රියාවලිය හේතුවක් නැතිව මිය යන ලෙස පෙනේ, සහ ලොගය ජාල දෝෂයක් වෙනුවට අවසර දෝෂයක් පෙන්වයි.

ඒවා සමඟ, මෘදු නැවත ආරම්භය වරප්‍රසාදිත අවස්ථාව දැනටමත් ලබා ඇති දේ නැවත භාවිත කරයි. කිසිදු මායාවක් නැති අතර ක්‍රියාවලිය කිසිවකින් ජීවත් නොවේ. සම්පත් ලබා ගැනීම සරලව කල් දමනු ලැබේ.

අවසන් නොව පළමු දෝෂය කියවන්න

නැවත ආරම්භය අසාර්ථක වූ විට, අවසන් එක වෙනුවට පළමු දෝෂය කියවන්න. ආරක්ෂිත යතුරක්, auth ගොනුවක්, අතුරුමුහුණත් ioctl එකක් සහ බාහිර කොක්කක් විවිධ සම්පත් හතරකි. එකක් රඳවා ගැනීම අනෙක් ඒවාට ප්‍රවේශය ගැන කිසිවක් නොකියයි. firewall මෙවලමක් අමතන කොක්කකට තවමත් එම මෙවලම ඉල්ලන වරප්‍රසාද අවශ්‍ය වේ.

කොක්කවලට තමන්ගේම ස්විචයක් ඇත. OpenVPN අත්පොත persist විකල්ප up-restart සමඟ යුගලනය කරයි, එය නැවත ආරම්භයෙන් පසු up සහ down ස්ක්‍රිප්ට් නැවත ධාවනය වේද යන්න තීරණය කරයි. එබැවින් ඉහළින් පැවති අතුරුමුහුණත ඔබේ resolver ඒකාබද්ධතාව නැවුම් වූයේද යන්න ගැන කිසිවක් නොකියයි.

# which restart path just happened?
journalctl -u openvpn-client@office --since '10 min ago' | grep -E 'SIGUSR1|ping-restart|Restart pause|NOTE:'

# did the interface survive, and do its routes still exist?
ip -brief link show tun0
ip route show dev tun0

මෙම විධාන දෙක අසාර්ථකත්ව ක්‍රම දෙක තත්පර කිහිපයකින් වෙන් කරයි. පවතින නමුත් මාර්ග අස්ථානගත වූ අතුරුමුහුණතක් යනු කොක්ක හෝ මාර්ග ගැටලුවකි. අතුරුදහන් වූ අතුරුමුහුණත යනු ක්‍රියාවලිය සැබවින්ම අවසන් වූ බවයි.

රඳවා ගත් අතුරුමුහුණත kill switch එකක් නොවේ

රථවාහන කිසි විටෙක උමඟින් පිටතට නොයා යුතු යැයි අවශ්‍යතාවය නම්, රඳවා ගත් උපාංගය එය ලබා නොදේ. අනෙක් ලිපින පවුල සඳහා මාර්ග, දෙවන පෙරනිමි මාර්ගය, සහ ක්‍රියාවලිය සම්පූර්ණයෙන් පිටවන අවස්ථාව සියල්ල විකල්පයේ විෂය පථයෙන් පිටත රැඳේ.

අවශ්‍යතා දෙක වෙන් වෙන්ව හසුරුවන්න. නැවත සම්බන්ධතා අතර උමඟ වස්තුව රඳවා ගැනීම ඩේමන් සඳහා පහසුවකි. උමඟ වැටී ඇති විට පිටවීම අවහිර කිරීම තමන්ගේම නීති සහ තමන්ගේම පරීක්ෂණයක් ඇති firewall ප්‍රතිපත්තියකි. ඒවා මිශ්‍ර කිරීම ආරක්ෂාකාරී ලෙස පෙනෙන නමුත් හොඳම උත්සාහයේ නැවත සම්බන්ධතාවක් ලෙස හැසිරෙන වින්‍යාසයක් නිපදවයි.

රෝග විනිශ්චයට පෙර සිදුවීමට නමක් දෙන්න. මෘදු නැවත ආරම්භය, අසාර්ථක සම්බන්ධතා උත්සාහය සහ සේවා නැවතුම් යනු හැසිරීම් තුනක් සහිත සිදුවීම් තුනකි, සහ පළමු එක පමණක් මෙම විකල්ප විස්තර කරන දේය.

අදාළ ලිපි