WireGuard கைக்குலுக்கல் இன்னும் முடிகிறது, peer இன்னும் சமீபத்திய endpoint-ஐக் காட்டுகிறது, ஆனாலும் அதன் பின்னால் உள்ள ரிலே வழியாகப் புதிய SSH அமர்வு எந்த பேனரும் இல்லாமல் தொங்குகிறது. அந்தக் கலவை சுரங்கப்பாதையிலிருந்து விலகி, socket-ஐ ஏற்கும் செயல்முறையை நோக்கிக் காட்டுகிறது. socat போன்ற ரிலே தனது சொந்த விவரிப்பான் பட்ஜெட், தனது சொந்தக் குழந்தைகள், தனது சொந்த மரபுவழி வரம்புகளுடன் பயன்பாட்டுப் பாதையில் அமர்கிறது. கீழேயுள்ள நடை வாடிக்கையாளரிடம் தொடங்கி, மற்றொரு socket-ஐத் திறக்க முடியாத முதல் பகுதியில் நிற்கிறது.

எண்ணை மாற்றுவதற்கு முன் பாதையைப் பின்பற்றுங்கள்

முழு சுரங்கப்பாதையைப் பற்றிச் சிந்திப்பதற்குப் பதிலாக ஒரு தோல்வியடைந்த கோரிக்கையைப் பின்பற்றுங்கள். வாடிக்கையாளர் சுரங்கப்பாதையில் எழுதுகிறார், VPN டீமன் மறைகுறியாக்கி வழிமாற்றுகிறது, ரிலே மறுபக்கத்தில் ஏற்கிறது. ஒவ்வொரு படியும் விவரிப்பான்களை உட்கொள்கிறது, பொதுவாகத் தீர்வது கடைசியானது.

நீங்கள் மீண்டும் உருவாக்கக்கூடிய கோரிக்கையுடன் தொடங்கி அதன் நேரத்தை அளவிடுங்கள். TCP கைக்குலுக்கல் முடிந்தும் பயன்பாட்டுப் பேனர் வரவில்லை என்றால், ரிலே socket-ஐ எடுத்துவிட்டு பின்னர் ஒரு குழந்தையில் அல்லது அதன் மேல்நோக்கு காலில் சிக்கியது. கைக்குலுக்கலே ஒருபோதும் முடியாவிட்டால், காரணம் வழிமாற்றம், ஃபயர்வால் அல்லது கேட்பவரின் நிலை, விவரிப்பான் உச்சவரம்பு அல்ல. இரண்டு வடிவங்களில் எதைக் கண்டீர்கள் எனப் பதிவு செய்யுங்கள், ஏனெனில் அவை வெவ்வேறு செயல்முறைகளைக் காட்டுகின்றன.

வேலையை நகலெடுக்கும் தாண்டல்களையும் எண்ணுங்கள். கிளைக்கும் கேட்பவர் ஏற்கப்பட்ட ஒவ்வொரு socket-ஐயும் தனது சொந்த நகலை வைத்திருக்கும் குழந்தைக்கு வழங்குகிறது, எனவே உண்மையான மொத்தம் முழு மரத்தின் பண்பு, பெற்றோரின் மட்டுமல்ல.

ரிலே மரபுவழியாகப் பெற்ற வரம்பைப் படியுங்கள்

முக்கியமான ஒரே வரம்பு இயங்கும் செயல்முறைக்குரியது, அதை அந்தச் செயல்முறையைத் தொடங்கியவை நிர்ணயித்தன. ஷெல்லில் ulimit -n எனத் தட்டச்சு செய்வது ஷெல்லை விவரிக்கிறது. சேவை மேலாளரை என்ன பயன்படுத்தினார் எனக் கேட்டு, பின்னர் PID-இல் உறுதிப்படுத்துங்கள்.

systemctl show -p MainPID -p LimitNOFILE vpn-relay.service
cat /proc/$(systemctl show -p MainPID --value vpn-relay.service)/limits

limits கோப்பு மென்மையான மற்றும் கடினமான உச்சவரம்புகளை செயல்முறை பார்ப்பதைப் போல அச்சிடுகிறது. தாராளமான கடின மதிப்பின் கீழ் தாழ்ந்த மென்மையான மதிப்பு என்பது டீமனுக்குத் தனது உச்சவரம்பை உயர்த்த அனுமதி உண்டு என்பதாகும், சில தொடக்கத்தில் அவ்வாறு செய்கின்றன; சமமான தாழ்ந்த மதிப்புகள் என்பது unit கோப்பே மூலம் என்பதாகும்.

Drop-in கோப்புகள் அகராதி வரிசையில் ஏற்றப்படுகின்றன, பிந்தைய கோப்புகள் வெல்கின்றன, எனவே systemctl cat vpn-relay.service எது பொருந்துகிறது என்பதற்கான அதிகாரப்பூர்வப் பார்வை. மேலாளர் ஒருபோதும் படிக்காத கோப்பைத் திருத்துவதே உயர்த்தப்பட்ட எண்ணுக்கு எந்த விளைவும் இல்லாததற்கான பொதுவான காரணம்.

நிலையான ஒருமித்தன்மையைத் தக்கவைக்கப்பட்ட நிலையிலிருந்து பிரிக்கவும்

