WireGuard ಹ್ಯಾಂಡ್‌ಶೇಕ್ ಇನ್ನೂ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, ಪೀರ್ ಇನ್ನೂ ಇತ್ತೀಚಿನ ಎಂಡ್‌ಪಾಯಿಂಟ್ ತೋರಿಸುತ್ತದೆ, ಆದರೂ ಅದರ ಹಿಂದಿನ ರಿಲೇ ಮೂಲಕ ಹೊಸ SSH ಸೆಷನ್ ಯಾವುದೇ ಬ್ಯಾನರ್ ಇಲ್ಲದೆ ನೇತಾಡುತ್ತದೆ. ಈ ಸಂಯೋಜನೆ ಸುರಂಗದಿಂದ ದೂರ, ಸಾಕೆಟ್ ಸ್ವೀಕರಿಸುವ ಪ್ರಕ್ರಿಯೆಯ ಕಡೆ ತೋರಿಸುತ್ತದೆ. socat ನಂತಹ ರಿಲೇ ತನ್ನದೇ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಬಜೆಟ್, ತನ್ನದೇ ಮಕ್ಕಳು ಮತ್ತು ತನ್ನದೇ ಆನುವಂಶಿಕ ಮಿತಿಗಳೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಮಾರ್ಗದಲ್ಲಿ ಕುಳಿತಿದೆ. ಕೆಳಗಿನ ನಡಿಗೆ ಕ್ಲೈಂಟ್‌ನಿಂದ ಪ್ರಾರಂಭವಾಗಿ ಇನ್ನೊಂದು ಸಾಕೆಟ್ ತೆರೆಯಲಾಗದ ಮೊದಲ ಘಟಕದಲ್ಲಿ ನಿಲ್ಲುತ್ತದೆ.

ಸಂಖ್ಯೆ ಬದಲಿಸುವ ಮೊದಲು ಮಾರ್ಗವನ್ನು ಅನುಸರಿಸಿ

ಇಡೀ ಸುರಂಗದ ಬಗ್ಗೆ ಯೋಚಿಸುವ ಬದಲು ಒಂದು ವಿಫಲ ವಿನಂತಿಯನ್ನು ಅನುಸರಿಸಿ. ಕ್ಲೈಂಟ್ ಸುರಂಗಕ್ಕೆ ಬರೆಯುತ್ತದೆ, VPN ಡೀಮನ್ ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಿ ಮಾರ್ಗದರ್ಶನ ಮಾಡುತ್ತದೆ, ಮತ್ತು ರಿಲೇ ಇನ್ನೊಂದು ಬದಿಯಲ್ಲಿ ಸ್ವೀಕರಿಸುತ್ತದೆ. ಪ್ರತಿ ಹಂತವೂ ಡಿಸ್ಕ್ರಿಪ್ಟರ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಖಾಲಿಯಾಗುವುದು ಕೊನೆಯದು.

ನೀವು ಮರುಸೃಷ್ಟಿಸಬಹುದಾದ ವಿನಂತಿಯಿಂದ ಪ್ರಾರಂಭಿಸಿ ಅದರ ಸಮಯವನ್ನು ಅಳೆಯಿರಿ. TCP ಹ್ಯಾಂಡ್‌ಶೇಕ್ ಪೂರ್ಣಗೊಂಡರೂ ಅಪ್ಲಿಕೇಶನ್ ಬ್ಯಾನರ್ ಬಾರದಿದ್ದರೆ, ರಿಲೇ ಸಾಕೆಟ್ ತೆಗೆದುಕೊಂಡು ನಂತರ ಮಗುವಿನಲ್ಲಿ ಅಥವಾ ತನ್ನ ಮೇಲ್ಮುಖ ಕಾಲಿನಲ್ಲಿ ಸಿಲುಕಿತು. ಹ್ಯಾಂಡ್‌ಶೇಕ್ ಸ್ವತಃ ಎಂದಿಗೂ ಪೂರ್ಣಗೊಳ್ಳದಿದ್ದರೆ, ಕಾರಣ ಮಾರ್ಗದರ್ಶನ, ಫೈರ್‌ವಾಲ್ ಅಥವಾ ಆಲಿಸುವವರ ಸ್ಥಿತಿ, ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಮೇಲ್ಛಾವಣಿ ಅಲ್ಲ. ಎರಡರಲ್ಲಿ ಯಾವ ಆಕಾರವನ್ನು ಕಂಡಿರಿ ಎಂದು ದಾಖಲಿಸಿ, ಏಕೆಂದರೆ ಅವು ಬೇರೆ ಬೇರೆ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಸೂಚಿಸುತ್ತವೆ.

