ਬੈਕਅੱਪ ਤੋਂ ਪਹਿਲਾਂ VPN ਚਾਲੂ ਚਾਹੀਦਾ ਹੋਣ ਵਾਲੀਆਂ ਸਕ੍ਰਿਪਟਾਂ ਅਕਸਰ openvpn ਸਿੱਧਾ ਚਲਾਉਂਦੀਆਂ ਹਨ। ਇਸ ਨਾਲ Tunnelblick ਵੱਲੋਂ ਪਹਿਲਾਂ ਹੀ ਸੰਭਾਲੀ ਜਾ ਰਹੀ ਪ੍ਰੋਫ਼ਾਈਲ, DNS ਅਤੇ ਰੂਟ ਸੰਭਾਲ ਛੱਡ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ। ਸਮਰਥਿਤ ਰਾਹ Tunnelblick ਦਾ ਆਪਣਾ AppleScript ਇੰਟਰਫ਼ੇਸ ਹੈ, ਜੋ ਨਾਮ ਵਾਲੀ ਕਨਫਿਗਰੇਸ਼ਨ ਲਈ connect, state ਅਤੇ disconnect ਬੇਨਤੀਆਂ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ। ਇਹੀ ਵਰਤੋ ਅਤੇ ਐਪ ਨੂੰ ਜ਼ਿੰਮੇਵਾਰ ਰਹਿਣ ਦਿਓ।

ਐਪ ਨਾਲ ਗੱਲ ਕਰੋ, openvpn ਨਾਲ ਨਹੀਂ

OpenVPN ਪ੍ਰੋਫ਼ਾਈਲ, ਇੰਜਣ ਦੀ ਚੋਣ, ਸਕ੍ਰਿਪਟਾਂ ਅਤੇ DNS ਤੇ ਰੂਟ ਏਕੀਕਰਨ Tunnelblick ਦੀ ਮਲਕੀਅਤ ਹੈ। ਵੱਖਰੀ openvpn ਬਾਈਨਰੀ ਸ਼ੁਰੂ ਕਰਨ ਦਾ ਦੂਜਾ ਢੰਗ ਹੈ, ਉਸੇ ਕਨੈਕਸ਼ਨ ਦਾ ਛੋਟਾ ਰਾਹ ਨਹੀਂ।

ਐਪ ਦੇ ਸਕ੍ਰਿਪਟਿੰਗ ਇੰਟਰਫ਼ੇਸ ਨੂੰ ਕਾਲ ਕਰਨ ਨਾਲ ਉਹ ਮਲਕੀਅਤ ਬਰਕਰਾਰ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਹਰ ਬੇਨਤੀ ਸਮੀਖਿਆਯੋਗ ਹੁੰਦੀ ਹੈ।

ਇੱਥੋਂ ਦੀਆਂ ਉਦਾਹਰਨਾਂ ਮੰਨਦੀਆਂ ਹਨ ਕਿ Tunnelblick Applications ਵਿੱਚ ਹੈ, ਕੰਮ ਕਰਦੀ ਕਨਫਿਗਰੇਸ਼ਨ ਦਾ ਨਾਮ HQ ਹੈ ਅਤੇ ਕਮਾਂਡਾਂ ਲੌਗ-ਇਨ ਕੀਤੇ Mac ਉਪਭੋਗਤਾ ਦੇ ਸੈਸ਼ਨ ਵਿੱਚ ਚੱਲਦੀਆਂ ਹਨ। ਨਾਮ ਨੂੰ ਆਪਣੀ ਸਹੀ ਕਨਫਿਗਰੇਸ਼ਨ ਨਾਲ ਬਦਲੋ।

ਠੀਕ ਇੱਕ ਨਾਮ ਵਾਲੀ ਪ੍ਰੋਫ਼ਾਈਲ ਸ਼ੁਰੂ ਕਰੋ

connect ਬੇਨਤੀ ਕਨਫਿਗਰੇਸ਼ਨ ਦਾ ਨਾਮ ਦੱਸਦੀ ਹੈ। ਇਹ ਆਖ਼ਰੀ ਵਾਰ ਚੁਣੀ ਗਈ ਚੀਜ਼ ਨਾਲ ਜੁੜਨ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਹੈ।

ਇਸ ਨੂੰ ਕਨਫਿਗਰੇਸ਼ਨ ਦੀ ਮਲਕੀਅਤ ਵਾਲੇ ਉਪਭੋਗਤਾ ਸੈਸ਼ਨ ਵਿੱਚ ਚਲਾਓ:

osascript -e 'tell application "/Applications/Tunnelblick.app" to connect "HQ"'

