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

ಜೀವನಚಕ್ರ ವೈಫಲ್ಯ ಬೇರೆ ರೀತಿ ಕಾಣುತ್ತದೆ: ಹುಕ್ ಆರಂಭವಾಗುತ್ತದೆ, ಸಹಾಯಕ ಚಲಿಸುತ್ತದೆ, ಮತ್ತು ಸಾಕೆಟ್ ಇನ್ನೂ ಅಲ್ಲಿಲ್ಲ. ಹುಕ್ನಿಂದಲೇ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಸಾಲನ್ನು ಬರೆಯಿರಿ, ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ ಮತ್ತೆ ಸೇರಿಸಿ, ಮತ್ತು ಘಟನೆಗಳನ್ನು ಕ್ರಮವಾಗಿ ಓದಿ. ಸಹಾಯಕನಿಗೆ ನಿಜವಾಗಿ ಸುರಂಗ ಬೇಕಾದಾಗ, ನಿಗದಿತ ಅವಧಿ ನಿದ್ರಿಸುವ ಬದಲು ಸಿದ್ಧತೆಯನ್ನು ಕೇಳಲು ಬಿಡಿ.

ಮೂರು ಕ್ಷೇತ್ರಗಳು ಮುಂದಿನ ವರದಿಯನ್ನು ಉಪಯುಕ್ತಗೊಳಿಸುತ್ತವೆ: ಯಾವ ಹುಕ್ ಚಲಿಸಿತು, ಯಾವ ಖಾತೆ ಬಳಸಿತು, ಮತ್ತು ಎಲ್ಲಿ ನಿಂತಿತು. ಅವು ಇಲ್ಲದೆ ಪ್ರತಿ ನಂತರದ ತನಿಖೆ ಮೊದಲಿನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ.

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