OpenVPN up 'ਤੇ ਸੇਵਾ ਮੁੜ ਚਾਲੂ ਕਰਨਾ: ਹੁੱਕ tun0.device ਤੋਂ ਬਿਹਤਰ
ਡਿਵਾਈਸ ਯੂਨਿਟ ਇੰਟਰਫ਼ੇਸ ਨੂੰ ਟ੍ਰੈਕ ਕਰਦੀ ਹੈ, ਕਨੈਕਸ਼ਨ ਨੂੰ ਨਹੀਂ। ਸੇਵਾ ਨੂੰ ਲੋੜੀਂਦੀ ਸ਼ਰਤ ਲਈ up ਜਾਂ route-up ਚੁਣੋ, ਫਿਰ ਬਲੌਕ ਨ ਕਰਨ ਵਾਲਾ ਰੀਸਟਾਰਟ ਭੇਜੋ।
ਕਿਸੇ ਨਿਰਭਰ ਸੇਵਾ ਨੂੰ tun0.device ਨਾਲ ਜੋੜਨਾ ਟਨਲ ਦੀ ਸਦੱਸਤਾ ਲੈਣ ਵਰਗਾ ਲੱਗਦਾ ਹੈ, ਅਤੇ ਅਜਿਹਾ ਨਹੀਂ ਹੈ। ਡਿਵਾਈਸ ਯੂਨਿਟ ਦਰਸਾਉਂਦੀ ਹੈ ਕਿ ਇੰਟਰਫ਼ੇਸ ਮੌਜੂਦ ਹੈ, ਜੋ ਅਸਫਲ ਕਨੈਕਸ਼ਨ ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਦੇ ਮੁੜ ਕਨੈਕਟ ਦੌਰਾਨ ਸੱਚ ਰਹਿ ਸਕਦਾ ਹੈ। ਫਿਰ ਸੇਵਾ ਗਲਤ ਪਲ 'ਤੇ ਕੰਮ ਕਰਦੀ ਹੈ, ਜਾਂ ਕਦੇ ਨਹੀਂ, ਇਸ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਇੰਟਰਫ਼ੇਸ ਵਿਚਕਾਰ ਗਾਇਬ ਹੋਇਆ ਸੀ ਜਾਂ ਨਹੀਂ। ਜਿਸ ਘਟਨਾ ਦੀ ਤੁਹਾਨੂੰ ਸੱਚਮੁੱਚ ਪਰਵਾਹ ਹੈ ਉਸ ਦਾ ਵਰਣਨ ਕਰਨ ਵਾਲਾ ਹੁੱਕ ਉਹੀ ਹੈ ਜਿਸ ਨੂੰ OpenVPN ਕਾਲ ਕਰਦਾ ਹੈ, ਨਾ ਕਿ ਉਹ ਜਿਸ ਦਾ systemd ਅਨੁਮਾਨ ਲਾਉਂਦਾ ਹੈ।
ਟ੍ਰਿਗਰ ਚੁਣਨ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਸੇਵਾ ਨੂੰ ਕਿਹੜੀ ਸ਼ਰਤ ਚਾਹੀਦੀ ਹੈ, ਕਿਉਂਕਿ ਤਿੰਨੇ ਉਮੀਦਵਾਰ ਇੱਕ ਦੂਜੇ ਦੀ ਥਾਂ ਨਹੀਂ ਲੈ ਸਕਦੇ।
ਡਿਵਾਈਸ ਯੂਨਿਟ ਅਸਲ ਵਿੱਚ ਕੀ ਟ੍ਰੈਕ ਕਰਦੀ ਹੈ
systemd ਨੈੱਟਵਰਕ ਇੰਟਰਫ਼ੇਸ ਬਾਰੇ ਕਰਨਲ ਦੇ ਨਜ਼ਰੀਏ ਤੋਂ ਡਿਵਾਈਸ ਯੂਨਿਟ ਬਣਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਇੰਟਰਫ਼ੇਸ ਦਿਖਣ 'ਤੇ tun0.device ਸਰਗਰਮ ਹੁੰਦੀ ਹੈ ਅਤੇ ਹਟਾਉਣ 'ਤੇ ਨਿਸ਼ਕਿਰਿਆ ਹੁੰਦੀ ਹੈ। persist-tun ਨਾਲ, ਨਰਮ ਰੀਸਟਾਰਟ ਇੰਟਰਫ਼ੇਸ ਨੂੰ ਉਸ ਦੀ ਥਾਂ 'ਤੇ ਰੱਖਦਾ ਹੈ, ਇਸ ਲਈ ਯੂਨਿਟ ਕਦੇ ਫਲੈਪ ਨਹੀਂ ਹੁੰਦੀ ਅਤੇ ਉਸ ਨਾਲ ਬੱਝੀ ਕੋਈ ਚੀਜ਼ ਟ੍ਰਿਗਰ ਨਹੀਂ ਹੁੰਦੀ। ਸਥਿਰਤਾ ਤੋਂ ਬਿਨਾਂ ਵੀ, ਯੂਨਿਟ ਰੂਟ, DNS ਜਾਂ ਇਸ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦੀ ਕਿ ਦੂਰਲਾ ਸਿਰਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਜਾਂ ਨਹੀਂ।
ਇਹ ਇਸ ਨੂੰ 'VPN ਤਿਆਰ ਹੈ' ਲਈ ਮਾੜਾ ਬਦਲ ਬਣਾ ਦਿੰਦਾ ਹੈ। ਸਿਰਫ਼ ਸਥਾਨਕ ਪਤਾ ਲੋੜੀਂਦਾ ਸਰੋਤਾ ਇੰਟਰਫ਼ੇਸ ਦੀ ਮੌਜੂਦਗੀ ਨਾਲ ਸੰਤੁਸ਼ਟ ਹੋ ਸਕਦਾ ਹੈ, ਜਦੋਂ ਕਿ ਦੂਰਲੇ ਨੈੱਟਵਰਕ 'ਤੇ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰਨ ਵਾਲੀ ਸੇਵਾ ਨੂੰ ਰੂਟ ਅਤੇ ਪਹੁੰਚ ਚਾਹੀਦੀ ਹੈ, ਜੋ ਡਿਵਾਈਸ ਯੂਨਿਟ ਪ੍ਰਗਟ ਨਹੀਂ ਕਰ ਸਕਦੀ।
up, route-up ਅਤੇ up-restart ਦੇ ਵੱਖਰੇ ਅਰਥ ਹਨ
TUN/TAP ਡਿਵਾਈਸ ਖੁੱਲ੍ਹਣ ਅਤੇ ਇੰਟਰਫ਼ੇਸ ਕਨਫ਼ਿਗਰ ਹੋਣ ਤੋਂ ਬਾਅਦ up ਚੱਲਦਾ ਹੈ, ਜੋ ਨਿਰਧਾਰਤ ਪਤਾ ਬੰਨ੍ਹਣ ਵਾਲੇ ਸਰੋਤੇ ਲਈ ਸਹੀ ਪਲ ਹੈ। ਰੂਟ ਸਥਾਪਤ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਕਿਸੇ ਵੀ ਕਨਫ਼ਿਗਰ ਕੀਤੀ ਰੂਟ ਦੇਰੀ ਦੇ ਅਧੀਨ, route-up ਚੱਲਦਾ ਹੈ, ਅਤੇ ਉਸ ਕੰਮ ਲਈ ਢੁਕਵਾਂ ਹੈ ਜਿਸ ਨੂੰ ਰੂਟ ਪੜਾਅ ਪੂਰਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਇਹ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਦੂਰਲੀ ਐਪਲੀਕੇਸ਼ਨ ਜਵਾਬ ਦਿੰਦੀ ਹੈ। ਇਹਨਾਂ ਵਿਚਕਾਰ ਚੋਣ ਇਸ ਗੱਲ ਦਾ ਸਵਾਲ ਹੈ ਕਿ ਸੇਵਾ ਨੂੰ ਕੀ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਕਿਹੜਾ ਹੁੱਕ ਵਧੇਰੇ ਪੂਰਾ ਲੱਗਦਾ ਹੈ।
persist-tun ਨਾਲ, ਰੀਸਟਾਰਟ ਡਿਵਾਈਸ ਦੀ ਮੁੜ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ up-restart ਸੈੱਟ ਨਾ ਹੋਣ ਤੱਕ up ਦੁਬਾਰਾ ਨਹੀਂ ਚੱਲਦਾ। ਉਹ ਵਿਕਲਪ ਦਸਤਾਵੇਜ਼ੀ ਰੀਸਟਾਰਟ ਜੀਵਨ ਚੱਕਰ ਲਈ up ਸਕ੍ਰਿਪਟ ਸਮਰੱਥ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸ ਦਾ ਵਾਤਾਵਰਣ ਪਹਿਲੀ ਸ਼ੁਰੂਆਤ ਦੀ ਤੁਲਨਾ ਵਿੱਚ ਘਟਾਇਆ ਗਿਆ ਹੈ। ਪੂਰਾ ਵਾਤਾਵਰਣ ਮੰਨਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਪਹਿਲੇ ਕਨੈਕਸ਼ਨ 'ਤੇ ਕੰਮ ਕਰਦੀ ਹੈ ਅਤੇ ਅਗਲੇ 'ਤੇ ਅਸਫਲ ਹੁੰਦੀ ਹੈ।
ਕਾਰਵਾਈ ਨੂੰ ਉਸ ਦੀ ਉਡੀਕ ਕੀਤੇ ਬਿਨਾਂ ਭੇਜੋ
ਜੋ ਹੁੱਕ systemctl restart ਨੂੰ ਸਮਕਾਲੀ ਰੂਪ ਵਿੱਚ ਕਾਲ ਕਰਦਾ ਹੈ, ਉਹ ਉਸ ਯੂਨਿਟ ਨਾਲ ਡੈੱਡਲਾਕ ਹੋ ਸਕਦਾ ਹੈ ਜਿਸ ਦਾ ਕ੍ਰਮ ਟਨਲ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ। systemctl --no-block try-restart vpn-dependent.service ਕੰਮ ਨੂੰ ਕਤਾਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ ਅਤੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ, ਜੋ ਹੁੱਕ ਨੂੰ ਉਸ ਕਨੈਕਸ਼ਨ ਨੂੰ ਬਲਾਕ ਕਰਨ ਤੋਂ ਰੋਕਦਾ ਹੈ ਜਿਸ 'ਤੇ ਉਹ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰ ਰਿਹਾ ਸੀ। try-restart ਸਿਰਫ਼ ਚੱਲ ਰਹੀ ਯੂਨਿਟ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ, ਜਦੋਂ ਕਿ restart ਨਿਸ਼ਕਿਰਿਆ ਯੂਨਿਟ ਵੀ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ; ਆਦਤ ਨਾਲ ਨਹੀਂ, ਜਾਣਬੁੱਝ ਕੇ ਚੁਣੋ।
ਕਤਾਰ ਵਿੱਚ ਰੱਖਣਾ ਪੁਸ਼ਟੀ ਨਹੀਂ ਹੈ। ਕੰਮ ਸਵੀਕਾਰ ਹੁੰਦੇ ਹੀ ਹੁੱਕ ਸਫਲਤਾ ਵਾਪਸ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਜਾਂਚ ਟਾਰਗੇਟ ਯੂਨਿਟ ਦੇ ਜਰਨਲ ਵਿੱਚ ਜਾਂ ਇਸ ਦੀ ਅਸਲ ਸਰੋਤਾ ਸਥਿਤੀ ਵਿੱਚ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਰੀਸਟਾਰਟ ਨੀਤੀ ਯੂਨਿਟ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ, ਹੁੱਕ ਵਿੱਚ ਨਹੀਂ
RemainAfterExit=yes ਵਾਲੀ oneshot ਯੂਨਿਟ ਆਪਣੇ ਹੁਕਮ ਦੇ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵੀ ਸਰਗਰਮ ਰਹਿੰਦੀ ਹੈ, ਅਤੇ ਦੂਜੀ ਸ਼ੁਰੂਆਤ ਦੀ ਬੇਨਤੀ ਕੁਝ ਨਹੀਂ ਕਰਦੀ ਕਿਉਂਕਿ systemd ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਹੀ ਸ਼ੁਰੂ ਹੋਇਆ ਮੰਨਦਾ ਹੈ। ਇਹ ਅਜਿਹੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ ਜਿਸ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਡਿਜ਼ਾਈਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਨਾ ਕਿ ਅਜਿਹਾ ਨੁਕਸ ਜਿਸ ਨੂੰ ਵਾਰ-ਵਾਰ ਸ਼ੁਰੂਆਤ ਕਾਲਾਂ ਨਾਲ ਟਾਲਿਆ ਜਾਵੇ। ਜੇ ਕਾਰਵਾਈ ਹਰ ਕਨੈਕਸ਼ਨ 'ਤੇ ਚੱਲਣੀ ਚਾਹੀਦੀ ਹੈ, ਤਾਂ ਯੂਨਿਟ ਨੂੰ ਅਜਿਹਾ ਰੂਪ ਚਾਹੀਦਾ ਹੈ ਜੋ ਇਸ ਦੀ ਆਗਿਆ ਦੇਵੇ।
After= ਯੂਨਿਟਾਂ ਨੂੰ ਕ੍ਰਮ ਦਿੰਦਾ ਹੈ, ਅਤੇ BindsTo= ਜੀਵਨ ਕਾਲ ਬੰਨ੍ਹਦਾ ਹੈ, ਪਰ ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ 'VPN ਦੇ ਮੁੜ ਕਨੈਕਟ ਹੋਣ 'ਤੇ ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ' ਦਾ ਅਰਥ ਨਹੀਂ ਦਿੰਦਾ। ਟਨਲ ਨਾਲ ਬੱਝੀ ਯੂਨਿਟ ਟਨਲ ਰੁਕਣ 'ਤੇ ਰੁਕ ਜਾਂਦੀ ਹੈ; ਟਨਲ ਵਾਪਸ ਆਉਣ 'ਤੇ ਇਹ ਆਪਣੇ ਆਪ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਨਹੀਂ ਕਰਦੀ, ਜਦ ਤੱਕ ਕੋਈ ਚੀਜ਼ ਇਸ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਨਾ ਕਰੇ।
ਇੱਕ ਨਹੀਂ, ਤਿੰਨ ਮੁੜ ਕਨੈਕਟਾਂ ਦੀ ਪਰਖ ਕਰੋ
ਕੋਲਡ ਬੂਟ, ਪੂਰਾ ਕਲਾਇੰਟ ਰੀਸਟਾਰਟ ਅਤੇ ਨਰਮ ਮੁੜ ਕਨੈਕਟ ਹਰ ਇੱਕ ਵੱਖਰਾ ਰਾਹ ਅਭਿਆਸ ਕਰਦੇ ਹਨ। ਨਰਮ ਮੁੜ ਕਨੈਕਟ ਹੀ ਉਹ ਹੈ ਜੋ ਗੁੰਮ up-restart, ਘਟਿਆ ਵਾਤਾਵਰਣ, ਜਾਂ ਕਦੇ ਨਿਸ਼ਕਿਰਿਆ ਨਾ ਹੋਈ ਡਿਵਾਈਸ ਯੂਨਿਟ ਨੂੰ ਉਜਾਗਰ ਕਰਦਾ ਹੈ। ਤਿੰਨੇ ਚਲਾਓ ਅਤੇ ਦੋਵੇਂ ਦਿਸ਼ਾਵਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ: ਟਨਲ ਉੱਪਰ ਆਉਣ 'ਤੇ ਸੇਵਾ ਕੰਮ ਕਰਦੀ ਹੈ, ਅਤੇ Wi-Fi ਰੋਮਿੰਗ ਵਰਗੀਆਂ ਅਸੰਬੰਧਿਤ ਲਿੰਕ ਤਬਦੀਲੀਆਂ 'ਤੇ ਇਹ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਨਹੀਂ ਹੁੰਦੀ।
ਜਦੋਂ ਨਿਰਭਰ ਸੇਵਾ ਤੁਹਾਡੀ ਆਪਣੀ ਪ੍ਰਸ਼ਾਸਕੀ ਪਹੁੰਚ ਚੁੱਕਦੀ ਹੈ ਤਾਂ ਸੁਤੰਤਰ ਰਿਕਵਰੀ ਮਾਰਗ ਰੱਖੋ। ਜੋ ਹੁੱਕ ਤੁਸੀਂ ਜਿਸ ਚੀਜ਼ ਰਾਹੀਂ ਜੁੜੇ ਹੋ ਉਸ ਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ, ਉਹ ਅਜਿਹਾ ਬਦਲਾਅ ਹੈ ਜੋ ਤੁਹਾਨੂੰ ਬਾਹਰ ਤਾਲਾ ਲਗਾ ਸਕਦਾ ਹੈ।