systemd ExecCondition மூலம் வீட்டு VPN-ஐத் தவிர்க்கவும்
வேண்டுமென்றே தவிர்ப்பதும் உடைந்த தயாரிப்புக் கட்டளையும் வெவ்வேறு முடிவுகள். உதவியாளரின் வெளியேறு குறியீடுகளை வரையறுத்து, பின்னர் வலைப்பிணைப்புகளுக்கிடையேயான மாற்றத்தைச் சோதிக்கவும்.
மடிக்கணினி ஏற்கனவே அந்த வலையமைப்பில் இருக்கும்போது வீட்டு வலையமைப்பின் VPN-க்கு செய்ய எதுவும் இல்லை. கவர்ச்சிகரமான குறுக்குவழி என்பது பூஜ்ஜியமற்ற குறியீட்டுடன் வெளியேறும் தயாரிப்புக் கட்டளை; அது யூனிட்டைத் தோல்வியடையச் செய்து ஒவ்வொரு டாஷ்போர்டையும் உடைந்ததாகக் காட்டுகிறது. systemd-ல் இதுபோன்ற முடிவுக்கான கட்டளை இருக்கிறது, அது வேண்டுமென்றே தவிர்ப்பதை உண்மையான குறையிலிருந்து பிரிக்கிறது. இதைச் சரியாகச் செய்வது முக்கியமாக ஒவ்வொரு வெளியேறு குறியீட்டின் அர்த்தத்தையும் எழுதுவதே.
தோல்வியடையும் முன்நிபந்தனை தவறான வடிவம் ஏன்
ExecStartPre பூஜ்ஜியமற்ற வெளியேற்றத்தைத் தொடக்கத் தோல்வியாகக் கருதுகிறது, இது சேவையைத் தயாரிக்கும் கட்டளைக்குச் சரியானது. அதை நிபந்தனையாகப் பயன்படுத்துவது கொள்கை முடிவை உடைந்த சார்பிலிருந்து வேறுபடுத்த முடியாததாக்குகிறது. யூனிட் தோல்வியெனக் குறிக்கப்படாமல் தொடங்க மறுக்க ExecCondition உள்ளது.
அந்த வேறுபாடு இரவு மூன்று மணிக்கு முக்கியம், வடிவமைப்பின்படி செயல்பட்ட சிவப்பு யூனிட்டை யாரும் பரிசோதிக்க விரும்பாதபோது. தோல்வியடைந்த யூனிட் வேண்டுமென்றே செய்த தோல்விகளுக்கிடையே உண்மையான குறைகளையும் மறைக்கிறது.
முதலில் வெளியேறு-குறியீடு ஒப்பந்தத்தை எழுதுங்கள்
ஸ்கிரிப்டுக்கு முன் ஒப்பந்தத்தை எழுதுங்கள். பூஜ்ஜிய வெளியேற்றம் என்பது தொடர்வது, ஒரு வெளியேற்றம் என்பது மீதமுள்ள தொடக்கக் கட்டளைகளைத் தவிர்ப்பது, 255 வெளியேற்றம் என்பது நிபந்தனையே இயங்க முடியவில்லை என்பது. இரண்டுக்கும் 254-க்கும் இடைப்பட்ட குறியீடுகளும் பொதுவாகத் தவிர்ப்பதைக் குறிக்கின்றன, மேலும் உதவியாளர் தோராயமான பிழைக் குறியீட்டைத் திரும்பத் தரும்போது இதை மறப்பது எளிது. கீழேயுள்ள drop-in உதவியாளரை யூனிட்டின் உண்மையான பெயருடன் இணைக்கிறது.
[Service]
ExecCondition=/usr/local/libexec/should-start-home-vpnஇயல்புநிலைப் பொருளைக் கருதுவதற்கு முன், செயலில் உள்ள யூனிட்டில் மரபுவழியாகப் பெற்ற SuccessExitStatus அல்லது stop-post அமைப்புகளைச் சரிபார்க்கவும். பின்னர் மூன்று முடிவுகளில் ஒவ்வொன்றையும் வேண்டுமென்றே சோதிக்கவும்.
வலையமைப்புக் குறிப்பு இருப்பிடத்திற்கான சான்று அல்ல
அணுகக்கூடிய ரவுட்டர் முகவரி அல்லது அறியப்பட்ட MAC சரியான வலையமைப்பைக் குறிக்கலாம், இரண்டுமே அதை நிரூபிப்பதில்லை. மற்றொரு வலையமைப்பு அதே முகவரியை மீண்டும் பயன்படுத்தலாம், ARP தரவு பழையதாக இருக்கலாம், அடையாளங்களைப் போலியாக உருவாக்கலாம். ஆய்வைக் கொள்கையுடன் ஒத்துப்போகும் மேம்பாடாகக் கருதுங்கள், அங்கீகார முடிவாக அல்ல.
நிச்சயமற்ற தன்மையின் அர்த்தத்தை முன்கூட்டியே முடிவு செய்யுங்கள். உறுதியில்லாதபோது VPN-ஐத் தொடங்குவது வெறுமனே இணைக்க முடியாத வாடிக்கையாளருக்குப் பாதுகாப்பானது; உறுதியில்லாதபோது அதைத் தவிர்ப்பது பாதுகாப்பானது அல்ல. ஆய்வை வரம்புடையதாக்குங்கள், பட்டியலில் முதன்மையானதைக் கருதுவதற்குப் பதிலாக செயலில் உள்ள இடைமுகத்தைப் படியுங்கள். தொங்கும் ஆய்வு “இல்லை” எனப் பதிலளிக்கும் ஆய்வை விட மோசமானது, ஏனெனில் யூனிட் அதற்காகக் காத்திருக்கிறது.
அந்த அனுமானங்களை யூனிட் கோப்பிற்கு அருகில் பதிவு செய்யுங்கள், அடுத்த நபர் உதவியாளர் என்ன நம்புகிறார் என்பதை அறிய. ஸ்கிரிப்டின் மேலேயுள்ள கருத்துரை அவற்றை வைக்க மிக மலிவான இடம்.
வலையமைப்புகளுக்கிடையேயான மாற்றத்தைக் கையாளுங்கள்
சேவை தொடங்கும்போது நிபந்தனை இயங்கும், பின்னர் மீண்டும் மதிப்பிடப்படுவதில்லை. மடிக்கணினி கஃபேக்குச் சென்ற பிறகும் தவிர்க்கப்பட்ட யூனிட் தவிர்க்கப்பட்டதாகவே இருக்கும், மடிக்கணினி வீடு திரும்பிய பிறகும் இயங்கும் சுரங்கப்பாதை மேலேயே இருக்கும். வலையமைப்பு மாற்றத்தின் வாழ்க்கைச் சுழற்சியைத் தனி பொறிமுறையின் மூலம் தொடக்கம் மற்றும் நிறுத்த முடிவுடன் இணைக்கவும்.
systemctl cat home-vpn.serviceநான்கு நிலைகளைச் சோதிக்கவும்: வீட்டில் தொடக்கம், வெளியில் தொடக்கம், இயங்க முடியாத ஆய்வு, யூனிட் செயலில் இருக்கும்போது வலையமைப்புகளுக்கிடையேயான மாற்றம். தவிர்ப்பதற்கான காரணத்தை இதழில் தெரியும்படி வைத்திருங்கள், வேண்டுமென்றே எடுத்த முடிவு ஒருபோதும் அங்கீகாரத் தோல்வி போல் தோன்றாதபடி. சேவைக் குறிப்பு வெளியேற்றத்தின் பொருளையும் குறைந்தபட்ச பதிப்பையும் ஆவணப்படுத்துகிறது.