இரண்டு செயல்முறைகள் தொடர்பில்லாத காரணங்களுக்காக ஒரே உச்சவரம்பை அடையலாம், தீர்வுகள் வேறுபடுகின்றன. பயனுள்ள ஒருமித்த அமர்வுகளைப் பின்தொடரும் தேவை திறன் கேள்வி. வேலை முடிந்த பின்னும் தொடரும் வளர்ச்சி ஒரு கசிவு அல்லது யாரும் மூடாத அமர்வுகளின் தொகுப்பு.

செயலற்ற நிலையில், உங்கள் வழக்கமான உச்சத்தில், சுமை நின்ற சில நிமிடங்களுக்குப் பின் மீண்டும் அளவிடுங்கள். ls /proc/PID/fd | wc -l மூலம் திறந்த பதிவுகளை மென்மையான வரம்புக்கு எதிராக எண்ணுவது இடைவெளியைச் சொல்லும், உச்சவரம்புக்கு ஒன்று அல்லது இரண்டு குறைவான எண்ணிக்கை மெதுவான பாதை அல்ல, கடின நிறுத்தம்.

எண்ணிக்கை குறைய மறுக்கும்போது, மொத்தங்களை அல்ல, socket நிலைகளைப் பாருங்கள். CLOSE_WAIT-இல் அமர்ந்திருக்கும் விவரிப்பான்கள் peer மூடியது, உங்கள் பக்கம் ஒருபோதும் மூடவில்லை என்பதாகும், இது பயன்பாட்டு வாழ்க்கைச் சுழற்சிக் குறைபாடு; பெரிய வரம்பு அதைத் தள்ளிப்போடுகிறது மட்டுமே. குழந்தை மாதிரியையும் வரம்புபடுத்துங்கள்: ஒரே நேரக் குழந்தைகளுக்கு உச்சவரம்பு இல்லாத கிளைக்கும் ரிலே விவரிப்பான்கள், செயல்முறை இடங்கள், நினைவகம் ஆகியவற்றை ஒருசேரத் தீர்க்கிறது.

நேரடி செயல்முறையில் புதிய மதிப்பைச் சரிபார்க்கவும்

unit-ஐத் திருத்திய பின் மேலாளரை மீண்டும் ஏற்றி சேவையை மீண்டும் தொடங்குங்கள், ஏனெனில் மீண்டும் ஏற்றுவது மட்டும் இயங்கும் செயல்முறை ஏற்கனவே மரபுவழியாகப் பெற்ற வரம்புகளை ஒருபோதும் மாற்றாது. உண்மையில் போக்குவரத்தை வழங்கும் செயல்முறையில் சரிபார்க்கவும்.

systemctl daemon-reload
systemctl restart vpn-relay.service
awk '/Max open files/ {print}' /proc/$(systemctl show -p MainPID --value vpn-relay.service)/limits
ss -tnp state established '( sport = :2222 )' | wc -l

awk வரி புதிய இணையைத் திருப்பித் தருகிறது; இன்னும் பழையதைக் காட்டினால், நீங்கள் திருத்திய drop-in ஏற்றப்படுவது அல்ல. ss எண்ணிக்கை உங்கள் பணிச்சுமை சரிபார்ப்பு, எனவே எதிர்பார்க்கும் அமர்வு எண்ணிக்கையைத் திறந்து அது உயர்வதைப் பாருங்கள். அந்த அமர்வுகள் மூடிய பின்னும் உயர்ந்துகொண்டே இருந்தால் வரம்பே முழுப் பிரச்சினை அல்ல.

எந்தப் பெரிய உயர்விலும் ஒரு எச்சரிக்கை உண்டு. select() மூலம் வாக்கெடுப்பு செய்யும் பயன்பாடுகள் FD_SETSIZE-க்கு மேலான விவரிப்பான்களைக் கண்காணிக்க முடியாது, இது வழக்கமான கட்டுமானங்களில் 1024, எனவே அதற்கு மேல் உயர்த்தப்பட்ட உச்சவரம்பு தொடர்பற்றதாகத் தோன்றும் தோல்விகளை உருவாக்கலாம். systemd செயலாக்கக் குறிப்பு அது தொடங்கும் சேவைகளுக்கு அதே எச்சரிக்கையைக் கொண்டுள்ளது.

மறுதொடக்கத்தைச் சுரங்கப்பாதையின் கிடைக்கும் நிலையிலிருந்து விலக்கி வையுங்கள்

ரிலேவை மீண்டும் தொடங்கினால் அதன் செயலில் உள்ள அமர்வுகள் விழும், அது VPN கீழே போவதிலிருந்து தனி நிகழ்வு. ரிலே சுழல்கையில் சுரங்கப்பாதை மேலே இருக்கும்படி மாற்றத்தை வரிசைப்படுத்தி, அதைக் கடக்கும் நீண்ட அமர்வு உள்ளவர்களை எச்சரியுங்கள்.

பின்னிழுத்தல் என்பது முந்தைய unit கோப்பு மற்றும் மற்றொரு மறுதொடக்கம், புதிய மதிப்பு ஒரு வேலை நாளைத் தாண்டும் வரை அந்தக் கோப்பு தனது இடத்தில் இருக்கும். பின்னர் ஆரம்பத்தில் தோல்வியடைந்த கோரிக்கையுடன் சுழற்சியை மூடுங்கள்: ரிலே வழியாக ஒரு புதிய SSH அமர்வு, முக்கியத்துவம் பெறும் அளவுக்கு நீண்ட ஒரு பரிமாற்றம், மற்றும் செயலற்ற நிலைக்குத் திரும்பும் விவரிப்பான் எண்ணிக்கை.

தொடர்புடைய கட்டுரைகள்