macOS 'ਤੇ OpenConnect: ਪੈਕੇਜ, ਰਿਲੀਜ਼ ਆਰਕਾਈਵ ਜਾਂ git ਕਲੋਨ
Homebrew ਬਾਈਨਰੀ ਅਤੇ ਨੈੱਟਵਰਕ ਸਕ੍ਰਿਪਟ ਦਿੰਦਾ ਹੈ; ਸਰੋਤ ਟ੍ਰੀ ਉਹਨਾਂ ਨੂੰ ਬਣਾਏ ਅਤੇ ਚਲਾਏ ਬਿਨਾਂ ਕੁਝ ਨਹੀਂ ਦਿੰਦੀ। ਜਾਣੋ ਤੁਹਾਡਾ ਕਨੈਕਸ਼ਨ ਕਿਹੜਾ ਵਰਤਦਾ ਹੈ।
Mac 'ਤੇ OpenConnect ਕਲਾਇੰਟ ਲੈਣ ਦੇ ਤਿੰਨ ਰਸਤੇ ਹਨ, ਅਤੇ ਉਹ ਡਿਸਕ 'ਤੇ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਛੱਡਦੇ ਹਨ। Homebrew ਫਾਰਮੂਲਾ ਕੰਪਾਇਲ ਕੀਤੀ ਬਾਈਨਰੀ ਅਤੇ ਰੂਟ ਤੇ DNS ਸੈੱਟ ਕਰਨ ਵਾਲੀ ਨੈੱਟਵਰਕ ਸਕ੍ਰਿਪਟ ਇੰਸਟਾਲ ਕਰਦਾ ਹੈ। ਰਿਲੀਜ਼ ਆਰਕਾਈਵ ਤੁਹਾਨੂੰ ਬਣਾਈ ਗਈ ਬਿਲਡ ਸਿਸਟਮ ਨਾਲ ਸਰੋਤ ਕੋਡ ਦਿੰਦਾ ਹੈ। git ਚੈੱਕਆਉਟ ਤੁਹਾਨੂੰ ਉਸ ਤੋਂ ਬਿਨਾਂ ਸਰੋਤ ਕੋਡ ਦਿੰਦਾ ਹੈ। ਗ਼ਲਤ ਚੁਣਨਾ ਹੀ ਕਾਰਨ ਹੈ ਕਿ ਲੋਕ ਟਿਊਟੋਰੀਅਲ ਸ਼ੁਰੂ ਹੋਣ ਦੇ ਕੁਝ ਮਿੰਟਾਂ ਵਿੱਚ ਹੀ ਗੁੰਮ configure ਦਾ ਸਾਹਮਣਾ ਕਰਦੇ ਹਨ।
ਇੱਕੋ ਨਾਮ ਹੇਠ ਦੋ ਵੱਖਰੀਆਂ ਮਸ਼ੀਨਾਂ
ਪੈਕੇਜ ਦਾ ਰਸਤਾ ਇੱਕ ਹੀ ਕਮਾਂਡ ਹੈ, ਅਤੇ ਜਿਨ੍ਹਾਂ ਦਾ ਕੰਮ ਵਿਕਾਸ ਕਰਨਾ ਨਹੀਂ ਬਲਕਿ ਕਨੈਕਟ ਹੋਣਾ ਹੈ, ਉਨ੍ਹਾਂ ਲਈ ਇਹ ਸਹੀ ਡਿਫ਼ਾਲਟ ਹੈ।
brew install openconnect
ਇਹ ਕੀ ਇੰਸਟਾਲ ਕਰਦਾ ਹੈ, ਕਮਾਂਡ ਤੋਂ ਵੱਧ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਤੁਹਾਨੂੰ ਕਲਾਇੰਟ ਦੀ ਬਾਈਨਰੀ ਮਿਲਦੀ ਹੈ, ਅਤੇ vpnc-script ਵੀ ਮਿਲਦੀ ਹੈ ਜਿਸਨੂੰ ਕਲਾਇੰਟ ਇੰਟਰਫ਼ੇਸ, ਰੂਟ ਅਤੇ ਰਿਜ਼ਾਲਵਰ ਪ੍ਰੋਗਰਾਮ ਕਰਨ ਲਈ ਬੁਲਾਉਂਦਾ ਹੈ। ਦੋਵੇਂ ਜੋੜੀ ਵਜੋਂ ਕੰਮ ਕਰਦੇ ਹਨ: ਬਾਈਨਰੀ TLS ਸੈਸ਼ਨ ਖ਼ਤਮ ਕਰਦੀ ਹੈ ਅਤੇ ਬਣਿਆ ਇੰਟਰਫ਼ੇਸ ਸਕ੍ਰਿਪਟ ਨੂੰ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਉਹ ਹਿੱਸਾ ਹੈ ਜੋ ਜਾਣਦਾ ਹੈ ਕਿ ਇਹ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਆਪਣਾ ਨੈੱਟਵਰਕ ਕਿਵੇਂ ਬਦਲਣਾ ਚਾਹੁੰਦਾ ਹੈ।
ਇਹ ਵੰਡ ਉਲਝਾਉਣ ਵਾਲੀਆਂ ਰਿਪੋਰਟਾਂ ਦੀ ਪੂਰੀ ਸ਼੍ਰੇਣੀ ਦੀ ਵਿਆਖਿਆ ਕਰਦੀ ਹੈ। ਜੋ ਕਲਾਇੰਟ ਕਨੈਕਟ ਹੁੰਦਾ ਹੈ, ਸਫਲਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਟ੍ਰੈਫ਼ਿਕ ਗ਼ਲਤ ਰਸਤੇ ਭੇਜਦਾ ਹੈ, ਉਸ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਸਕ੍ਰਿਪਟ ਦੀ ਸਮੱਸਿਆ ਹੁੰਦੀ ਹੈ, ਟਨਲ ਦੀ ਨਹੀਂ, ਅਤੇ ਫਾਰਮੂਲਾ ਦੁਬਾਰਾ ਇੰਸਟਾਲ ਕਰਨ ਨਾਲ ਇਹ ਸਿਰਫ਼ ਇਸ ਲਈ ਠੀਕ ਹੁੰਦਾ ਹੈ ਕਿ ਸਕ੍ਰਿਪਟ ਵੀ ਦੁਬਾਰਾ ਇੰਸਟਾਲ ਹੁੰਦੀ ਹੈ। ਫਾਰਮੂਲੇ ਦੇ ਮੌਜੂਦਾ macOS ਅਤੇ CPU ਆਰਕੀਟੈਕਚਰ ਸਮਰਥਨ ਦੀ ਜਾਂਚ ਕਰੋ, ਉਸ 'ਤੇ ਯੋਜਨਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ; ਜੋ Mac ਸ਼ੈੱਲ ਬਿਲਕੁਲ ਠੀਕ ਚਲਾਉਂਦਾ ਹੈ, ਉਸ ਲਈ ਵੀ ਸ਼ਾਇਦ ਹਾਲੇ ਕੋਈ ਮੌਜੂਦਾ ਪੈਕੇਜ ਨਹੀਂ ਬਣਿਆ।
ਸਰੋਤ ਦਾ ਰਸਤਾ ਅਸਲ ਵਿੱਚ ਕੀ ਕਰਦਾ ਹੈ
ਰਿਲੀਜ਼ ਆਰਕਾਈਵ ਬਣਾਈ ਗਈ ਬਿਲਡ ਸਿਸਟਮ ਨਾਲ ਆਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਜਾਣੀ-ਪਛਾਣੀ ./configure ਸ਼ੁਰੂ ਤੋਂ ਹੀ ਮੌਜੂਦ ਹੁੰਦੀ ਹੈ। git ਚੈੱਕਆਉਟ ਵਿੱਚ ਨਹੀਂ, ਕਿਉਂਕਿ ਬਣਾਈਆਂ ਗਈਆਂ ਫ਼ਾਈਲਾਂ ਬਿਲਡ ਦੇ ਉਤਪਾਦ ਹਨ, ਪ੍ਰੋਜੈਕਟ ਵੱਲੋਂ ਸੰਭਾਲੀਆਂ ਚੀਜ਼ਾਂ ਨਹੀਂ। ./autogen.sh ਚੈੱਕਆਉਟ ਦੀਆਂ ਹਦਾਇਤਾਂ ਵਿੱਚ ਦਿਸਦੀ ਹੈ, ਆਰਕਾਈਵ ਵਿੱਚ ਨਹੀਂ, ਇਸਦਾ ਪੂਰਾ ਕਾਰਨ ਇਹੀ ਹੈ।
./autogen.sh
./configure
make
make install
ਹਰ ਲਾਈਨ ਕੁਝ ਖ਼ਾਸ ਕਰਦੀ ਹੈ, ਅਤੇ ਕਿਹੜੀ ਫੇਲ੍ਹ ਹੋਈ ਇਹ ਜਾਣਨਾ ਬਹੁਤ ਅੰਦਾਜ਼ੇ ਬਚਾਉਂਦਾ ਹੈ। autogen ਪੜਾਅ configure ਬਣਾਉਣ ਲਈ autotools ਚਲਾਉਂਦਾ ਹੈ। configure ਪੜਾਅ ਕਲਾਇੰਟ ਲਈ ਲੋੜੀਂਦੇ ਕੰਪਾਇਲਰ, ਲਾਇਬ੍ਰੇਰੀਆਂ ਅਤੇ ਹੈਡਰ ਜਾਂਚਦਾ ਹੈ, ਫਿਰ ਜੋ ਮਿਲਿਆ ਉਸ ਨੂੰ ਦਰਸਾਉਣ ਵਾਲੀ makefile ਲਿਖਦਾ ਹੈ। make ਪੜਾਅ ਕੰਪਾਇਲ ਕਰਦਾ ਹੈ। install ਪੜਾਅ ਨਤੀਜੇ ਤੁਹਾਡੇ ਪਾਥ ਵਿੱਚ ਕਿਤੇ ਕਾਪੀ ਕਰਦਾ ਹੈ।
ਉਸੇ ਆਖ਼ਰੀ ਲਾਈਨ 'ਤੇ ਸਲਾਹ ਆਮ ਤੌਰ 'ਤੇ ਗ਼ਲਤ ਹੋ ਜਾਂਦੀ ਹੈ। ਇੰਸਟਾਲੇਸ਼ਨ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਨਹੀਂ ਕਿ ਬਿਲਡ ਕੰਮ ਕੀਤਾ, ਅਤੇ ਇਸਨੂੰ ਕਿਸੇ ਵੀ ਡਾਊਨਲੋਡ ਫ਼ੋਲਡਰ ਵਿੱਚ ਉੱਚ ਅਧਿਕਾਰਾਂ ਨਾਲ ਚਲਾਉਣਾ ਉਹਨਾਂ ਫ਼ਾਈਲਾਂ ਨੂੰ ਖਿਲੇਰਨ ਦਾ ਵਧੀਆ ਤਰੀਕਾ ਹੈ ਜੋ ਬਾਅਦ ਵਿੱਚ ਯਾਦ ਨਹੀਂ ਰਹਿਣਗੀਆਂ। ਜੇ ਲਾਇਬ੍ਰੇਰੀ ਨਾ ਹੋਣ ਕਾਰਨ configure ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਲਾਹੇਵੰਦ ਆਉਟਪੁੱਟ ਉਸ ਵੱਲੋਂ ਛਾਪੀ ਪਹਿਲੀ ਗ਼ਲਤੀ ਹੈ, ਲਾਗ ਦੀਆਂ ਆਖ਼ਰੀ ਵੀਹ ਲਾਈਨਾਂ ਨਹੀਂ।
ਸੈਸ਼ਨ ਅਤੇ ਨੈੱਟਵਰਕ ਸੰਰਚਨਾ ਵੱਖਰੇ ਹਨ
ਇਹ ਫ਼ਰਕ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਕਨੈਕਸ਼ਨ ਸੱਚਮੁੱਚ ਟ੍ਰੈਫ਼ਿਕ ਢੋਂਦਾ ਹੈ ਜਾਂ ਨਹੀਂ। TLS ਸੈਸ਼ਨ ਸਥਾਪਿਤ ਕਰਨ ਨਾਲ ਤੁਹਾਨੂੰ ਕਲਾਇੰਟ ਪਾਸੇ ਇੰਟਰਫ਼ੇਸ ਮਿਲਦਾ ਹੈ। ਰੂਟ, ਪਤੇ ਅਤੇ DNS ਰਿਜ਼ਾਲਵਰ ਲਾਗੂ ਕਰਨਾ ਨੈੱਟਵਰਕ ਸਕ੍ਰਿਪਟ ਰਾਹੀਂ ਕੀਤਾ ਜਾਣ ਵਾਲਾ ਦੂਜਾ ਪੜਾਅ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਤੋਂ ਬਿਨਾਂ ਬਾਈਨਰੀ ਬਣਾਉਣ ਵਾਲੇ ਬਿਲਡ ਕੋਲ ਅੱਧਾ ਕਲਾਇੰਟ ਹੁੰਦਾ ਹੈ।
ਇਹੀ ਵੰਡ ਦੱਸਦੀ ਹੈ ਕਿ ਇੱਕੋ ਜਿਹੇ ਕਲਾਇੰਟ ਵਾਲੀਆਂ ਦੋ ਮਸ਼ੀਨਾਂ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਿਉਂ ਕਰਦੀਆਂ ਹਨ: ਸਕ੍ਰਿਪਟ ਸਿਸਟਮ ਦੀ ਨੈੱਟਵਰਕ ਸੰਰਚਨਾ ਨਾਲ ਸਲਾਹ ਲੈਂਦੀ ਹੈ, ਅਤੇ ਉਸ ਸੰਰਚਨਾ ਵਿੱਚ ਉਹ ਸਭ ਕੁਝ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ ਜਿਸਨੇ ਰੂਟ ਦਾ ਦਾਅਵਾ ਕੀਤਾ ਹੈ। ਜਦੋਂ ਸਪਲਿਟ ਟਨਲ ਟ੍ਰੈਫ਼ਿਕ ਨੂੰ ਕਿਸੇ ਅਣਕਿਆਸੀ ਥਾਂ ਭੇਜਦੀ ਹੈ, ਟਨਲ ਆਪਣਾ ਕੰਮ ਕਰ ਰਹੀ ਹੁੰਦੀ ਹੈ ਅਤੇ ਜਾਂਚਣ ਵਾਲੀ ਚੀਜ਼ ਰੂਟਿੰਗ ਫ਼ੈਸਲਾ ਹੈ।
ਇਸ ਲਈ ਡੀਬੱਗ ਕਰਦਿਆਂ ਪੁੱਛੋ ਕਿ ਕਿਹੜੀ ਪਰਤ ਫੇਲ੍ਹ ਹੋਈ। ਜੋ ਸੈਸ਼ਨ ਕਦੇ ਸਥਾਪਿਤ ਨਹੀਂ ਹੁੰਦਾ ਉਹ ਪ੍ਰੋਟੋਕੋਲ, ਸਰਟੀਫਿਕੇਟ ਜਾਂ ਪ੍ਰਮਾਣ ਹਨ। ਜੋ ਸੈਸ਼ਨ ਸਥਾਪਿਤ ਹੁੰਦਾ ਹੈ ਅਤੇ ਕੁਝ ਨਹੀਂ ਭੇਜਦਾ ਉਹ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਸਕ੍ਰਿਪਟ ਹੈ। ਜੋ ਇੰਸਟਾਲ ਕੀਤਾ ਕਲਾਇੰਟ ਇੱਕ ਨੈੱਟਵਰਕ ਤੋਂ ਕੰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਦੂਜੇ ਤੋਂ ਨਹੀਂ, ਉਹ ਪਹੁੰਚ ਹੈ, ਅਤੇ ਕਿੰਨੀ ਵੀ ਮੁੜ-ਬਿਲਡ ਇਸਨੂੰ ਨਹੀਂ ਬਦਲਦੀ।
ਜਾਣੋ ਤੁਸੀਂ ਕਿਹੜੀ ਬਾਈਨਰੀ ਚਲਾ ਰਹੇ ਹੋ
ਹੱਥੀਂ ਇੰਸਟਾਲ ਕੀਤੀ ਬਿਲਡ ਅਤੇ ਪੈਕੇਜ ਕੀਤੀ ਬਾਈਨਰੀ ਸ਼ਾਂਤੀ ਨਾਲ ਇਕੱਠੀਆਂ ਰਹਿ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਕਿਹੜੀ ਚੱਲੇਗੀ ਇਹ ਤੁਹਾਡੇ ਪਾਥ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਤੁਹਾਡੇ ਇਰਾਦਿਆਂ 'ਤੇ ਨਹੀਂ। ਕਿਸੇ ਨੂੰ ਸੰਸਕਰਣ ਨੰਬਰ ਦੱਸਣ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਪਤਾ ਕਰੋ।
which -a openconnect
openconnect --version
brew list --versions openconnect
ਪਹਿਲੀ ਕਮਾਂਡ ਤੁਹਾਡੇ ਸ਼ੈੱਲ ਨੂੰ ਦਿਸਣ ਵਾਲੀ ਹਰ ਕਾਪੀ ਨੂੰ ਉਸੇ ਕ੍ਰਮ ਵਿੱਚ ਸੂਚੀਬੱਧ ਕਰਦੀ ਹੈ ਜਿਸ ਵਿੱਚ ਉਹ ਉਹਨਾਂ ਨੂੰ ਅਜ਼ਮਾਏਗਾ। ਦੂਜੀ ਦੱਸਦੀ ਹੈ ਕਿ ਕਿਸਨੇ ਜਵਾਬ ਦਿੱਤਾ। ਜਦੋਂ ਇਹ ਤੁਹਾਡੀ ਉਮੀਦ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ, ਤੁਸੀਂ ਪੁਰਾਣੇ ਤਜਰਬੇ ਦੀ ਬਿਲਡ ਚਲਾ ਰਹੇ ਹੋ, ਅਤੇ ਕੋਈ ਸੰਰਚਨਾ ਤਬਦੀਲੀ ਇਸਨੂੰ ਨਹੀਂ ਹਿਲਾਏਗੀ।
ਕਲਾਇੰਟ ਇੰਸਟਾਲ ਕਰਨਾ ਗੇਟਵੇ ਦੀ ਮਨਜ਼ੂਰੀ ਨਹੀਂ
ਕੰਮ ਕਰਦੀ ਬਾਈਨਰੀ ਤੈਨਾਤੀ ਨੂੰ ਅਨੁਕੂਲ ਨਹੀਂ ਬਣਾਉਂਦੀ। ਗੇਟਵੇ ਦਾ ਪ੍ਰੋਟੋਕੋਲ, ਉਸਦਾ ਪ੍ਰਮਾਣੀਕਰਨ ਪ੍ਰਵਾਹ ਅਤੇ ਪ੍ਰਬੰਧਿਤ ਡਿਵਾਈਸ ਦੀ ਕੋਈ ਵੀ ਲੋੜ ਉਸਦੇ ਮਾਲਕਾਂ ਨਾਲ ਪੁਸ਼ਟੀ ਕਰੋ, ਕਿਉਂਕਿ ਇਹ ਨੀਤੀ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਪਰਤ ਦੇ ਤੱਥ ਹਨ ਜੋ ਬਿਲਡ ਨਹੀਂ ਦੇ ਸਕਦੀ।
ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਬਿਲਡ ਹਦਾਇਤਾਂ autotools ਕ੍ਰਮ ਅਤੇ ਨੈੱਟਵਰਕ ਸਕ੍ਰਿਪਟ ਦੀ ਲੋੜ ਨੂੰ ਹੋਰ ਵਿਸਥਾਰ ਨਾਲ ਕਵਰ ਕਰਦੀਆਂ ਹਨ, ਅਤੇ ਤੁਹਾਡੇ macOS ਸੰਸਕਰਣ ਤੋਂ ਪੁਰਾਣੀ ਬਲੌਗ ਪੋਸਟ ਦੀ ਥਾਂ ਇਹਨਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। ਜੇ ਟੀਚਾ ਸਿਰਫ਼ ਕਨੈਕਟ ਹੋਣਾ ਹੈ, ਪੈਕੇਜ ਲਓ, ਸਕ੍ਰਿਪਟ ਰੱਖੋ ਅਤੇ ਕੰਪਾਇਲਰ ਨੂੰ ਬਾਹਰ ਰੱਖੋ।