OpenVPN ஹூக் ஸ்கிரிப்ட் இப்போது உருவாக்கிய சுரங்கப்பாதையைப் பயன்படுத்த முடியுமா?
OpenVPN அதன் சொந்தத் தொடக்கத்திற்குள் ஹூக்குகளை இயக்குகிறது, எனவே சுரங்கப்பாதை தேவைப்படும் ஸ்கிரிப்ட் அதைக் காத்திருக்கும் சுரங்கப்பாதையைக் காத்திருக்கிறது. வேலையைப் பிரித்து நிகழ்வின்படி ஹூக்கைத் தேர்ந்தெடுக்கவும்.
ஒரு ஹூக் ஸ்கிரிப்ட் சுரங்கப்பாதையின் மறுபுறத்தை அடைகிறதா என்பது மூன்று நிபந்தனைகளைப் பொறுத்தது: அது எந்த நிகழ்வுடன் இணைக்கப்பட்டுள்ளது, ஸ்கிரிப்ட் இயங்கும் போது OpenVPN இன்னும் அதன் தொடக்க வரிசைக்குள் உள்ளதா, மற்றும் வேலை அந்த வரிசையிலிருந்து பிரிக்கப்பட்டுள்ளதா. பெரும்பாலான ஸ்கிரிப்டுகள் மூன்றாவதில் தோல்வியடைகின்றன. தூக்கத்தைச் சேர்ப்பது வாழ்க்கைச் சுழற்சிப் பிரச்சினையை நேரப் பிரச்சினையாகக் கருதுகிறது, அது திசைதிருப்பும் அளவுக்கு அடிக்கடி வேலை செய்கிறது.
முதலில் நிகழ்வை முடிவு செய்யுங்கள், பின்னர் வேலையைத் தள்ளிப்போடும் முறை, பின்னர் தள்ளிப்போட்ட வேலை இயங்கும் இடம். இந்த மூன்று முடிவுகளும் சுயாதீனமானவை, அவற்றைக் கலப்பதுதான் இரண்டு வரி ஹூக்கை ஒரு முழு மதியமாக மாற்றுகிறது.
ஹூக் தன்னைக் காத்திருக்கும் சுரங்கப்பாதையை ஏன் காத்திருக்கிறது
OpenVPN தன் ஹூக்களை ஒத்திசைவாக அழைக்கிறது, பாக்கெட்டுகளை நகர்த்தும் அதே செயல்முறைக்குள். tun அல்லது tap சாதனம் இருக்கும் போது ஆனால் எந்த வழியும் சேர்க்கப்படுவதற்கு முன் up இயங்குகிறது, வழிகளுக்குப் பிறகு route-up இயங்குகிறது; அந்த இரு தருணங்களும் எதிர்த் தரப்பு பதிலளிக்கும் என்று உறுதியளிக்கவில்லை. எந்த ஹூக்கின் ஸ்கிரிப்டும் இயங்கிக்கொண்டிருக்கும் வரை டீமன் அனுப்பவில்லை, எனவே சுரங்கப்பாதை வழியாகப் போக்குவரத்து செல்லும் என்று எதிர்பார்க்கும் கட்டளை அந்தக் கட்டளைக்காகக் காத்திருக்கும் சுரங்கப்பாதையைக் காத்திருக்கிறது. இந்த வட்டமான காத்திருப்பே கைமுறையாக இயக்குவது வெற்றி பெறவும் ஹூக் நேரம் முடிவதற்கும் காரணம்.
வெளிப்படையான தீர்வு, அதாவது சில வினாடிகள் தூங்குவது, சில நேரங்களில் வேலை செய்கிறது ஏனெனில் தொலை முனை தானாகவே எழுந்தது, தூக்கம் ஏதையோ சரிசெய்ததால் அல்ல. தயார்நிலையைக் கேட்கும் உதவியாளர் வேறு பதில்: ஹூக் திரும்புகிறது, அனுப்புதல் தொடங்குகிறது, உதவியாளர் தேவையானதை அது உண்மையில் இருக்கும் போது பெறுகிறார்.
வசதியை விட நிகழ்வின்படி ஹூக்கைத் தேர்ந்தெடுக்கவும்
சாதனம் மட்டும் தேவைப்படும் வேலையில் up இணைக்கவும், வழிகள் தேவைப்படும் வேலையில் route-up, மேலும் client-connect மற்றும் client-disconnect ஐ சேவையகப் பக்கத்தில் ஒவ்வொரு வாடிக்கையாளருக்குமான பணிகளுக்காக வைத்திருங்கள். துண்டிப்பின் போது சுத்தம் இரண்டு முறை இயங்குவதைத் தாங்க வேண்டும், ஏனெனில் நிலையான இடைமுகம் வழியாக மீண்டும் இணைவது முழுமையான மறுதொடக்கத்தின் அதே வரிசையைப் பின்பற்றுவதில்லை. சேவையகத்தில், டீமன் தொடங்கும் போது அல்ல, வாடிக்கையாளர் அங்கீகரிக்கப்படும் போது client-connect இயங்குகிறது, அங்கு தர்க்கத்தை நகர்த்துவதற்கு முன் அதை உறுதிப்படுத்துவது மதிப்புள்ளது. வேலை ஒரு இணைப்புக்குப் பதிலாக சேவையின் வாழ்க்கைச் சுழற்சிக்கு உரியதெனில், systemd அலகு எந்த ஹூக்கையும் விட சிறந்த வீடு.
ஹூக் கட்டளைகளை டீமன் நேரடியாக இயக்குகிறது, இடையில் ஷெல் இல்லாமல், எனவே up வரியில் உள்ள ifconfig_remote எழுத்துப்பூர்வ உரையாக வருகிறது. கட்டளையை வெளிப்படையான ஷெல்லில் மடிக்கவும், அல்லது தர்க்கத்தை சூழலைப் படிக்கும் ஸ்கிரிப்டில் வைக்கவும். ipchange தன் சொந்த வாதங்களைச் சேர்க்கும் ஒரு கட்டளை: அது கட்டளைக்கு முகவரியையும் துறையையும் வழங்குகிறது, எனவே எதற்கும் எழுதப்படாத ஸ்கிரிப்ட் எதிர்பாராத இரண்டைக் காண்கிறது.
வேலையைப் பிரிக்க மூன்று வழிகள்
முதல் விருப்பம் ஹூக்கின் உள்ளிருந்து உதவியாளரைப் பின்னணிக்கு அனுப்புவது: setsid அல்லது systemd-run --scope மூலம் அதைத் தொடங்கி, மரபுரிமையாகப் பெற்ற விவரிப்பான்களை மூடி, உடனடியாக பூஜ்ஜியத்துடன் வெளியேறுங்கள். இரண்டாவது, ஹூக் ஒரு சிறிய நிலைக் கோப்பை எழுதி systemd டைமர் அல்லது பாதை அலகு அதன் மேல் செயல்பட அனுமதிப்பது, இது ஹூக்கை எளிமையாக வைத்து மீண்டும் முயற்சி கொள்கையை பதிவுகள் உள்ள இடத்தில் வைக்கிறது. மூன்றாவது, ஹூக்கை முற்றிலும் விட்டுவிட்டு வேலையை VPN சேவைக்குப் பின் வரிசைப்படுத்தப்பட்ட அலகுக்கு நகர்த்துவது, வேலை எந்த வகையிலும் ஒவ்வொரு இணைப்புக்கும் உரியதல்ல என்றால் இதுவே சரியான பதில். மூன்றும் ஒரு விதியைப் பங்கிடுகின்றன: சுரங்கப்பாதை தேவைப்படும் முன் ஹூக் திரும்ப வேண்டும்.
எதைத் தேர்ந்தெடுத்தாலும், உதவியாளரை இடம்பொட்டென்ட் மற்றும் கண்காணிக்கக்கூடியதாக ஆக்குங்கள். இரண்டு ஒன்றுடன் ஒன்று மேற்படியும் அழைப்புகள் ஒரே மீளமுடியாத செயலை இரண்டு முறை இயக்கக்கூடாது, தோல்வியடையும் உதவியாளர் மனிதர் படிக்கக்கூடிய ஒன்றை விட்டுச் செல்ல வேண்டும்.
சாண்ட்பாக்ஸ் தோல்விகளை வாழ்க்கைச் சுழற்சி தோல்விகளிலிருந்து பிரிக்கவும்
ஒரு ஸ்கிரிப்ட் root கட்டளைத் தூண்டலில் இருந்து இயங்கி சேவையாகத் தோல்வியடையும் போது, காரணம் பொதுவாக வலையமைப்பு அல்ல, சாண்ட்பாக்ஸ். கட்டுப்படுத்தும் ProtectHome, படிக்க-மட்டும் ProtectSystem, அல்லது இல்லாத பணித் தரவகம் ஸ்கிரிப்டையோ அதன் தரவையோ அணுக முடியாததாக்கலாம், SELinux புரவலனில் கோப்புக்கு இயக்கத்தை அனுமதிக்கும் சூழலும் தேவை. systemctl cat openvpn-server@server மூலம் அலகையும் journalctl -u openvpn-server@server -n 80 மூலம் இதழையும் படித்து, பின்னர் இணைப்பு நேரம் முடிவதற்குப் பதிலாக அனுமதி அல்லது சூழல் பிழையைத் தேடுங்கள். சாண்ட்பாக்ஸை முடக்குவது முதல் அல்ல, கடைசி நடவடிக்கையாக இருக்க வேண்டும்.
வாழ்க்கைச் சுழற்சி தோல்வி வேறுவிதமாகத் தெரிகிறது: ஹூக் தொடங்குகிறது, உதவியாளர் இயங்குகிறார், சாக்கெட் இன்னும் அங்கு இல்லை. ஹூக்கிலிருந்தே நேர முத்திரையுடன் ஒரு வரியை எழுதுங்கள், துண்டித்து மீண்டும் இணைக்கவும், நிகழ்வுகளை வரிசையாகப் படிக்கவும். உதவியாளருக்கு உண்மையில் சுரங்கப்பாதை தேவைப்பட்டால், நிலையான நேரம் தூங்குவதற்குப் பதிலாக தயார்நிலையைக் கேட்க அனுமதியுங்கள்.
மூன்று புலங்கள் அடுத்த அறிக்கையைப் பயனுள்ளதாக்குகின்றன: எந்த ஹூக் இயங்கியது, எந்தக் கணக்கைப் பயன்படுத்தியது, எங்கு நின்றது. அவை இல்லாமல் ஒவ்வொரு பிந்தைய விசாரணையும் முதலிலிருந்து தொடங்குகிறது.