ਆਮ ਸਾਈਨ-ਇਨ ਸੰਕੇਤਾਂ ਵਿੱਚੋਂ ਲੰਘੋ। macOS ਪੁੱਛ ਸਕਦਾ ਹੈ ਕਿ ਕਾਲ ਕਰਨ ਵਾਲੀ ਐਪ ਨੂੰ Tunnelblick ਕੰਟਰੋਲ ਕਰਨ ਦੀ ਆਗਿਆ ਹੈ ਜਾਂ ਨਹੀਂ; ਮਨਜ਼ੂਰੀ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਵੇਖੋ ਕਿਹੜੀ ਐਪ ਅਤੇ ਕਿਹੜਾ ਟਾਰਗਿਟ ਹੈ। ਉਸ ਡਾਇਲਾਗ ਨੂੰ ਕਲਿੱਕ ਕਰਕੇ ਲੰਘਣ ਵਾਲਾ ਆਟੋਮੇਸ਼ਨ ਡਾਇਲਾਗ ਦਾ ਮਕਸਦ ਹੀ ਖ਼ਤਮ ਕਰ ਦਿੰਦਾ ਹੈ।

ਟਨਲ ਉੱਠਣ ਤੋਂ ਪਹਿਲਾਂ connect ਬੇਨਤੀ ਵਾਪਸ ਆਉਂਦੀ ਹੈ

Tunnelblick ਦੀ ਸਕ੍ਰਿਪਟਿੰਗ ਗਾਈਡ ਸਪੱਸ਼ਟ ਹੈ: ਕਨੈਕਸ਼ਨ ਪੂਰਾ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ connect ਵਾਪਸ ਆਉਂਦਾ ਹੈ। ਜ਼ੀਰੋ ਐਗਜ਼ਿਟ ਸਥਿਤੀ ਦਾ ਅਰਥ ਹੈ ਬੇਨਤੀ ਸਵੀਕਾਰ ਹੋਈ, ਇਹ ਨਹੀਂ ਕਿ ਟਰੈਫ਼ਿਕ ਵਹਿ ਰਿਹਾ ਹੈ।

ਸਥਿਤੀ ਵੱਖਰੀ ਪੜ੍ਹੋ:

osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"'

CONNECTED ਕਨੈਕਸ਼ਨ-ਸਥਿਤੀ ਦਾ ਨਤੀਜਾ ਹੈ। ਇਹ ਅਜੇ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਤੁਹਾਡੇ ਕੰਮ ਨੂੰ ਲੋੜੀਂਦਾ ਨਿੱਜੀ ਸਰੋਤ ਪਹੁੰਚਯੋਗ ਹੈ, ਇਸ ਲਈ ਨਿਰਭਰ ਕੰਮ ਸ਼ੁਰੂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਨੂੰ ਵੱਖਰਾ ਜਾਂਚੋ।

ਸਕ੍ਰਿਪਟਿੰਗ ਇੰਟਰਫ਼ੇਸ ਦੇ ਹੋਰ ਕੰਟਰੋਲ ਵਿਆਪਕ ਕਾਰਵਾਈਆਂ ਸੰਭਾਲਦੇ ਹਨ ਅਤੇ ਜਦੋਂ ਸਿਰਫ਼ ਇੱਕ ਪ੍ਰੋਫ਼ਾਈਲ ਬਦਲਦੀ ਹੈ ਤਾਂ ਲੋੜੀਂਦੇ ਨਹੀਂ ਹੁੰਦੇ।

ਸਮਾਂ-ਸੀਮਾ ਨਾਲ ਉਡੀਕੋ, ਫਿਰ ਅਸਫਲ ਹੋਵੋ

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

ਸੀਮਿਤ ਲੂਪ ਇੰਝ ਦਿਸਦਾ ਹੈ:

for i in $(seq 1 30); do
  state=$(osascript -e 'tell application "/Applications/Tunnelblick.app" to get state of first configuration where name = "HQ"')
  if [ "$state" = "CONNECTED" ]; then exit 0; fi
  sleep 1
done
echo "tunnel did not reach CONNECTED" >&2
exit 1

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

ਸਥਿਤੀ ਜਾਂਚੋ ਅਤੇ ਨਾਮ ਨਾਲ ਡਿਸਕਨੈਕਟ ਕਰੋ

ਉਹੀ ਪ੍ਰੋਫ਼ਾਈਲ ਰੋਕਣ ਲਈ ਉਸੇ ਨਾਮ ਨਾਲ disconnect ਕਾਲ ਕਰੋ। ਇਸ ਨਾਲ ਬੇਨਤੀ ਸੀਮਿਤ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਹੋਰ ਕਨਫਿਗਰੇਸ਼ਨਾਂ ਅਛੂਤ ਰਹਿੰਦੀਆਂ ਹਨ।

osascript -e 'tell application "/Applications/Tunnelblick.app" to disconnect "HQ"'

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

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

ਸੰਬੰਧਿਤ ਲੇਖ