Windows VPN ਦੇ ਐਡਰੈਸ ਖੇਤਰ ਵਿੱਚ ਪੋਰਟ ਸਿਰਫ਼ SSTP ਨਾਲ ਕੰਮ ਕਰਦਾ ਹੈ
ਸਰਵਰ ਨਾਮ ਖੇਤਰ host:port ਨਹੀਂ ਹੈ। PPTP, L2TP ਅਤੇ IKEv2 ਦੇ ਪੋਰਟ ਸਥਿਰ ਹਨ; SSTP ਪੋਰਟ ਨੂੰ ਸਿਰਫ਼ ਪੂਰੇ https:// URL ਵਜੋਂ ਸਵੀਕਾਰਦਾ ਹੈ, ਅਤੇ 443 ਅੱਗੇ ਭੇਜਣਾ ਵੱਧ ਸਾਫ਼ ਹੈ।
ਇੱਕ VPN ਸਰਵਰ TCP 10443 ਉੱਤੇ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, Windows ਦੇ ਅੰਦਰੂਨੀ ਕਲਾਇੰਟ ਕੋਲ ਸਹੀ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹਨ, ਅਤੇ ਫਿਰ ਵੀ ਕਨੈਕਸ਼ਨ DNS ਟਾਈਮਆਊਟ ਵਰਗੇ ਠਹਿਰਾਅ ਤੋਂ ਬਾਅਦ ਟੁੱਟ ਜਾਂਦਾ ਹੈ। ਕਾਰਨ ਆਮ ਤੌਰ ’ਤੇ ਐਡਰੈਸ ਖੇਤਰ ਹੁੰਦਾ ਹੈ: ਸਰਵਰ ਨਾਮ ਜਾਂ ਐਡਰੈਸ ਵਿੱਚ vpn.example.com:10443 ਲਿਖਣ ਨਾਲ Windows ਪੂਰੀ ਸਤਰ ਨੂੰ ਹੋਸਟਨਾਮ ਵਜੋਂ ਪੜ੍ਹਦਾ ਹੈ, ਕਿਉਂਕਿ ਉਹ ਡੱਬਾ ਆਮ host:port ਇਨਪੁਟ ਨਹੀਂ ਹੈ। ਪੋਰਟ ਉੱਥੇ ਦੱਸਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਪ੍ਰੋਫ਼ਾਈਲ ਦੁਆਰਾ ਵਰਤੇ ਟਨਲ ਕਿਸਮ ’ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਅਤੇ ਚਾਰ ਕਿਸਮਾਂ ਵਿੱਚੋਂ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਮੁੱਲ ਨੂੰ ਐਸੀ ਚੀਜ਼ ਮੰਨਦੀ ਹੈ ਜਿਸਨੂੰ ਉਹ ਪਾਰਸ ਕਰ ਸਕੇ।
ਐਡਰੈਸ ਖੇਤਰ host:port ਡੱਬਾ ਕਿਉਂ ਨਹੀਂ ਹੈ
ਉਸ ਖੇਤਰ ਪਿੱਛੇ ਪ੍ਰੋਫ਼ਾਈਲ ਵਿਸ਼ੇਸ਼ਤਾ ServerAddress ਹੈ, ਅਤੇ ਹਰ ਟਨਲ ਕਿਸਮ ਆਪ ਫੈਸਲਾ ਕਰਦੀ ਹੈ ਕਿ ਸਤਰ ਨਾਲ ਕੀ ਕਰਨਾ ਹੈ। ਉਨ੍ਹਾਂ ਵਿੱਚੋਂ ਤਿੰਨ ਕੋਲ ਭਰਨ ਲਈ ਪੋਰਟ ਪੈਰਾਮੀਟਰ ਨਹੀਂ ਹੈ, ਇਸ ਲਈ ਕੋਲਨ ਅਤੇ ਸੰਖਿਆ ਸਿਰਫ਼ ਐਸੇ ਨਾਮ ਦੇ ਅੱਖਰ ਹਨ ਜੋ ਕਦੇ ਹੱਲ ਨਹੀਂ ਹੋਣਗੇ। ਚੌਥਾ HTTPS ਉੱਤੇ ਚੱਲਦਾ ਹੈ, ਜਿੱਥੇ ਪੋਰਟ URL ਦਾ ਹਿੱਸਾ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਮੁੱਲ ਐਸੀ ਸ਼ਕਲ ਵਿੱਚ ਲਿਖਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ URL ਵਜੋਂ ਪਾਰਸ ਹੋਵੇ।
ਇਸੇ ਲਈ ਅਸਫਲਤਾ ਨਾਮ-ਹੱਲ ਵਰਗੀ ਦਿਖਦੀ ਹੈ, ਨਾਮਨਜ਼ੂਰ ਕਨੈਕਸ਼ਨ ਵਰਗੀ ਨਹੀਂ। ਰਿਪੋਰਟ ਕਰਨ ਲਈ ਕੋਈ ਖਰਾਬ ਪੋਰਟ ਨਹੀਂ, ਸਿਰਫ਼ ਇੱਕ ਐਸਾ ਹੋਸਟਨਾਮ ਹੈ ਜੋ ਮੌਜੂਦ ਨਹੀਂ, ਅਤੇ ਗੜਬੜ ਰਿਜ਼ੌਲਵਰ ਦੇ ਹਾਰ ਮੰਨਣ ਤੋਂ ਬਾਅਦ ਆਉਂਦੀ ਹੈ। ਸਰਵਰ ਨੂੰ ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਜਾਂਚੋ ਕਿ ਪ੍ਰੋਫ਼ਾਈਲ ਕਿਹੜੀ ਟਨਲ ਕਿਸਮ ਦਾ ਦਾਅਵਾ ਕਰਦੀ ਹੈ।
ਸਥਿਰ ਪੋਰਟ ਵਾਲੀਆਂ ਤਿੰਨ ਕਿਸਮਾਂ
PPTP TCP 1723 ਨਾਲ ਜੁੜਦਾ ਹੈ ਅਤੇ ਫਿਰ ਟਨਲ ਨੂੰ GRE, IP ਪ੍ਰੋਟੋਕੋਲ 47 ਵਿੱਚ ਲੈ ਜਾਂਦਾ ਹੈ। L2TP/IPsec ਟਨਲ ਲਈ UDP 1701 ਅਤੇ IPsec ਲਈ UDP 500 ਤੇ 4500 ਵਰਤਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ 4500 NAT ਪਾਰ ਕਰਨ ਦਾ ਪੋਰਟ ਹੈ। IKEv2 ਵੀ UDP 500 ਅਤੇ 4500 ਵਰਤਦਾ ਹੈ। ਇਨ੍ਹਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਪ੍ਰੋਫ਼ਾਈਲ ਇੰਟਰਫ਼ੇਸ ਵਿੱਚ ਕਿਤੇ ਪੋਰਟ ਖੇਤਰ ਨਹੀਂ ਦਿਖਾਉਂਦੀ, ਅਤੇ ਕੋਈ ਵੀ ਗੈਰ-ਮਿਆਰੀ ਪੋਰਟ ’ਤੇ ਗੱਲਬਾਤ ਨਹੀਂ ਕਰੇਗੀ।
ਇਸ ਲਈ ਕਸਟਮ ਪੋਰਟ ’ਤੇ ਸੁਣਨ ਵਾਲਾ ਸਰਵਰ ਇਨ੍ਹਾਂ ਪ੍ਰੋਫ਼ਾਈਲਾਂ ਲਈ ਅਪਹੁੰਚ ਹੈ, ਐਡਰੈਸ ਕਿਵੇਂ ਵੀ ਲਿਖਿਆ ਜਾਵੇ। ਵਿਹਾਰਕ ਜਵਾਬ ਸੀਮਤ ਹਨ: ਮਿਆਰੀ ਪੋਰਟ ਸਰਵਰ ’ਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰੋ, ਜਾਂ ਮਿਆਰੀ ਪੋਰਟ ਨੂੰ ਉਸ ਦੇ ਸਾਹਮਣੇ ਵਾਲੇ ਰਾਊਟਰ ’ਤੇ ਕਸਟਮ ਪੋਰਟ ਵਿੱਚ ਬਦਲੋ। ਦੋਵੇਂ ਕਲਾਇੰਟ ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਅਛੂਤਾ ਛੱਡਦੇ ਹਨ, ਜੋ ਪ੍ਰੋਫ਼ਾਈਲ ਨੀਤੀ ਨਾਲ ਤੈਨਾਤ ਹੋਣ ਅਤੇ ਹੱਥ ਨਾਲ ਨਾ ਲਿਖੇ ਜਾਣ ਵੇਲੇ ਬਹੁਤ ਕੀਮਤੀ ਹੁੰਦਾ ਹੈ।
SSTP ਨੂੰ URL ਚਾਹੀਦਾ ਹੈ, ਨਾਮ ਨਹੀਂ
SSTP ਅਪਵਾਦ ਹੈ ਕਿਉਂਕਿ ਇਹ TLS ਸੈਸ਼ਨ ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ। ਖੇਤਰ URL ਵਜੋਂ ਪਾਰਸ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ: ਪਹਿਲਾਂ https:// ਸਕੀਮ, ਫਿਰ ਹੋਸਟ, ਫਿਰ ਕੋਲਨ ਅਤੇ ਪੋਰਟ। ਸਕੀਮ ਤੋਂ ਬਿਨਾਂ Windows ਮੁੱਲ ਨੂੰ ਆਮ ਨਾਮ ਹੀ ਮੰਨਦਾ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਵੀ TLS ਅਦਲਾ-ਬਦਲੀ ਤੋਂ ਪਹਿਲਾਂ ਕਨੈਕਸ਼ਨ ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ।
ਲੋਕਾਂ ਨੂੰ ਇਸ ਦਾ ਹੈਰਾਨ ਹੋਣ ਦਾ ਕਾਰਨ ਇਹ ਹੈ ਕਿ ਡਿਫ਼ਾਲਟ ਪੋਰਟ ਨੰਗਾ ਹੋਸਟਨਾਮ ਸਵੀਕਾਰਦਾ ਹੈ। ਜਿਸ ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਕਦੇ ਕਸਟਮ ਪੋਰਟ ਦੀ ਲੋੜ ਨਹੀਂ ਪਈ ਉਹ ਇਹ ਨਿਯਮ ਕਦੇ ਨਹੀਂ ਸਿਖਾਉਂਦੀ, ਅਤੇ ਜੋ ਪਹਿਲਾ ਵਿਅਕਤੀ ਇੱਕ ਜੋੜਦਾ ਹੈ ਉਹ ਅਸਫਲਤਾ ਰਾਹੀਂ ਹੀ ਇਸਨੂੰ ਜਾਣਦਾ ਹੈ। ਸੰਭਾਲਣ ਤੋਂ ਬਾਅਦ ਸੰਵਾਦ ਡੱਬੇ ’ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ ਸੰਭਾਲਿਆ ਮੁੱਲ ਦੁਬਾਰਾ ਪੜ੍ਹੋ:
Get-VpnConnection -Name "Corporate SSTP" | Select-Object Name, ServerAddress, TunnelType
ServerAddress ਠੀਕ ਉਹੀ ਦਿਖਾਉਂਦਾ ਹੈ ਜੋ ਸੰਭਾਲਿਆ ਗਿਆ ਸੀ। ਜੇ ਇਹ ਕੋਲਨ ਵਾਲਾ ਨੰਗਾ ਹੋਸਟਨਾਮ ਪੜ੍ਹਿਆ ਜਾਵੇ, ਤਾਂ ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਕਦੇ URL ਨਹੀਂ ਮਿਲਿਆ ਅਤੇ ਕਿੰਨੀ ਵੀ ਵਾਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਨਾਲ ਇਹ ਠੀਕ ਨਹੀਂ ਹੋਵੇਗਾ।
ਉਸੇ ਡੱਬੇ ਵਿੱਚ ਚਿਪਕਾਇਆ ਜਾਣ ਵਾਲਾ ਵਿਕਰੇਤਾ ਸਿੰਟੈਕਸ
ਕੁਝ ਗੇਟਵੇ ਉਸ ਖੇਤਰ ਲਈ ਵਾਧੂ ਰੀਤਾਂ ਦਰਜ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਪੋਰਟ ਤੋਂ ਬਾਅਦ ਜੋੜਿਆ realm ਜਾਂ ਐਸੇ ਕਵੈਰੀ ਪੈਰਾਮੀਟਰ ਜੋ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਦਾ ਵਿਵਹਾਰ ਬਦਲਦੇ ਹਨ। ਉਨ੍ਹਾਂ ਨੂੰ ਉਸ ਵਿਕਰੇਤਾ ਦਾ ਸਰਵਰ ਸਮਝਦਾ ਹੈ ਅਤੇ ਕੁਝ ਬਿਲਡਾਂ ਵਿੱਚ ਉਸ ਦਾ ਆਪਣਾ ਕਲਾਇੰਟ ਵੀ। ਉਹ Windows ਪ੍ਰੋਫ਼ਾਈਲ ਫਾਰਮੈਟ ਦਾ ਹਿੱਸਾ ਨਹੀਂ, ਅਤੇ ਉਨ੍ਹਾਂ ਨੂੰ ਅੰਦਰੂਨੀ ਪ੍ਰੋਫ਼ਾਈਲ ਵਿੱਚ ਚਿਪਕਾਉਣ ਨਾਲ ਆਮ ਤੌਰ ’ਤੇ ਉਹੀ ਚੁੱਪ ਨਾਮ-ਅਸਫਲਤਾ ਹੁੰਦੀ ਹੈ।
ਪ੍ਰਮਾਣ-ਪੱਤਰ ਜਾਂਚ ਬੰਦ ਕਰਨ ਵਾਲੇ ਪੈਰਾਮੀਟਰ ਨੂੰ ਸੁਧਾਰ ਦੀ ਥਾਂ ਚੇਤਾਵਨੀ ਮੰਨੋ। ਜੇ ਪ੍ਰੋਫ਼ਾਈਲ ਸਿਰਫ਼ ਉਸ ਪੈਰਾਮੀਟਰ ਨਾਲ ਹੀ ਜੁੜਦੀ ਹੈ, ਤਾਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਵਰਤੇ ਜਾ ਰਹੇ ਨਾਮ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ, ਅਤੇ ਸਹੀ ਮੁਰੰਮਤ ਗੇਟਵੇ ’ਤੇ ਹੈ, ਕਲਾਇੰਟ ਵਿੱਚ ਨਹੀਂ। ਪੋਰਟ ਤੋਂ ਬਾਅਦ ਦਾ realm ਵੀ ਇਹੋ ਗੁਣ ਰੱਖਦਾ ਹੈ: ਇਹ ਕੁਝ ਕਰਦਾ ਹੈ ਸਿਰਫ਼ ਤਦ ਜਦੋਂ ਦੂਜੇ ਪਾਸੇ ਦਾ ਸਰਵਰ ਇਸ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।
ਪੋਰਟ ਸਾਬਤ ਕਰੋ, ਫਿਰ ਅਸਫਲ ਪੜਾਅ ਪੜ੍ਹੋ
ਪ੍ਰੋਫ਼ਾਈਲ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਕਲਾਇੰਟ ਦੇ ਨੈੱਟਵਰਕ ਤੋਂ ਕੁਝ ਉਸ ਪੋਰਟ ’ਤੇ TCP ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ:
Test-NetConnection vpn.example.com -Port 10443
ਸਫਲਤਾ ਸਰੋਤੇ ਨੂੰ ਸਾਬਤ ਕਰਦੀ ਹੈ, SSTP ਨੂੰ ਨਹੀਂ। ਵੈੱਬ ਸਰਵਰ, ਰਿਵਰਸ ਪ੍ਰੌਕਸੀ ਜਾਂ ਲੋਡ ਬੈਲੰਸਰ TCP ਹੈਂਡਸ਼ੇਕ ਪੂਰਾ ਕਰ ਸਕਦੇ ਹਨ ਅਤੇ ਫਿਰ ਵੀ SSTP ਨਹੀਂ ਬੋਲ ਸਕਦੇ, ਇਸ ਲਈ ਹਰੀ ਪਰਖ ਅਤੇ ਲਾਲ VPN ਅਸਲ ਸੰਜੋਗ ਹੈ। ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦਾ ਵਿਸ਼ਾ ਪ੍ਰੋਫ਼ਾਈਲ ਦੇ ਨਾਮ ਨਾਲ ਤੁਲਨਾ ਕਰੋ, ਅਤੇ ਜਿਨ੍ਹਾਂ ਬਿਲਡਾਂ ਵਿੱਚ ਇਹ ਸ਼ਾਮਲ ਹੈ ਉੱਥੇ RasClient ਲੌਗ ਵੇਖੋ, ਕਿਉਂਕਿ ਇਹ ਆਮ ਟਾਈਮਆਊਟ ਦੀ ਥਾਂ ਅਸਫਲ ਹੋਇਆ ਪੜਾਅ ਦਰਜ ਕਰਦਾ ਹੈ।
ਫਿਰ ਉਸ ਬਦਲ ’ਤੇ ਵਿਚਾਰ ਕਰੋ ਜੋ ਸਮੱਸਿਆ ਨੂੰ ਦਰਜ ਕਰਨ ਦੀ ਥਾਂ ਹਟਾ ਦਿੰਦਾ ਹੈ: ਬਾਹਰੋਂ TCP 443 ਨੂੰ VPN ਸਰਵਰ ਦੇ 10443 ਵੱਲ ਭੇਜੋ। ਫਿਰ ਕਲਾਇੰਟ ਬਿਨਾਂ ਕਿਸੇ ਪੋਰਟ ਦੇ ਡਿਫ਼ਾਲਟ ਪ੍ਰੋਫ਼ਾਈਲ ਵਰਤਦਾ ਹੈ, ਜੋ ਆਮ ਤੌਰ ’ਤੇ ਪ੍ਰਬੰਧਿਤ ਬੇੜੇ ਲਈ ਸਭ ਤੋਂ ਸਾਫ਼ ਪ੍ਰਬੰਧ ਹੁੰਦਾ ਹੈ ਅਤੇ ਕਸਟਮ ਪੋਰਟ ਨੂੰ ਅੰਦਰੂਨੀ ਵੇਰਵਾ ਬਣਾ ਦਿੰਦਾ ਹੈ।