ಕೆಲಸವನ್ನು ನಕಲಿಸುವ ನೆಗೆತಗಳನ್ನೂ ಎಣಿಸಿ. ಕವಲೊಡೆಯುವ ಆಲಿಸುವವರು ಪ್ರತಿ ಸ್ವೀಕೃತ ಸಾಕೆಟ್ ಅನ್ನು ತನ್ನದೇ ಪ್ರತಿಯನ್ನು ಇಟ್ಟುಕೊಳ್ಳುವ ಮಗುವಿಗೆ ನೀಡುತ್ತಾರೆ, ಆದ್ದರಿಂದ ನಿಜವಾದ ಒಟ್ಟು ಇಡೀ ವೃಕ್ಷದ ಗುಣಲಕ್ಷಣ, ಪೋಷಕನದು ಮಾತ್ರವಲ್ಲ.

ರಿಲೇ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದ ಮಿತಿಯನ್ನು ಓದಿ

ಮುಖ್ಯವಾದ ಏಕೈಕ ಮಿತಿ ಚಾಲಿತ ಪ್ರಕ್ರಿಯೆಯದು, ಮತ್ತು ಅದನ್ನು ಆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿದ ವಸ್ತು ನಿಗದಿಪಡಿಸಿದೆ. ಶೆಲ್‌ನಲ್ಲಿ ulimit -n ಟೈಪ್ ಮಾಡುವುದು ಶೆಲ್ ಅನ್ನು ವಿವರಿಸುತ್ತದೆ. ಸೇವಾ ನಿರ್ವಾಹಕರಿಗೆ ಅವರು ಏನನ್ನು ಅನ್ವಯಿಸಿದರು ಎಂದು ಕೇಳಿ, ನಂತರ PID ನಲ್ಲಿ ದೃಢೀಕರಿಸಿ.

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

limits ಫೈಲ್ ಮೃದು ಮತ್ತು ಕಠಿಣ ಮೇಲ್ಛಾವಣಿಗಳನ್ನು ಪ್ರಕ್ರಿಯೆ ನೋಡುವಂತೆ ಮುದ್ರಿಸುತ್ತದೆ. ಉದಾರ ಕಠಿಣ ಮೌಲ್ಯದ ಅಡಿಯಲ್ಲಿ ಕಡಿಮೆ ಮೃದು ಮೌಲ್ಯ ಎಂದರೆ ಡೀಮನ್ ತನ್ನದೇ ಮೇಲ್ಛಾವಣಿಯನ್ನು ಏರಿಸಲು ಅನುಮತಿ ಇದೆ, ಮತ್ತು ಕೆಲವು ಪ್ರಾರಂಭದಲ್ಲಿ ಹಾಗೆ ಮಾಡುತ್ತವೆ; ಸಮಾನ ಕಡಿಮೆ ಮೌಲ್ಯಗಳು ಯುನಿಟ್ ಫೈಲ್ ಮೂಲ ಎಂದರ್ಥ.

