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

ਕੀ VPN ਚਾਲੂ ਹੈ — ਇਸ ਦੇ ਤਿੰਨ ਜਵਾਬ

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

SignalAnswersBlind spot
scutil --nc statusIs the service connected?Third-party clients, wrong routes
route -n getWhere would this go?The peer may be down
A request to the far sideDoes it work now?Slow, and it changes state

ਇੱਕ ਲਾਹੇਵੰਦ ਜਾਂਚ ਪਹਿਲੇ ਦੋ ਨੂੰ ਜੋੜਦੀ ਹੈ ਅਤੇ ਤੀਜੇ ਨੂੰ ਇਸ ਪੁਸ਼ਟੀ ਵਜੋਂ ਵਰਤਦੀ ਹੈ ਕਿ ਪਹਿਲੇ ਦੋ ਝੂਠ ਨਹੀਂ ਬੋਲੇ। ਕੋਈ ਵੀ ਇਕੱਲਾ ਸਮੇਂ ਦੀ ਮੋਹਰ ਵਾਲਾ ਅੰਦਾਜ਼ਾ ਹੀ ਹੈ।

ਪਛਾਣਕਰਤਾ ਪੜ੍ਹੋ, ਦਿਖਾਇਆ ਜਾਂਦਾ ਨਾਮ ਨਹੀਂ

scutil --nc list
scutil --nc status "Office"

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

ਸੇਵਾ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਅਧਿਕਾਰ ਦੀ ਬੇਨਤੀ ਆ ਸਕਦੀ ਹੈ ਜਾਂ ਪਰੋਫ਼ਾਈਲ ਪ੍ਰਬੰਧਿਤ ਹੋਣ ਵੇਲੇ ਸਿੱਧਾ ਇਨਕਾਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਉਹ ਇਨਕਾਰ ਟਨਲ ਦੀ ਖ਼ਰਾਬੀ ਨਹੀਂ ਹੈ; ਇਹ ਇੱਕ ਨੀਤੀ ਬਿਆਨ ਹੈ ਕਿ ਇਸਨੂੰ ਕੌਣ ਚੁੱਕ ਸਕਦਾ ਹੈ।

ਤੀਜੀ ਧਿਰ ਦਾ ਕਲਾਇੰਟ ਸੂਚੀ ਤੋਂ ਲੁਕਦਾ ਹੈ

ਖਾਲੀ ਸੂਚੀ ਦਾ ਮਤਲਬ ਇਹ ਨਹੀਂ ਕਿ VPN ਨਹੀਂ ਹੈ। ਸਿਸਟਮ ਦੀਆਂ ਆਪਣੀਆਂ ਨੈੱਟਵਰਕ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਬਣੇ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਇੱਥੇ ਦਿਸਦੇ ਹਨ; ਵਿਕਰੇਤਾ ਦਾ ਕਲਾਇੰਟ, ਪ੍ਰਬੰਧਨ ਪਰੋਫ਼ਾਈਲ ਜਾਂ ਤੀਜੀ ਧਿਰ ਦੀ ਐਪ ਇੱਕ ਸਰਗਰਮ ਟਨਲ ਰੱਖ ਸਕਦੇ ਹਨ ਜੋ ਇਹ ਕਮਾਂਡ ਕਦੇ ਨਹੀਂ ਦੇਖਦੀ। ਆਪਣੀ ਸੇਵਾ ਲਈ ਆਪਣਾ ਸਾਧਨ ਹੀ ਅਧਿਕਾਰੀ ਹੈ। ਜਿਸ ਕਲਾਇੰਟ ਨੇ ਕਦੇ ਇਸ ਕੋਲ ਰਜਿਸਟਰ ਨਹੀਂ ਕੀਤਾ, ਉਸ ਬਾਰੇ scutil ਨੂੰ ਪੁੱਛਣ ਉੱਤੇ ਕੁਝ ਨਹੀਂ ਮਿਲਦਾ, ਅਤੇ ਕੁਝ ਨ ਮਿਲਣਾ ਡਿਸਕਨੈਕਟ ਹੋਣ ਵਰਗਾ ਜਵਾਬ ਨਹੀਂ ਹੈ।

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

ਸਥਿਤੀ ਰੂਟਿੰਗ ਨਹੀਂ ਹੈ

ਜੁੜੀ ਸੇਵਾ ਕਹਿੰਦੀ ਹੈ ਕਿ ਟਨਲ ਮੌਜੂਦ ਹੈ। ਇਹ ਨਹੀਂ ਕਹਿੰਦੀ ਕਿ ਤੁਹਾਡੀ ਮੰਜ਼ਿਲ ਇਸਨੂੰ ਵਰਤਦੀ ਹੈ। ਪਤੇ ਪੜ੍ਹੋ, ਫਿਰ ਕਰਨਲ ਨੂੰ ਸਿੱਧਾ ਪੁੱਛੋ:

ifconfig | grep -A4 utun
netstat -rn -f inet
route -n get 10.40.0.20

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

ਨਾਮ ਦੇਣਾ ਇੱਕ ਵੱਖਰੀ ਸਮੱਸਿਆ ਹੈ

ਹੋਰ ਮਸ਼ੀਨਾਂ Mac ਤੱਕ ਨਾਮ ਨਾਲ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦੀਆਂ ਜਦਕਿ ਇਸਦਾ ਪਤਾ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਹ VPN ਦੀ ਖ਼ਰਾਬੀ ਵਜੋਂ ਦੱਸਿਆ ਜਾਂਦਾ ਹੈ। ਸਥਾਨਕ ਹੋਸਟ ਨਾਮ, ਹੋਸਟ ਨਾਮ ਅਤੇ DNS ਰਿਕਾਰਡ ਤਿੰਨ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਹਨ। scutil --get LocalHostName Bonjour ਨਾਮ ਦਿਖਾਉਂਦਾ ਹੈ; sudo scutil --set HostName mac-office ਸਿਸਟਮ ਵੱਲੋਂ ਦੱਸਿਆ ਨਾਮ ਸੈੱਟ ਕਰਦਾ ਹੈ।

ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਸੈਟਿੰਗ ਦਫ਼ਤਰ ਜ਼ੋਨ ਵਿੱਚ ਰਿਕਾਰਡ ਨਹੀਂ ਬਣਾਉਂਦੀ। ਜੇ ਹੋਰ ਹੋਸਟਾਂ ਨੂੰ ਨਾਮ DNS ਰਾਹੀਂ ਹੱਲ ਕਰਨਾ ਹੈ, ਤਾਂ ਜ਼ੋਨ ਦੇ ਮਾਲਕ ਨੂੰ ਇਹ ਜੋੜਨਾ ਪਵੇਗਾ, ਜਾਂ ਸਕ੍ਰਿਪਟ ਨੂੰ ਇਸਦੀ ਥਾਂ ਪਤਾ ਵਰਤਣਾ ਚਾਹੀਦਾ ਹੈ। ਸਥਿਰ ਨਾਮ ਸੈੱਟ ਕਰਨ ਨਾਲ ਐਲਾਨ ਇਕਸਾਰ ਰਹਿੰਦੇ ਹਨ; ਇਸ ਨਾਲ ਰਿਜ਼ੌਲਵਰ ਜਵਾਬ ਦੇਣ ਲੱਗਦਾ ਨਹੀਂ।

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

ਸੰਬੰਧਿਤ ਲੇਖ