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

ਵਿਕਲਪਾਂ ਤੋਂ ਹੁੱਕ ਤੱਕ ਇੱਕ ਸੈਸ਼ਨ ਦਾ ਪਿੱਛਾ ਕਰੋ

ਜਿੱਥੇ ਸੈਸ਼ਨ ਬਣਦਾ ਹੈ ਉੱਥੋਂ ਸ਼ੁਰੂ ਕਰੋ। xl2tpd ਉਸ ਟਨਲ ਦੇ pppoptfile ਵੱਲੋਂ ਨਾਮ ਦਿੱਤੀ ਵਿਕਲਪ ਫਾਈਲ ਨਾਲ pppd ਚਲਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਪਲੱਗਇਨ, ਯੂਨਿਟ ਨੰਬਰ ਅਤੇ ਕੋਈ ਵੀ ਪ੍ਰੋਫਾਈਲ ਮਾਰਕਰ ਵਿਸ਼ਵਵਿਆਪੀ ਫਾਈਲ ਵਿੱਚ ਨਹੀਂ, ਉੱਥੇ ਹੀ ਤੈਅ ਹੁੰਦੇ ਹਨ। ਕੁਨੈਕਸ਼ਨ ਮੈਨੇਜਰ ਆਪਣੇ ਵਿਕਲਪ ਬਣਾ ਸਕਦਾ ਹੈ, ਭਾਵ /etc/ppp/options ਸੋਧਣਾ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਨਹੀਂ ਕਿ ਤੁਹਾਡੀ ਚਿੰਤਾ ਵਾਲਾ ਟਨਲ ਬਦਲਿਆ ਹੈ। ਜਦੋਂ ਲਿੰਕ ਉੱਪਰ ਆਉਂਦਾ ਹੈ, pppd ਡਿਸਟ੍ਰੀਬਿਊਸ਼ਨ ਦੇ ਡਿਸਪੈਚਰ ਤੋਂ ਸੂਚਨਾ ਸਕ੍ਰਿਪਟਾਂ ਚਲਾਉਂਦਾ ਹੈ। ਉਹ ਸਕ੍ਰਿਪਟਾਂ ਇੰਟਰਫੇਸ ਦਾ ਨਾਮ ਪਹਿਲੇ ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਅਤੇ ਪ੍ਰੋਫਾਈਲ ਮਾਰਕਰ ਛੇਵੇਂ ਆਰਗਿਊਮੈਂਟ ਵਜੋਂ ਲੈਂਦੀਆਂ ਹਨ।

ਵਾਤਾਵਰਣ ਉਹੀ ਤੱਥ IFNAME ਅਤੇ PPP_IPPARAM ਵਰਗੇ ਨਾਵਾਂ ਹੇਠ ਰੱਖਦਾ ਹੈ, ਪਰ ਉਨ੍ਹਾਂ ਦੀ ਉਪਲਬਧਤਾ ਸਥਾਪਿਤ ਡਿਸਪੈਚਰ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ। ਕਿਸੇ ਵੇਰੀਏਬਲ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਡਿਸਪੈਚਰ ਪੜ੍ਹੋ: ਕੁਝ ਡਿਸਟ੍ਰੀਬਿਊਸ਼ਨ upstream ਆਰਗਿਊਮੈਂਟ ਕ੍ਰਮ ਰੱਖਦੇ ਹਨ, ਹੋਰ ਤੁਹਾਡੀ ਸਕ੍ਰਿਪਟ ਬੁਲਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਵਾਤਾਵਰਣ ਫਿਲਟਰ ਕਰਦੇ ਹਨ। ਸਿਰਫ਼ $1 ਅਤੇ ਛੇਵਾਂ ਆਰਗਿਊਮੈਂਟ ਵਰਤਣ ਵਾਲੀ ਸਕ੍ਰਿਪਟ ਦੋਵੇਂ ਹਾਲਤਾਂ ਵਿੱਚ ਕੰਮ ਕਰਦੀ ਹੈ।

ਕਾਲ ਤੋਂ ਇੰਟਰਫੇਸ ਪੜ੍ਹੋ

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

ipparam office-vpn

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

ਨਾਮ ਸਿਰਫ਼ ਤਦ ਮੰਗੋ ਜਦੋਂ ਇਨਕਾਰ ਸਹੀ ਹੋਵੇ

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

ifname ppp-office

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

ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ, ਸਕ੍ਰਿਪਟ ਜੋ ਨਾਮ ਦੇਖਦੀ ਹੈ ਉਹੀ ਕੰਮ ਕਰਨ ਯੋਗ ਹੈ। ਕਨਫਿਗਰ ਕੀਤਾ ਨਾਮ ਕਾਲ ਪੜ੍ਹਨ ਦੀ ਲੋੜ ਨਹੀਂ ਹਟਾਉਂਦਾ, ਕਿਉਂਕਿ ਮੁੜ ਚਾਲੂ ਕੀਤਾ ਸੈਸ਼ਨ ਪਿਛਲੇ ਨਾਲੋਂ ਵੱਖਰਾ ਨਾਮ ਪੇਸ਼ ਕਰ ਸਕਦਾ ਹੈ।

ਟੀਅਰਡਾਊਨ ਨੂੰ ਤੁਹਾਡੇ ਕਨਫਿਗਰ ਕੀਤੇ ਸੈਸ਼ਨ ਨਾਲ ਮਿਲਾਓ

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

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

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

ਸੰਬੰਧਿਤ ਲੇਖ