Drop-in ಗಳು ನಿಘಂಟು ಕ್ರಮದಲ್ಲಿ ಲೋಡ್ ಆಗುತ್ತವೆ ಮತ್ತು ನಂತರದ ಫೈಲ್‌ಗಳು ಗೆಲ್ಲುತ್ತವೆ, ಆದ್ದರಿಂದ systemctl cat vpn-relay.service ಏನು ಅನ್ವಯವಾಗುತ್ತದೆ ಎಂಬುದರ ಅಧಿಕೃತ ನೋಟ. ನಿರ್ವಾಹಕರು ಎಂದಿಗೂ ಓದದ ಫೈಲ್ ಸಂಪಾದಿಸುವುದು ಏರಿಸಿದ ಸಂಖ್ಯೆಗೆ ಪರಿಣಾಮವಿಲ್ಲದಿರುವ ಸಾಮಾನ್ಯ ಕಾರಣ.

ಸ್ಥಿರ ಸಮಕಾಲೀನತೆಯನ್ನು ಉಳಿಸಿಕೊಂಡ ಸ್ಥಿತಿಯಿಂದ ಬೇರ್ಪಡಿಸಿ

ಎರಡು ಪ್ರಕ್ರಿಯೆಗಳು ಸಂಬಂಧವಿಲ್ಲದ ಕಾರಣಗಳಿಂದ ಒಂದೇ ಮೇಲ್ಛಾವಣಿ ತಲುಪಬಹುದು, ಮತ್ತು ಪರಿಹಾರಗಳು ಭಿನ್ನ. ಉಪಯುಕ್ತ ಸಮಕಾಲೀನ ಸೆಷನ್‌ಗಳನ್ನು ಅನುಸರಿಸುವ ಬೇಡಿಕೆ ಸಾಮರ್ಥ್ಯದ ಪ್ರಶ್ನೆ. ಕೆಲಸ ಮುಗಿದ ನಂತರವೂ ಮುಂದುವರಿಯುವ ಬೆಳವಣಿಗೆ ಸೋರಿಕೆ ಅಥವಾ ಯಾರೂ ಮುಚ್ಚದ ಸೆಷನ್‌ಗಳ ಗುಂಪು.

ನಿಷ್ಕ್ರಿಯ ಸ್ಥಿತಿಯಲ್ಲಿ, ನಿಮ್ಮ ಸಾಮಾನ್ಯ ಉತ್ತುಂಗದಲ್ಲಿ ಮತ್ತು ಲೋಡ್ ನಿಂತ ನಂತರ ಕೆಲವು ನಿಮಿಷಗಳಲ್ಲಿ ಮತ್ತೆ ಅಳೆಯಿರಿ. ls /proc/PID/fd | wc -l ನೊಂದಿಗೆ ತೆರೆದ ನಮೂದುಗಳನ್ನು ಮೃದು ಮಿತಿಗೆ ಎದುರು ಎಣಿಸುವುದು ಅಂತರವನ್ನು ತಿಳಿಸುತ್ತದೆ, ಮತ್ತು ಮೇಲ್ಛಾವಣಿಗಿಂತ ಒಂದು-ಎರಡು ಕಡಿಮೆ ಎಣಿಕೆ ನಿಧಾನ ಮಾರ್ಗವಲ್ಲ, ಕಠಿಣ ನಿಲುಗಡೆ.

