ஒரே ஒரு மேலாண்மை கிளையண்ட்: உங்கள் மானிட்டர் GUI-ஐ ஏன் வெளியேற்றுகிறது
மேலாண்மை சாக்கெட் ஒரு நேரத்தில் ஒரு இணைப்பை மட்டுமே ஏற்கிறது. இரண்டாவது சந்தாதாரர் இணைக்க முடியாமல் போகிறது அல்லது கட்டளைகளை வைத்திருக்கும் கூறுகளிடமிருந்து கட்டுப்பாட்டைத் திருடுகிறது.
ஒரு டெஸ்க்டாப் GUI மேலாண்மை இணைப்பை வைத்திருக்கிறது, எனவே ஒரு கண்காணிப்பு ஸ்கிரிப்ட் தனது சொந்த இணைப்பைத் திறக்க முயல்கிறது, எதையும் படிக்கவில்லை, அல்லது அதைவிட மோசமாக, GUI கட்டளைகளுக்கு பதிலளிப்பதை நிறுத்துகிறது. வழக்கமான முடிவு டீமன் நிலையற்றது என்பதாகும். சமூக டீமனில் இந்த வரம்பு வேண்டுமென்றே உள்ளது: கட்டுப்பாட்டு இடைமுகம் ஒரு நேரத்தில் ஒரு இணைக்கப்பட்ட மேலாண்மை கிளையண்டிற்கு மட்டுமே சேவை செய்கிறது, மேலும் இந்த எண்ணுக்கும் VPN எத்தனை பயனர்களைத் தாங்க முடியும் என்பதற்கும் எந்த தொடர்பும் இல்லை.
ஒரு சாக்கெட், ஒரு வைத்திருப்பவர்
மேலாண்மை சேனல் ஒரு இணைக்கப்பட்ட கிளையண்டை மட்டுமே ஏற்கிறது. முதல் ஒன்று செயலில் இருக்கும்போது இரண்டாவது வந்தால், அது காத்திருக்கும் அல்லது மறுக்கப்படும், எந்த விருப்பத்திற்குப் பின்னாலும் இணையான சந்தாதாரர் பயன்முறை மறைந்திருக்கவில்லை. தற்போதைய வைத்திருப்பவரைத் துண்டித்தால் டீமன் அடுத்ததை ஏற்கிறது, இது இரண்டாவது சேனல் அல்ல, ஒரு கைமாற்றம்.
இது ஒவ்வொரு கூடுதல் கருவியையும் போட்டியாளராக மாற்றுகிறது. GUI இணைப்பை வைத்திருந்தால், கணக்கெடுப்பு ஸ்கிரிப்ட் இணைக்க முடியாமல் போகும் அல்லது GUI விட்டுக்கொடுத்த பிறகுதான் வெற்றி பெறும், அடுத்த மறுஇணைப்பில் இந்த வரிசை மீண்டும் நிகழும். ஸ்கிரிப்ட் முதலில் இணைந்தால், GUI அதன் கட்டுப்பாட்டுப் பாதையை இழக்கிறது, அதன் கட்டளைகள் வேலை செய்வதை நிறுத்துகின்றன. எந்தக் கருவியும் இந்த மோதலைத் தெரிவிக்கவில்லை, ஏனெனில் ஒவ்வொன்றும் தனது தோல்வியுற்ற கட்டளையை மட்டுமே பார்க்கிறது.
| What you need | Mechanism that fits | What it cannot do |
|---|---|---|
| Periodic list of connected clients | Status file written on an interval | Deliver events as they happen |
| Interactive prompts and session control | The single management connection | Serve two controllers at once |
| Multiple consumers of either | One owner process that fans out | Exist without you writing it |
எந்தக் கூறு கட்டுப்பாட்டை வைத்திருக்கிறது என்பதைத் தீர்மானியுங்கள்
இடைத்தொடர்பு சேனலுக்கு ஒரு உரிமையாளரைத் தேர்ந்தெடுத்து, இணைக்கும் ஒரே விஷயமாக அதை மட்டும் விடுங்கள். இணைப்பை நிர்வகிக்கும் GUI, அங்கீகாரக் கட்டளைகளுக்குப் பதிலளிக்கும் ஸ்கிரிப்ட் மற்றும் அமர்வுகளை முடிவுக்குக் கொண்டுவரும் கட்டுப்படுத்தி அனைத்தும் உரிமையாளர்களாகக் கணக்கிடப்படுகின்றன, ஒருவர் மட்டுமே இந்தப் பாத்திரத்தை வகிக்க முடியும்.
GUI இணைப்பை வைத்திருக்கும்போது, அதனுடன் போராடுவதற்குப் பதிலாக அந்த GUI வழங்கும் ஒருங்கிணைப்பைப் பயன்படுத்துங்கள். சாக்கெட்டுக்காக உரிமையாளருடன் போட்டியிடுவது பயனர்களுக்கு சீரற்றதாகத் தோன்றும் இடைவிட்ட தோல்விகளை உருவாக்குகிறது, பிழைதிருத்துபவர் பொதுவாக பந்தயத்தின் இரண்டாம் பாதியை மட்டுமே பார்க்கிறார். மறுதொடக்கத்திற்குப் பிறகு எந்தச் செயல்முறை முதலில் இணைகிறது என்பதைக் கவனியுங்கள், ஏனெனில் அந்த வரிசையே ஒவ்வொரு முறையும் யார் வெற்றி பெறுவார் என்பதைத் தீர்மானிக்கிறது. GUI-க்கு முன் தொடங்கும் மானிட்டர் GUI விட்டுக்கொடுக்கும் வரை சேனலை வைத்திருக்கும்.
சேகரிப்பாளர்களுக்கு நிலை ஸ்னாப்ஷாட்களைப் பயன்படுத்துங்கள்
பெரும்பாலான கண்காணிப்புக்கு ஒரு பட்டியல் தேவை, உரையாடல் அல்ல. அவ்வப்போது எழுதப்படும் நிலைக் கோப்பு கட்டுப்பாட்டு சேனலைத் தொடாமல் அதற்குப் பதிலளிக்கிறது, GUI இணைந்திருக்கும் வரை அது வேலை செய்கிறது.
status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix
இடைவெளி என்பது புத்துணர்ச்சி பட்ஜெட், எனவே டாஷ்போர்டுக்கு உண்மையில் தேவையானதற்கு அமைக்கவும், பாதுகாப்பாகத் தோன்றும் மிகச் சிறிய மதிப்புக்கு அல்ல. ஒவ்வொரு சில வினாடிகளுக்கும் எழுதப்படும் ஸ்னாப்ஷாட் மலிவானது; ஒவ்வொரு சில வினாடிகளுக்கும் கட்டுப்பாட்டு சாக்கெட்டுடன் மீண்டும் இணையும் ஸ்கிரிப்ட் மலிவானது அல்ல, ஏனெனில் ஒவ்வொரு மறுஇணைப்பும் உரிமையாளருடன் போட்டியிடுகிறது.
ஸ்னாப்ஷாட் வரலாறு அல்ல, நிகழ்வு ஊட்டமும் அல்ல. ஒரு இடைவெளிக்குள் வந்து போகும் இணைப்புகள் ஒருபோதும் தெரிவதில்லை, எனவே தன்னைத்தானே மேலெழுதும் கோப்பைக் கணக்கெடுப்பதன் மூலம் தணிக்கைத் தேவையைப் பூர்த்தி செய்ய முடியாது. பயனர் இணைந்தாரா என்பதைத் தெரிந்து கொள்ள வேண்டுமானால், ஸ்னாப்ஷாட் தவறான கருவி.
ஃபேன்-அவுட் ஒரு வடிவமைப்பு, ஒரு பயன்முறை அல்ல
பல நுகர்வோருக்கு உண்மையில் நேரடி மேலாண்மைத் தரவு தேவைப்பட்டால், சாக்கெட்டின் முன் ஒரு நம்பகமான கூறை வைத்து, கவனமாகத் தேர்ந்தெடுக்கப்பட்ட அவதானிப்புகளை மற்றவர்களுக்கு வெளியிட அனுமதியுங்கள். அந்தக் கூறே மறுஇணைப்பு, அங்கீகாரக் கட்டளைகள் மற்றும் எதை வெளிப்படுத்துவது பாதுகாப்பானது என்ற முடிவுக்கு உரிமையாளர்.
அதை வேண்டுமென்றே உருவாக்குங்கள்: எந்த வினவல்கள் அனுமதிக்கப்படுகின்றன என்பதை வரையறுக்கவும், யார் கேட்டார்கள் என்பதைப் பதிவு செய்யவும், ஃபேன்-அவுட் அடுக்கைத் தற்செயலாக தொலை கட்டுப்பாட்டு பேனலாக மாற்றுவதைத் தவிர்க்கவும். டீமனில் இயக்க எந்த பல-கிளையண்ட் பயன்முறையும் இல்லை, எந்த உள்ளமைவு வரியும் ஒன்றை உருவாக்காது. உரிமையாளரை பாதுகாப்பு எல்லையின் ஒரு பகுதியாகக் கருதுங்கள், ஏனெனில் அவரிடம் மக்களைத் துண்டிக்கக்கூடிய இடைமுகம் உள்ளது. அதை மறுதொடக்கம் செய்வது ஆவணப்படுத்தப்பட்ட மீட்புப் பாதையுடன் ஒரு வழக்கமான செயலாக இருக்க வேண்டும்.
சாக்கெட்டை ஒரு சிறப்புரிமையாகக் கருதுங்கள், அளவீடுகளாக அல்ல
மேலாண்மை இடைமுகம் பயனர்களைத் துண்டிக்க முடியும், நிலையை மாற்ற முடியும், மக்களின் பெயர்களைக் குறிப்பிடும் நிகழ்வுகளைப் படிக்க முடியும். அதன் கடவுச்சொல் கிளையண்டை அங்கீகரிக்கிறது, போக்குவரத்தை மறையாக்கம் செய்யாது, எனவே நெட்வொர்க்கில் கேட்பவர் உரையாடலைக் கவனிக்கக்கூடிய எவருக்கும் அதை வெளிப்படுத்துகிறார்.
உள்ளூர் சாக்கெட் அல்லது கடுமையாக கட்டுப்படுத்தப்பட்ட கேட்பானை விரும்புங்கள், உங்கள் சேகரிப்பான் உண்மையில் எந்தச் செயல்முறையை அணுகுகிறது என்பதைச் சரிபார்க்கவும், ஏனெனில் சேவையக தயாரிப்புகள் வெவ்வேறாக நடந்துகொள்ளும் தங்கள் சொந்த மேலாண்மை API-களுடன் வருகின்றன. தவறான டீமனை நோக்கிய சேகரிப்பான் நம்பிக்கையான ஆனால் தவறான முடிவுகளை உருவாக்குகிறது. எதையும் திருப்பித் தராத வினவலைப் பிழைதிருத்தும் முன் பாதையையும் உரிமையாளர் செயல்முறையையும் உறுதிப்படுத்துங்கள்.