ਲੈਪਟਾਪ ਜਾਗਣ ਤੋਂ ਬਾਅਦ OpenVPN ਕਿਉਂ ਮਰ ਜਾਂਦਾ ਹੈ?
ਸਲੀਪ OpenVPN ਸੈਸ਼ਨ ਨੂੰ ਮਾਰ ਸਕਦੀ ਹੈ ਅਤੇ tun0 ਪਿੱਛੇ ਛੱਡ ਸਕਦੀ ਹੈ। ਟਨਲ ਦੀ ਜਾਂਚ ਕਰੋ, ਫਿਰ ਡਿਵਾਈਸ ਨਹੀਂ, systemd ਸਲੀਪ ਹੁੱਕ ਤੋਂ ਯੂਨਿਟ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ।
ਮਸ਼ੀਨ ਨੂੰ ਸਲੀਪ ਵਿੱਚ ਪਾਓ, ਮੁੜ ਜਗਾਓ, ਅਤੇ ਫਿਰ ਕਿਸੇ ਵੀ ਕਨਫਿਗਰੇਸ਼ਨ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਕ੍ਰਮ ਵਿੱਚ ਤਿੰਨ ਚੀਜ਼ਾਂ ਦੀ ਜਾਂਚ ਕਰੋ: ਕੀ tun0 ਅਜੇ ਵੀ ਮੌਜੂਦ ਹੈ, ਕੀ ਅੰਦਰੂਨੀ ਪਤੇ ਦਾ ਰਸਤਾ ਅਜੇ ਵੀ ਇਸਨੂੰ ਚੁਣਦਾ ਹੈ, ਅਤੇ ਕੀ ਸਰਵਰ ਅਜੇ ਵੀ ਇਸ ਪੀਅਰ ਨੂੰ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ। ਜੋ ਡਿਵਾਈਸ ਸਲੀਪ ਤੋਂ ਬਚਦੀ ਹੈ ਜਦੋਂ ਕਿ ਰਸਤਾ ਕਿਤੇ ਹੋਰ ਦਿਸਦਾ ਹੈ, ਉਹ ਬਚਿਆ ਅਵਸ਼ੇਸ਼ ਹੈ, ਟਨਲ ਨਹੀਂ। ਜਦੋਂ ਰਸਤਾ ਸਹੀ ਹੋਵੇ ਅਤੇ ਫਿਰ ਵੀ ਟ੍ਰੈਫਿਕ ਮਰ ਜਾਵੇ, ਤਾਂ ਖਰਾਬੀ ਟਨਲ ਦੇ ਉੱਪਰ ਹੈ ਅਤੇ ਕਲਾਇੰਟ ਨੂੰ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਇਹ ਨਹੀਂ ਬਦਲੇਗਾ। ਮੁੜ ਸ਼ੁਰੂ ਕਰਨ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰਨ ਦਾ ਅਰਥ ਤਾਂ ਹੀ ਹੈ ਜਦੋਂ ਹੱਥੀ ਜਾਂਚ ਦੱਸ ਦੇਵੇ ਕਿ ਇਹਨਾਂ ਤਿੰਨਾਂ ਵਿੱਚੋਂ ਕਿਹੜੀ ਸਥਿਤੀ ਤੁਹਾਡੇ ਕੋਲ ਹੈ।
ip -br address show tun0
ip route get 10.20.0.10
journalctl -u openvpn-client@office -b --no-pager | tail -30
ਸਵੈਚਾਲਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਜਾਗਣ ਦੀ ਸਥਿਤੀ ਦੁਹਰਾਓ
ਸਲੀਪ ਡਿਵਾਈਸ ਹਟਾਉਣ ਨਾਲੋਂ ਵੱਧ ਵਾਰ ਐਨਕ੍ਰਿਪਟਿਡ ਸੈਸ਼ਨ ਖਤਮ ਕਰਦੀ ਹੈ। ਜੋ UDP ਪ੍ਰਵਾਹ ਟਨਲ ਨੂੰ ਜੀਵਤ ਰੱਖਦਾ ਸੀ ਉਹ ਰੁਕ ਜਾਂਦਾ ਹੈ, ਸਰਵਰ ਪੀਅਰ ਨੂੰ ਸੁੱਟ ਸਕਦਾ ਹੈ, ਅਤੇ ਕਲਾਇੰਟ ਜਾਂ ਤਾਂ ਇਹ ਵੇਖ ਕੇ ਮੁੜ ਜੁੜ ਜਾਂਦਾ ਹੈ ਜਾਂ ਪਿੱਛੇ ਕੁਝ ਨਾ ਹੋਣ ਵਾਲਾ ਇੰਟਰਫੇਸ ਰੱਖ ਲੈਂਦਾ ਹੈ। ਸਿਰਫ਼ ਇੰਟਰਫੇਸ ਦੀ ਜਾਂਚ ਬਹੁਤ ਘੱਟ ਸਾਬਤ ਕਰਦੀ ਹੈ, ਕਿਉਂਕਿ ਪੁਰਾਣਾ ਡਿਵਾਈਸ ਕੰਮ ਕਰਦੇ ਡਿਵਾਈਸ ਵਰਗਾ ਹੀ ਦਿਸਦਾ ਹੈ ਜਦ ਤੱਕ ਪੈਕਟਾਂ ਨੂੰ ਇਸ ਵਿੱਚੋਂ ਲੰਘਣਾ ਨਹੀਂ ਪੈਂਦਾ। ਰਸਤਾ ਖੋਜ ਅਤੇ ਟਨਲ ਰਾਹੀਂ ਇੱਕ ਅਸਲੀ ਬੇਨਤੀ ਚਲਾਓ, ਫਿਰ ਜਾਗਣ ਦੇ ਪਲ ਦੇ ਆਸਪਾਸ ਦਾ ਜਰਨਲ ਪੜ੍ਹੋ।
ਜੇ ਕਲਾਇੰਟ ਆਪਣੇ ਆਪ ਵਾਪਸ ਆ ਜਾਵੇ, ਤਾਂ ਹੁੱਕ ਭਰੋਸੇ ਦੀ ਥਾਂ ਵਾਧੂ ਝੰਜਟ ਪਾਉਂਦਾ ਹੈ। ਜੇ ਇਹ ਕਦੇ ਠੀਕ ਨਾ ਹੋਵੇ, ਤਾਂ ਸਵੈਚਾਲਨ ਹੀ ਇਮਾਨਦਾਰ ਹੱਲ ਹੈ।
systemd ਸਲੀਪ ਹੁੱਕ ਅਸਲ ਵਿੱਚ ਕਿੱਥੇ ਰਹਿੰਦਾ ਹੈ
ਕਈ ਪੁਰਾਣੀਆਂ ਗਾਈਡਾਂ /etc/pm/sleep.d ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀਆਂ ਹਨ, ਜੋ pm-utils ਦੀ ਮਾਲਕੀ ਵਾਲੀ ਡਾਇਰੈਕਟਰੀ ਹੈ ਅਤੇ systemd-ਅਧਾਰਿਤ ਸਲੀਪ ਇਸ ਨਾਲ ਕਦੇ ਸਲਾਹ ਨਹੀਂ ਲੈਂਦੀ। systemd ਹੁੱਕ /usr/lib/systemd/system-sleep/ ਅਤੇ /etc/systemd/system-sleep/ ਤੋਂ ਪੜ੍ਹਦਾ ਹੈ, ਪਹਿਲਾਂ ਪੜਾਅ ਅਤੇ ਫਿਰ ਕਾਰਵਾਈ ਦਿੰਦਾ ਹੈ, ਇਸ ਲਈ pre ਅਤੇ post ਹੀ ਅਜਿਹੇ ਮੁੱਲ ਹਨ ਜਿਨ੍ਹਾਂ ਉੱਤੇ ਹੁੱਕ ਸ਼ਾਖਾ ਪਾਉਂਦਾ ਹੈ। ਪੈਕੇਜ ਕੀਤੀ ਫਾਈਲ ਨੂੰ ਸੋਧਣ ਦੀ ਥਾਂ ਸਥਾਨਕ ਕਾਪੀ /etc ਹੇਠ ਰੱਖੋ, ਅਤੇ ਯਾਦ ਰੱਖੋ ਕਿ ਸਕ੍ਰਿਪਟ ਤਬਦੀਲੀ ਦੇ ਵਿਚਕਾਰ root ਵਜੋਂ ਚੱਲਦੀ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਜਲਦੀ ਵਾਪਸ ਆਉਣਾ ਚਾਹੀਦਾ ਹੈ।
#!/bin/sh
case "$1" in
post)
systemctl --no-block try-restart [email protected]
;;
esac
exit 0
try-restart ਯੂਨਿਟ ਨੂੰ ਸਿਰਫ਼ ਤਦ ਛੂਹਦਾ ਹੈ ਜਦੋਂ ਉਹ ਪਹਿਲਾਂ ਹੀ ਸਰਗਰਮ ਹੋਵੇ, ਇਸ ਲਈ ਜੋ ਟਨਲ ਤੁਸੀਂ ਜਾਣਬੁੱਝ ਕੇ ਬੰਦ ਕੀਤੀ ਸੀ ਉਹ ਜਾਗਣ ਦੌਰਾਨ ਵੀ ਬੰਦ ਰਹਿੰਦੀ ਹੈ। --no-block ਹੁੱਕ ਨੂੰ ਕਲਾਇੰਟ ਦੀ ਗੱਲਬਾਤ ਦੌਰਾਨ ਉਡੀਕ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਜੋ ਤਦ ਮਹੱਤਵਪੂਰਨ ਹੈ ਜਦੋਂ ਨੈੱਟਵਰਕ ਅਜੇ ਉੱਪਰ ਨਾ ਹੋਵੇ। ਦੋਵੇਂ ਫਲੈਗ ਮਿਲ ਕੇ ਅਜਿਹੇ ਹੁੱਕ ਦਾ ਅਰਥ ਹਨ ਜੋ ਪੂਰੇ ਜਾਗਣ ਕ੍ਰਮ ਨੂੰ ਰੋਕਣ ਦੀ ਥਾਂ ਚੁੱਪਚਾਪ ਅਸਫਲ ਹੁੰਦਾ ਹੈ। ਜਦੋਂ ਯੂਨਿਟ ਪਹਿਲਾਂ ਹੀ ਬੰਦ ਹੋਵੇ ਤਾਂ ਕੁਝ ਵੀ ਨਹੀਂ ਹੁੰਦਾ, ਜੋ ਉੱਥੇ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਉਹੀ ਨਤੀਜਾ ਹੈ।
ਸੇਵਾ ਬਹਾਲ ਕਰੋ, tun0 ਨੂੰ ਇਕੱਲਾ ਛੱਡੋ
tun0 ਨੂੰ ਹੱਥੀਂ ਹੇਠਾਂ ਲਾਹੁਣ ਨਾਲ ਡੀਮਨ ਉਸ ਇੰਟਰਫੇਸ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦਾ ਰਹਿ ਜਾਂਦਾ ਹੈ ਜੋ ਹੁਣ ਉਸਦੀ ਨਹੀਂ, ਅਤੇ ਅਗਲੀ ਸਥਿਤੀ ਤਬਦੀਲੀ ਉਲਝਾਉਣ ਵਾਲੀਆਂ ਗਲਤੀਆਂ ਪੈਦਾ ਕਰਦੀ ਹੈ। ਇੰਟਰਫੇਸ ਦੀ ਥਾਂ ਸੇਵਾ ਜਾਂ ਉਸਦੀ ਕਨੈਕਸ਼ਨ ਪਰੋਫਾਈਲ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਓ; ਪਹਿਲਾਂ ਯੂਨਿਟ ਦਾ ਸਹੀ ਨਾਮ ਜਾਂਚੋ, ਕਿਉਂਕਿ ਡਿਸਟਰੀਬਿਊਸ਼ਨ ਪੈਕੇਜ, OpenVPN 3 ਅਤੇ NetworkManager ਸਾਰੇ ਵੱਖਰੇ ਚੁਣਦੇ ਹਨ। NetworkManager ਪਰੋਫਾਈਲ ਤਦ ਵਾਪਸ ਆਉਂਦੀ ਹੈ ਜਦੋਂ ਉਹ ਕਨੈਕਸ਼ਨ ਮੁੜ ਚੱਕਰ ਲਾਇਆ ਜਾਂਦਾ ਹੈ, ਇਸ ਲਈ systemd ਯੂਨਿਟ ਉੱਥੇ ਨਿਸ਼ਾਨਾ ਨਹੀਂ। ਤੰਤਰ ਜੋ ਵੀ ਹੋਵੇ, ਇਹ ਉਹੀ ਕਾਰਵਾਈ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ ਜੋ ਤੁਸੀਂ ਹੱਥੀਂ ਪਰਖੀ ਸੀ।
ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਉਹਨਾਂ ਰਸਤਿਆਂ ਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ ਨੇ ਜੁੜਦਿਆਂ ਧੱਕੇ ਸਨ। ਬਹੁਤੇ ਜਾਗਣ ਇਹੀ ਚਾਹੁੰਦੇ ਹਨ। ਜਿਸ ਮਸ਼ੀਨ ਵਿੱਚ ਤੁਸੀਂ ਆਪਣੇ ਰਸਤੇ ਜੋੜੇ ਹਨ ਉਹ ਨਹੀਂ, ਇਸ ਲਈ ਬਹਾਲੀ ਨੇ ਉਹਨਾਂ ਨੂੰ ਵਾਪਸ ਪਾ ਦਿੱਤਾ ਹੈ ਅਜਿਹਾ ਮੰਨਣ ਦੀ ਥਾਂ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਜਾਂਚੋ, ਅਤੇ ਉੱਥੇ ਲਿਖੋ ਜਿੱਥੋਂ ਅਗਲਾ ਜਾਗਣ ਉਹਨਾਂ ਨੂੰ ਲੱਭ ਸਕੇ।
ਜਿਸ ਸਮੇਂ ਨੂੰ ਤੁਸੀਂ ਕਾਬੂ ਨਹੀਂ ਕਰ ਸਕਦੇ ਉਸ ਨਾਲ ਨਜਿੱਠੋ
ਵਾਇਰਲੈੱਸ ਐਸੋਸੀਏਸ਼ਨ ਅਤੇ DHCP ਅਕਸਰ ਹੁੱਕ ਚੱਲਣ ਤੋਂ ਬਾਅਦ ਪੂਰੇ ਹੁੰਦੇ ਹਨ, ਇਸ ਲਈ ਸਰਵਰ ਤੱਕ ਰਸਤਾ ਅਜੇ ਨਾ ਹੋਣ ਵੇਲੇ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ। ਉਸ ਪਤੇ ਲਈ ਥੋੜ੍ਹੀ ਦੇਰ ਉਡੀਕ ਕਰੋ, ਇੱਕ ਵਾਰ ਫਿਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਅਤੇ ਨਤੀਜਾ ਲੌਗ ਕਰੋ।
ਨਾਮ ਰੈਜ਼ੋਲਿਊਸ਼ਨ ਇੱਕ ਵੱਖਰੀ ਦੌੜ ਹੈ, ਕਿਉਂਕਿ ਡੈਸਕਟਾਪ ਦਾ ਨੈੱਟਵਰਕ ਸਟੈਕ ਟਨਲ ਪਹਿਲਾਂ ਹੀ ਉੱਪਰ ਹੋਣ ਤੋਂ ਬਾਅਦ DNS ਬਹਾਲ ਕਰ ਸਕਦਾ ਹੈ। ਕੰਮ ਕਰਦੇ ਰਸਤੇ ਤੋਂ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਥਾਂ resolvectl query internal.example ਨਾਲ ਖੋਜਾਂ ਵੱਖਰੀਆਂ ਜਾਂਚੋ। ਜੋ ਟਨਲ ਸਹੀ ਰਸਤਾ ਦਿੰਦੀ ਹੈ ਪਰ ਕੁਝ ਵੀ ਹੱਲ ਨਹੀਂ ਕਰਦੀ, ਉਹ DNS ਸਮੱਸਿਆ ਹੈ, ਹੁੱਕ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ।
ਜਰਨਲ ਵਿੱਚ ਪੜਾਅ, ਯੂਨਿਟ ਦਾ ਨਾਮ ਅਤੇ ਨਤੀਜਾ ਲਿਖ ਕੇ ਹੁੱਕ ਦਾ ਫੈਸਲਾ ਦਿਖਣਯੋਗ ਰੱਖੋ। ਮਸ਼ੀਨ ਦੇ ਨੋਟਾਂ ਵਿੱਚ ਲਿਖੋ ਕਿ ਤੁਸੀਂ ਕਿਹੜੀ ਜਾਗਣ ਜਾਂਚ ਚਲਾਈ, ਤਾਂ ਜੋ ਕੰਮ ਕਰਨ ਵਾਲੀ ਬਹਾਲੀ ਨੂੰ ਕਿਸਮਤ ਵਾਲੀ ਬਹਾਲੀ ਤੋਂ ਵੱਖ ਕੀਤਾ ਜਾ ਸਕੇ। ਸੇਵਾ ਵਾਪਸ ਲਿਆਉਣ ਵਾਲੀ ਸਭ ਤੋਂ ਘੱਟ ਰੁਕਾਵਟ ਪਾਉਣ ਵਾਲੀ ਕਾਰਵਾਈ ਚੁਣੋ, ਅਤੇ ਜੋ ਕਲਾਇੰਟ ਆਪਣੇ ਆਪ ਠੀਕ ਹੋ ਜਾਂਦਾ ਹੈ ਉਸਨੂੰ ਇਹ ਕਰਨ ਦਿਓ। ਪੂਰਾ ਮੁੜ ਸ਼ੁਰੂ ਕਰਨਾ ਚੱਲ ਰਹੇ ਸੈਸ਼ਨਾਂ ਨੂੰ ਡੇਗ ਦਿੰਦਾ ਹੈ, ਜੋ ਦਿਨ ਵਿੱਚ ਕਈ ਵਾਰ ਜਾਗਣ ਵਾਲੇ ਲੈਪਟਾਪ ਉੱਤੇ ਅਸਲ ਖਰਚਾ ਹੈ।