ಎಣಿಕೆ ಇಳಿಯಲು ನಿರಾಕರಿಸಿದಾಗ, ಒಟ್ಟುಗಳ ಬದಲು ಸಾಕೆಟ್ ಸ್ಥಿತಿಗಳನ್ನು ನೋಡಿ. CLOSE_WAIT ನಲ್ಲಿ ಕುಳಿತಿರುವ ಡಿಸ್ಕ್ರಿಪ್ಟರ್‌ಗಳು ಪೀರ್ ಮುಚ್ಚಿದೆ ಮತ್ತು ನಿಮ್ಮ ಕಡೆ ಎಂದಿಗೂ ಮುಚ್ಚಿಲ್ಲ ಎಂದರ್ಥ, ಇದು ಅಪ್ಲಿಕೇಶನ್ ಜೀವನಚಕ್ರದ ದೋಷ ಮತ್ತು ದೊಡ್ಡ ಮಿತಿ ಅದನ್ನು ಮುಂದೂಡುತ್ತದೆ ಮಾತ್ರ. ಮಕ್ಕಳ ಮಾದರಿಯನ್ನೂ ಮಿತಿಗೊಳಿಸಿ: ಸಮಕಾಲೀನ ಮಕ್ಕಳ ಮೇಲೆ ಯಾವುದೇ ಮೇಲ್ಮಿತಿ ಇಲ್ಲದ ಕವಲೊಡೆಯುವ ರಿಲೇ ಡಿಸ್ಕ್ರಿಪ್ಟರ್, ಪ್ರಕ್ರಿಯೆ ಸ್ಲಾಟ್ ಮತ್ತು ಮೆಮೊರಿಯನ್ನು ಒಟ್ಟಿಗೆ ಖಾಲಿ ಮಾಡುತ್ತದೆ.

ಜೀವಂತ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಹೊಸ ಮೌಲ್ಯವನ್ನು ಪರಿಶೀಲಿಸಿ

ಯುನಿಟ್ ಸಂಪಾದಿಸಿದ ನಂತರ ನಿರ್ವಾಹಕರನ್ನು ಮರುಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಸೇವೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ, ಏಕೆಂದರೆ ಕೇವಲ ಮರುಲೋಡ್ ಚಾಲಿತ ಪ್ರಕ್ರಿಯೆ ಈಗಾಗಲೇ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದ ಮಿತಿಗಳನ್ನು ಎಂದಿಗೂ ಬದಲಿಸುವುದಿಲ್ಲ. ನಿಜವಾಗಿ ಸಂಚಾರ ಸೇವೆ ಮಾಡುತ್ತಿರುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಪರಿಶೀಲಿಸಿ.

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 ಕುಸಿಯುವುದಕ್ಕಿಂತ ಪ್ರತ್ಯೇಕ ಘಟನೆ. ರಿಲೇ ಚಕ್ರ ಸಾಗುತ್ತಿರುವಾಗ ಸುರಂಗ ಮೇಲಿರುವಂತೆ ಬದಲಾವಣೆಯನ್ನು ಕ್ರಮಗೊಳಿಸಿ, ಮತ್ತು ಅದನ್ನು ದಾಟುವ ದೀರ್ಘಾವಧಿ ಸೆಷನ್ ಇರುವವರಿಗೆ ಎಚ್ಚರಿಕೆ ನೀಡಿ.

ಹಿಂಪಡೆಯುವಿಕೆ ಎಂದರೆ ಹಿಂದಿನ ಯುನಿಟ್ ಫೈಲ್ ಮತ್ತು ಇನ್ನೊಂದು ಮರುಪ್ರಾರಂಭ, ಮತ್ತು ಆ ಫೈಲ್ ಹೊಸ ಮೌಲ್ಯ ಒಂದು ಕೆಲಸದ ದಿನ ಉಳಿಯುವವರೆಗೆ ಅಲ್ಲಿಯೇ ಇರುತ್ತದೆ. ನಂತರ ಮೊದಲು ವಿಫಲವಾದ ವಿನಂತಿಯೊಂದಿಗೆ ಕುಣಿಕೆಯನ್ನು ಮುಚ್ಚಿ: ರಿಲೇ ಮೂಲಕ ಒಂದು ಹೊಸ SSH ಸೆಷನ್, ಮುಖ್ಯವಾಗಲು ಸಾಕಷ್ಟು ಉದ್ದದ ಒಂದು ವರ್ಗಾವಣೆ, ಮತ್ತು ನಿಷ್ಕ್ರಿಯ ಮಟ್ಟಕ್ಕೆ ಮರಳುವ ಡಿಸ್ಕ್ರಿಪ್ಟರ್ ಎಣಿಕೆ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು