SSH ਸੈਸ਼ਨ ਨੂੰ ਜੀਵਤ ਰੱਖਣ ਦੀ ਬਹੁਤੀ ਸਲਾਹ «ServerAliveInterval 30 ਜੋੜੋ» ਉੱਤੇ ਰੁਕ ਜਾਂਦੀ ਹੈ ਅਤੇ ਲਾਹੇਵੰਦ ਹਿੱਸੇ ਛੱਡ ਦਿੰਦੀ ਹੈ। ਕੀਵਰਡ ਕਲਾਇੰਟ ਪਾਸੇ ਦਾ ਟਾਈਮਰ ਹੈ ਜੋ ਸਿਰਫ਼ ਤਦ ਚੱਲਦਾ ਹੈ ਜਦੋਂ ਚੈਨਲ ਸ਼ਾਂਤ ਰਿਹਾ ਹੋਵੇ, ਇਹ ਸਕਿੰਟਾਂ ਦੀ ਥਾਂ ਬਿਨਾਂ ਜਵਾਬ ਵਾਲੇ ਪ੍ਰੋਬ ਗਿਣਦਾ ਹੈ, ਅਤੇ ਇਹ ਅਜਿਹੀ ਫਾਈਲ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ ਜਿੱਥੇ ਪਹਿਲਾ ਮਿਲਦਾ ਮੁੱਲ ਜਿੱਤਦਾ ਹੈ। ਇਹਨਾਂ ਤਿੰਨ ਗੁਣਾਂ ਵਿੱਚ ਗਲਤੀ ਕਰੋ ਤਾਂ ਸਿਹਤਮੰਦ VPN ਸੈਸ਼ਨ ਵੀ ਟੁੱਟੇਗਾ, ਪਰ ਮਰਿਆ ਸੈਸ਼ਨ ਲਟਕਦਾ ਰਹੇਗਾ।

ਦੋਵੇਂ ਦਿਸ਼ਾਵਾਂ ਵੱਖਰੇ ਡੀਮਨਾਂ ਦੀਆਂ ਹਨ

ServerAliveInterval ਤੁਹਾਡਾ ssh ਕਲਾਇੰਟ ਪੜ੍ਹਦਾ ਹੈ। ClientAliveInterval ਦੂਰਲੇ ਸਿਰੇ ਦਾ sshd ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਉਲਟ ਦਿਸ਼ਾ ਵਿੱਚ, ਸਰਵਰ ਤੋਂ ਕਲਾਇੰਟ ਵੱਲ ਪ੍ਰੋਬ ਕਰਦਾ ਹੈ। ਇਹ ਬਦਲਵੇਂ ਨਾਮ ਨਹੀਂ ਹਨ ਅਤੇ ਇਕੱਠੇ ਕੰਮ ਨਹੀਂ ਕਰਦੇ, ਇਸ ਲਈ ਇੱਕ ਸੈੱਟ ਕਰਨ ਦਾ ਦੂਜੇ ਸਿਰੇ ਦੇ ਵਿਵਹਾਰ ਉੱਤੇ ਕੋਈ ਅਸਰ ਨਹੀਂ ਹੁੰਦਾ। ਇਹਨਾਂ ਨੂੰ ਮਿਲਾ ਦੇਣਾ ਉਹ ਆਮ ਕਾਰਨ ਹੈ ਕਿ ਸੁਧਾਰ ਇੱਕ ਹੋਸਟ ਉੱਤੇ ਕੰਮ ਕਰਦਾ ਦਿਸਦਾ ਹੈ ਅਤੇ ਅਗਲੇ ਉੱਤੇ ਨਹੀਂ।

ਦੋਵੇਂ ਸਿਫ਼ਰ ਸਵੀਕਾਰ ਕਰਦੇ ਹਨ। ਸਿਫ਼ਰ ਉੱਤੇ ਕਲਾਇੰਟ ਕੁਝ ਵੀ ਨਹੀਂ ਭੇਜਦਾ, ਅਤੇ ਸਰਵਰ ਪਾਸੇ ਸਿਫ਼ਰ ClientAliveCountMax ਉਸ ਡਿਸਕਨੈਕਟ ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦਾ ਹੈ ਜੋ ਕਿ ਬਿਨਾਂ ਜਵਾਬ ਵਾਲੀਆਂ ਜਾਂਚਾਂ ਤੋਂ ਬਾਅਦ ਆਉਣਾ ਸੀ।

ਪ੍ਰੋਬ ਕੀ ਸਾਬਤ ਕਰਦਾ ਹੈ ਅਤੇ ਕੀ ਨਹੀਂ

ਨਿਰਧਾਰਤ ਅੰਤਰਾਲ ਬਿਨਾਂ ਸਰਵਰ ਤੋਂ ਡੇਟਾ ਆਏ ਲੰਘ ਜਾਣ ਤੋਂ ਬਾਅਦ, ਕਲਾਇੰਟ ਮੌਜੂਦਾ ਇਨਕ੍ਰਿਪਟਿਡ ਚੈਨਲ ਰਾਹੀਂ ਛੋਟੀ ਬੇਨਤੀ ਭੇਜਦਾ ਹੈ ਅਤੇ ਜਵਾਬ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ। ServerAliveCountMax ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਸੈਸ਼ਨ ਟੁੱਟਣ ਤੋਂ ਪਹਿਲਾਂ ਉਹਨਾਂ ਵਿੱਚੋਂ ਕਿੰਨੇ ਬਿਨਾਂ ਜਵਾਬ ਰਹਿ ਸਕਦੇ ਹਨ। 60 ਅੰਤਰਾਲ ਅਤੇ 3 ਗਿਣਤੀ ਨਾਲ ਕਲਾਇੰਟ ਲਗਭਗ ਤਿੰਨ ਮਿੰਟ ਦੀ ਚੁੱਪ ਤੋਂ ਬਾਅਦ ਹਾਰ ਮੰਨ ਲੈਂਦਾ ਹੈ, ਅਤੇ ਇਹ ਅੰਕੜਾ ਨੈੱਟਵਰਕ ਮਿਆਰ ਨਹੀਂ ਸਗੋਂ ਤੁਹਾਡੀ ਕਨਫਿਗਰੇਸ਼ਨ ਦਾ ਗੁਣ ਹੈ। ਅੰਤਰਾਲ ਨੂੰ ਇਸਦੇ ਡਿਫਾਲਟ 0 ਉੱਤੇ ਛੱਡੋ ਤਾਂ ਕੋਈ ਪ੍ਰੋਬ ਕਦੇ ਨਹੀਂ ਭੇਜਿਆ ਜਾਂਦਾ, ਇਸੇ ਲਈ ਇੱਕ ਸਟਾਕ ਕਲਾਇੰਟ ਮਰੇ ਹੋਏ ਕਨੈਕਸ਼ਨ ਉੱਤੇ ਬੇਅੰਤ ਬੈਠ ਸਕਦਾ ਹੈ।

ਕਿਉਂਕਿ ਅਦਲਾ-ਬਦਲੀ SSH ਟਰਾਂਸਪੋਰਟ ਦੇ ਅੰਦਰ ਹੁੰਦੀ ਹੈ, ਜਵਾਬ ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਦੂਜੇ ਸਿਰੇ ਦੀ SSH ਪ੍ਰਕਿਰਿਆ ਅਜੇ ਵੀ ਪੜ੍ਹ ਅਤੇ ਲਿਖ ਰਹੀ ਹੈ। ਇਹ ਉਸ ਪ੍ਰੋਗਰਾਮ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦਾ ਜੋ ਤੁਸੀਂ ਉਸ ਸੈਸ਼ਨ ਵਿੱਚ ਸ਼ੁਰੂ ਕੀਤਾ: ਡੇਟਾਬੇਸ ਕਲਾਇੰਟ, ਫਾਰਵਰਡ ਕੀਤਾ ਪੋਰਟ ਜਾਂ ਲੰਮਾ ਚੱਲਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਫਸੀ ਹੋ ਸਕਦੀ ਹੈ ਜਦੋਂ ਕਿ ਟਰਾਂਸਪੋਰਟ ਖੁਸ਼ੀ ਨਾਲ ਪ੍ਰੋਬ ਦਾ ਜਵਾਬ ਦੇ ਰਿਹਾ ਹੋਵੇ।

TCPKeepAlive ਇੱਕ ਪਰਤ ਹੇਠਾਂ ਵਾਲਾ ਵੱਖਰਾ ਤੰਤਰ ਹੈ। ਕਰਨਲ ਇਸਨੂੰ ਸੰਭਾਲਦਾ ਹੈ, ਇਹ ਇਨਕ੍ਰਿਪਟਿਡ ਨਹੀਂ ਹੈ, ਅਤੇ ਜਿਸਦਾ SSH ਡੀਮਨ ਫਸਿਆ ਹੋਇਆ ਹੈ ਉਹ ਦੂਜਾ ਸਿਰਾ ਵੀ ਇਸਨੂੰ ਪੂਰਾ ਕਰ ਸਕਦਾ ਹੈ। ਇਸੇ ਲਈ ਸਾਕਟ ਦੀ ਥਾਂ ਸੈਸ਼ਨ ਮਹੱਤਵਪੂਰਨ ਹੋਣ ’ਤੇ SSH ਪੱਧਰ ਦਾ ਪ੍ਰੋਬ ਵਧੇਰੇ ਅਰਥਪੂਰਨ ਸੰਕੇਤ ਹੈ।

ਕ੍ਰਮ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਮੁੱਲ ਬਚੇਗਾ

OpenSSH ਹਰ ਪੈਰਾਮੀਟਰ ਲਈ ਮਿਲਦਾ ਪਹਿਲਾ ਮੁੱਲ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਖਾਸ Host ਬਲਾਕ ਕਿਸੇ ਵੀ ਵਿਸ਼ਾਲ ਬਲਾਕ ਤੋਂ ਪਹਿਲਾਂ ਆਉਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਮਿਲ ਵੀ ਸਕਦਾ ਹੈ। ਵਾਈਲਡਕਾਰਡ ਡਿਫਾਲਟ ਫਾਈਲ ਦੇ ਹੇਠਾਂ ਰੱਖੋ, ਉੱਤੇ ਨਹੀਂ, ਅਤੇ ਯਾਦ ਰੱਖੋ ਕਿ ਹੇਠਾਂ ਵਾਲਾ Match ਬਲਾਕ ਪਹਿਲਾਂ ਹੀ ਸੈੱਟ ਕੀਤੇ ਮੁੱਲ ਨੂੰ ਰੱਦ ਨਹੀਂ ਕਰ ਸਕਦਾ। OpenSSH ਕਲਾਇੰਟ ਕਨਫਿਗਰੇਸ਼ਨ ਸੰਦਰਭ ਪਹਿਲੇ-ਮੁੱਲ ਦਾ ਨਿਯਮ ਸਿੱਧਾ ਦੱਸਦਾ ਹੈ, ਅਤੇ ਸਾਂਝੀ ਕਨਫਿਗਰੇਸ਼ਨ ਮੁੜ ਸੰਗਠਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸਨੂੰ ਇੱਕ ਵਾਰ ਪੜ੍ਹਨਾ ਯੋਗ ਹੈ।

ਕਮਾਂਡ-ਲਾਈਨ ਚੋਣਾਂ ਫਾਈਲ ਉੱਤੇ ਜਿੱਤਦੀਆਂ ਹਨ, ਜੋ ਅਸਥਾਈ ਪ੍ਰਯੋਗ ਨੂੰ ਸਸਤਾ ਬਣਾਉਂਦਾ ਹੈ:

ssh -o ServerAliveInterval=15 -o ServerAliveCountMax=4 office-shell

ਤੁਸੀਂ ਕੀ ਲਿਖਿਆ ਸਮਝਦੇ ਹੋ ਉਸਦੀ ਥਾਂ ਕਲਾਇੰਟ ਨੇ ਅਸਲ ਵਿੱਚ ਕੀ ਹੱਲ ਕੀਤਾ ਇਹ ਵੇਖਣ ਲਈ ਇਸਨੂੰ ਪ੍ਰਭਾਵੀ ਕਨਫਿਗਰੇਸ਼ਨ ਡੰਪ ਕਰਨ ਲਈ ਕਹੋ। ਆਉਟਪੁੱਟ ਵਿੱਚ ਉਸ ਹੋਸਟਨਾਮ ਲਈ ਮਿਲਾਏ ਮੁੱਲ ਹੁੰਦੇ ਹਨ ਅਤੇ ਇਹ ਭਟਕੇ ਹੋਏ ਪਹਿਲਾਂ ਵਾਲੇ ਬਲਾਕ ਨੂੰ ਫੜਨ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਹੈ:

ssh -G office-shell | grep -i alive

ਟਨਲ ਉੱਤੇ ਕੀਪਅਲਾਈਵ ਕੀ ਕਰਦੇ ਹਨ

ਸਮੇਂ-ਸਮੇਂ ਦਾ ਟਰੈਫਿਕ ਸਟੇਟਫੁਲ NAT ਜਾਂ ਫਾਇਰਵਾਲ ਮੈਪਿੰਗ ਦੀ ਮਿਆਦ ਪੁੱਗਣ ਤੋਂ ਰੋਕਦਾ ਹੈ, ਜੋ ਕਿ ਉਸ VPN ਉੱਤੇ ਸੱਚਾ ਲਾਭ ਹੈ ਜਿਸਦਾ ਗੇਟਵੇ ਕੁਝ ਮਿੰਟਾਂ ਬਾਅਦ ਨਿਸ਼ਕਿਰਿਆ ਪ੍ਰਵਾਹ ਸੁੱਟ ਦਿੰਦਾ ਹੈ। ਹਰ 60 ਸਕਿੰਟ ਬਾਅਦ ਆਉਣ ਵਾਲੇ ਪ੍ਰੋਬ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਡੇਟਾ ਲਏ ਬਿਨਾਂ ਉਸ ਮੈਪਿੰਗ ਨੂੰ ਤਾਜ਼ਾ ਕਰਦੇ ਹਨ।

ਇਹ ਗਏ ਹੋਏ ਰਾਹ ਨੂੰ ਮੁੜ ਨਹੀਂ ਬਣਾ ਸਕਦੇ। ਜਦੋਂ ਟਨਲ ਇੰਟਰਫੇਸ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ ਤਾਂ ਬਾਕੀ ਸਭ ਵਾਂਗ ਪ੍ਰੋਬ ਵੀ ਫੇਲ ਹੋ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਗਿਣਤੀ ਖ਼ਤਮ ਹੁੰਦਿਆਂ ਹੀ ਸੈਸ਼ਨ ਖ਼ਤਮ ਹੋ ਜਾਂਦਾ ਹੈ। ਜੀਵਨ ਪਛਾਣ ਅਤੇ ਰਾਹ ਦੀ ਮੁੜ ਪ੍ਰਾਪਤੀ ਵੱਖਰੀਆਂ ਸਮੱਸਿਆਵਾਂ ਹਨ, ਅਤੇ ਸਿਰਫ਼ ਪਹਿਲੀ ਹੀ ssh_config ਵਿੱਚ ਸੰਰਚਿਤ ਹੋ ਸਕਦੀ ਹੈ। ਅੰਤਰਾਲ ਅਤੇ ਗਿਣਤੀ ਅਸਲ ਵਿੱਚ ਤੁਹਾਨੂੰ ਇਹ ਦਿੰਦੇ ਹਨ ਕਿ ਕਲਾਇੰਟ ਨੂੰ ਕਿੰਨੀ ਜਲਦੀ ਪਤਾ ਲੱਗਦਾ ਹੈ, ਅਤੇ ਇਹੀ ਉਹ ਹਿੱਸਾ ਹੈ ਜਿਸਨੂੰ ਵਰਤੋਂਕਾਰ ਹੈਂਗ ਵਜੋਂ ਅਨੁਭਵ ਕਰਦਾ ਹੈ।

ਮਲਟੀਪਲੈਕਸ ਕਨੈਕਸ਼ਨ ਇੱਕ ਮੋੜ ਜੋੜਦੇ ਹਨ। ControlMaster ਦੇ ਨਾਲ ਪ੍ਰੋਬ ਮੁੱਖ ਕਨੈਕਸ਼ਨ ਦੇ ਹੁੰਦੇ ਹਨ, ਅਤੇ ਮੌਜੂਦਾ ਮੁੱਖ ਉੱਤੇ ਨਵਾਂ ਸੈਸ਼ਨ ਉਹ ਵਿਰਾਸਤ ਵਿੱਚ ਲੈਂਦਾ ਹੈ ਜੋ ਉਸ ਮੁੱਖ ਨੇ ਤੈਅ ਕੀਤਾ ਸੀ। ਜੇ mux ਮੁੱਖ ਫਸਿਆ ਹੋਇਆ ਹੈ ਤਾਂ ਦੂਜੀ ਵਿੰਡੋ ਖੋਲ੍ਹਣ ਨਾਲ ਰਾਹ ਮੁੜ ਨਹੀਂ ਜਾਂਚਿਆ ਜਾਵੇਗਾ।

ਸੈਟਿੰਗ ਨੂੰ ਸਿਰੇ ਤੋਂ ਸਿਰੇ ਤੱਕ ਪੁਸ਼ਟੀ ਕਰਨਾ

ਸਰਵਰ ਉੱਤੇ ਫਾਈਲ ਪੜ੍ਹ ਕੇ ਕਿਹੜਾ include ਜਿੱਤਿਆ ਇਸਦਾ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਥਾਂ ਪ੍ਰਭਾਵੀ ਡੀਮਨ ਕਨਫਿਗਰੇਸ਼ਨ ਡੰਪ ਕਰੋ:

sshd -T | grep -i clientalive

ਫਿਰ ਡੀਬਗ ਆਉਟਪੁੱਟ ਚਾਲੂ ਰੱਖ ਕੇ ਅਸਲ ਸੈਸ਼ਨ ਵੇਖੋ। ਗਿਣਤੀ ਖ਼ਤਮ ਹੋਣ ’ਤੇ ਕਲਾਇੰਟ ਟਾਈਮਆਉਟ ਲਾਈਨ ਛਾਪਦਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਟਾਈਮਸਟੈਂਪ ਦੱਸਦੇ ਹਨ ਕਿ ਚੁੱਪ ਲਗਾਤਾਰ ਸੀ ਜਾਂ ਪ੍ਰੋਬ ਬਿਲਕੁਲ ਹੀ ਨਹੀਂ ਭੇਜੇ ਗਏ। ਜੋ ਸੈਸ਼ਨ ਬਿਨਾਂ ਕਿਸੇ ਪ੍ਰੋਬ ਟਰੈਫਿਕ ਦੇ ਮਰਦਾ ਹੈ ਉਸਦਾ ਕੀਵਰਡ ਆਮ ਤੌਰ ’ਤੇ ਅਜਿਹੇ ਬਲਾਕ ਵਿੱਚ ਹੁੰਦਾ ਹੈ ਜੋ ਕਦੇ ਨਹੀਂ ਮਿਲਿਆ।

ਸਿਰਫ਼ ਟਨਲ ਰਾਹੀਂ ਪਹੁੰਚਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਹੋਸਟ ਲਈ ਦੋ ਜਾਂਚਾਂ ਜੋੜਨਾ ਯੋਗ ਹੈ: ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਹੱਲ ਕੀਤਾ ਅੰਤਰਾਲ ਤੁਹਾਡਾ ਇਰਾਦਾ ਹੀ ਸੀ, ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਉਹ ਅੰਤਰਾਲ ਗਿਣਤੀ ਨਾਲ ਗੁਣਾ ਕਰਕੇ VPN ਗੇਟਵੇ ਦੇ ਨਿਸ਼ਕਿਰਿਆ ਟਾਈਮਆਉਟ ਤੋਂ ਛੋਟਾ ਹੈ। ਜਦੋਂ ਦੂਜਾ ਅੰਕੜਾ ਵੱਡਾ ਹੁੰਦਾ ਹੈ ਤਾਂ ਗੇਟਵੇ ਪਹਿਲਾਂ ਚੁੱਪਚਾਪ ਪ੍ਰਵਾਹ ਸੁੱਟ ਦਿੰਦਾ ਹੈ ਅਤੇ SSH ਪ੍ਰੋਬ ਨੂੰ ਕੁਝ ਵੀ ਰਿਪੋਰਟ ਕਰਨ ਦਾ ਮੌਕਾ ਨਹੀਂ ਮਿਲਦਾ।

ਸੰਬੰਧਿਤ ਲੇਖ