ਨਿੱਜੀ ਕੁੰਜੀ ਇੱਥੇ, ਜਨਤਕ ਕੁੰਜੀ ਉੱਥੇ: WireGuard ਕੁੰਜੀਆਂ
ਤੁਹਾਡੀ ਨਿੱਜੀ ਕੁੰਜੀ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਹੀ ਰਹਿੰਦੀ ਹੈ; ਪੀਅਰ ਐਂਟਰੀ ਦੂਜੇ ਪਾਸੇ ਦੀ ਜਨਤਕ ਕੁੰਜੀ ਰੱਖਦੀ ਹੈ। ਸਿਰਫ਼ ਜਨਤਕ ਅੱਧਾ ਹਿੱਸਾ ਸਾਂਝਾ ਕਰੋ, ਅਤੇ ਹਰ ਡਿਵਾਈਸ ਨੂੰ ਆਪਣੀ ਵੱਖਰੀ ਪਛਾਣ ਦਿਓ।
ਹੱਥੋਂ ਬਣਾਏ WireGuard ਦੀਆਂ ਜ਼ਿਆਦਾਤਰ ਅਸਫਲਤਾਵਾਂ ਇਸੇ ਗੱਲ ’ਤੇ ਆਉਂਦੀਆਂ ਹਨ ਕਿ ਕਿਹੜੀ ਕੁੰਜੀ ਕਿੱਥੇ ਗਈ। ਇੰਟਰਫੇਸ ਭਾਗ ਵਿੱਚ ਉਸ ਡਿਵਾਈਸ ਦੀ ਨਿੱਜੀ ਕੁੰਜੀ ਹੁੰਦੀ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਕਨਫਿਗਰ ਕਰ ਰਹੇ ਹੋ, ਜਦਕਿ ਪੀਅਰ ਭਾਗ ਵਿੱਚ ਦੂਜੇ ਸਿਰੇ ਦੀ ਮਸ਼ੀਨ ਦੀ ਜਨਤਕ ਕੁੰਜੀ ਹੁੰਦੀ ਹੈ। ਇਹ ਅੱਧੇ ਹਿੱਸੇ ਬਦਲਣ ਨਾਲ, ਜਾਂ ਗਲਤ ਵਾਲਾ ਚਿਪਕਾਉਣ ਨਾਲ, ਅਜਿਹਾ ਹੈਂਡਸ਼ੇਕ ਬਣਦਾ ਹੈ ਜੋ ਕਦੇ ਪੂਰਾ ਨਹੀਂ ਹੁੰਦਾ ਅਤੇ ਅਜਿਹਾ ਲਾਗ ਬਣਦਾ ਹੈ ਜੋ ਕਦੇ ਕਿਸੇ ਕੁੰਜੀ ਦਾ ਨਾਮ ਨਹੀਂ ਲੈਂਦਾ। AllowedIPs ਜਾਂ DNS ਛੂਹਣ ਤੋਂ ਪਹਿਲਾਂ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਚਾਰ ਜਾਂਚਾਂ ਕ੍ਰਮ ਵਿੱਚ ਕਰੋ।
ਦੋ ਕੁੰਜੀਆਂ, ਦੋ ਦਿਸ਼ਾਵਾਂ
ਨਿੱਜੀ ਕੁੰਜੀ ਬਿਲਕੁਲ ਇੱਕ ਡਿਵਾਈਸ ਦੀ ਹੁੰਦੀ ਹੈ ਅਤੇ ਉਸੇ ਡਿਵਾਈਸ ਦੇ ਇੰਟਰਫੇਸ ਭਾਗ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ। ਇਸਦਾ ਜਨਤਕ ਅੱਧਾ ਹਿੱਸਾ ਉਹ ਹੈ ਜੋ ਹਰ ਦੂਜੇ ਪੀਅਰ ਨੂੰ ਡਿਵਾਈਸ ਪਛਾਣਨ ਲਈ ਲੋੜੀਂਦਾ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਸੰਦ ਇਸਨੂੰ ਘੜਦੇ ਨਹੀਂ, ਬਲਕਿ ਇਸ ਤੋਂ ਲਿਆਂਦਾ ਕਰਦੇ ਹਨ। ਸਰਵਰ ਉੱਤੇ ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਦੀ ਜਨਤਕ ਕੁੰਜੀ ਪੀਅਰ ਐਂਟਰੀ ਵਜੋਂ ਦਿਸਦੀ ਹੈ; ਤੁਹਾਡੇ ਡਿਵਾਈਸ ਉੱਤੇ ਸਰਵਰ ਦੀ ਜਨਤਕ ਕੁੰਜੀ ਉਹ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੀ ਹੈ। ਇਹਨਾਂ ਸ਼ਬਦਾਂ ਵਿੱਚ ਕਨਫਿਗ ਉੱਚੀ ਆਵਾਜ਼ ਵਿੱਚ ਪੜ੍ਹਨਾ ਜ਼ਿਆਦਾਤਰ ਉਲਝਣਾਂ ਨੂੰ ਹੈਂਡਸ਼ੇਕ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਫੜ ਲੈਂਦਾ ਹੈ।
wg ਕਮਾਂਡ ਛਾਪਦੀ ਹੈ ਕਿ ਸਥਾਨਕ ਇੰਟਰਫੇਸ ਅਸਲ ਵਿੱਚ ਕੀ ਵਰਤ ਰਿਹਾ ਹੈ, ਦੋਵੇਂ ਜਨਤਕ ਕੁੰਜੀਆਂ ਸਮੇਤ। ਇਸ ਲਈ ਕਨਫਿਗਰੇਸ਼ਨ ਦੀ ਗਲਤੀ ਅਤੇ ਕਨੈਕਟਿਵਿਟੀ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਵੱਖ ਕਰਨ ਦਾ ਸਭ ਤੋਂ ਤੇਜ਼ ਤਰੀਕਾ ਇਹੀ ਹੈ:
wg show
wg show interfaces
ਪਹਿਲਾ ਆਉਟਪੁੱਟ ਹਰ ਪੀਅਰ ਨੂੰ ਉਸਦੀ ਜਨਤਕ ਕੁੰਜੀ, ਆਖਰੀ ਵਾਰ ਵਰਤਿਆ ਐਂਡਪੌਇੰਟ ਅਤੇ ਉਸਦੇ ਪਿਛਲੇ ਹੈਂਡਸ਼ੇਕ ਦੀ ਉਮਰ ਨਾਲ ਸੂਚੀਬੱਧ ਕਰਦਾ ਹੈ। ਇੱਕ ਪਾਸੇ «ਕਦੇ ਨਹੀਂ» ਅਤੇ ਦੂਜੇ ਪਾਸੇ ਹਾਲੀਆ ਹੈਂਡਸ਼ੇਕ ਉਮਰ ਉਸ ਕੁੰਜੀ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ ਜਿਸਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਸਿਰੇ ਨੇ ਸਵੀਕਾਰ ਕੀਤਾ। ਦੂਜੀ ਕਮਾਂਡ ਉਹਨਾਂ ਇੰਟਰਫੇਸਾਂ ਦੇ ਨਾਮ ਦੱਸਦੀ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਤੁਸੀਂ ਹੋਰ ਜਾਂਚ ਸਕਦੇ ਹੋ।
ਕੀ ਸਾਂਝਾ ਕਰਨਾ ਹੈ ਅਤੇ ਕੀ ਕਦੇ ਨਹੀਂ
ਜਨਤਕ ਕੁੰਜੀ ਸੌਂਪਣ ਲਈ ਹੁੰਦੀ ਹੈ, ਭਾਵੇਂ ਇਹ ਅਜੇ ਵੀ ਡਿਵਾਈਸ ਸੰਬੰਧ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਮੰਗਣ ਵਾਲੇ ਪ੍ਰਬੰਧਕ ਨੂੰ ਭੇਜਣਾ ਅਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਨਾ ਇੱਕੋ ਜਿਹਾ ਨਹੀਂ ਹੈ। ਨਿੱਜੀ ਕੁੰਜੀ ਕਦੇ ਉਸ ਡਿਵਾਈਸ ਨੂੰ ਨਹੀਂ ਛੱਡਦੀ ਜਿਸਨੇ ਇਸਨੂੰ ਬਣਾਇਆ। ਐਕਸਪੋਰਟ ਕੀਤੀ ਪ੍ਰੋਫਾਈਲ ਜਾਂ QR ਕੋਡ ਵਿੱਚ ਉਹ ਨਿੱਜੀ ਕੁੰਜੀ ਸਮੇਤ ਪੂਰਾ ਕਨਫਿਗਰੇਸ਼ਨ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਦੋਵੇਂ ਹੱਥੋਂ-ਹੱਥ ਦੇਣ ਲਈ ਸੁਰੱਖਿਅਤ ਨਹੀਂ ਹਨ, ਅਤੇ ਤਸਵੀਰ ਦੇ ਅੰਦਰ ਲਿਖਤ ਲੁਕਾਉਣ ਨਾਲ ਕੁਝ ਨਹੀਂ ਬਦਲਦਾ। ਪਹਿਲਾਂ ਸਾਂਝੀਆਂ ਕੀਤੀਆਂ ਕੁੰਜੀਆਂ ਵਿਕਲਪਿਕ ਅਤੇ ਉਨੀਆਂ ਹੀ ਗੁਪਤ ਹਨ, ਅਤੇ ਦੋਵੇਂ ਸਿਰਿਆਂ ਉੱਤੇ ਇੱਕੋ ਮੁੱਲ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ, ਵਰਨਾ ਹੈਂਡਸ਼ੇਕ ਉਸੇ ਪੜਾਅ ’ਤੇ ਰੁਕ ਜਾਂਦਾ ਹੈ।
ਇੱਕ ਹੋਰ ਫਰਕ ਸਿੱਧਾ ਕਹਿਣਾ ਬਣਦਾ ਹੈ: ਐਂਡਪੌਇੰਟ ਇੱਕ ਪਤਾ ਅਤੇ ਇੱਕ ਪੋਰਟ ਹੈ, ਕਦੇ ਵੀ ਕੁੰਜੀ ਨਹੀਂ। ਐਂਡਪੌਇੰਟ ਖੇਤਰ ਵਿੱਚ ਜਨਤਕ ਕੁੰਜੀ ਚਿਪਕਾਉਣ ਨਾਲ, ਜਾਂ ਕੁੰਜੀ ਖੇਤਰ ਵਿੱਚ ਪਤਾ, ਅਜਿਹੀ ਪ੍ਰੋਫਾਈਲ ਬਣਦੀ ਹੈ ਜੋ ਪਾਰਸ ਹੁੰਦੀ ਹੈ ਅਤੇ ਫਿਰ ਕੁਝ ਨਹੀਂ ਕਰਦੀ। ਸੰਦ ਇਸਨੂੰ ਨਹੀਂ ਫੜਨਗੇ, ਕਿਉਂਕਿ ਦੋਵੇਂ ਖੇਤਰ ਸਿਰਫ਼ ਸਟ੍ਰਿੰਗ ਹਨ। WireGuard ਦੀ ਤੇਜ਼ ਸ਼ੁਰੂਆਤ ਇੱਕ ਲਾਈਨ ਵਿੱਚ ਬਣਾਉਣ ਅਤੇ ਕੱਢਣ ਦੀ ਲੜੀ ਦਿਖਾਉਂਦੀ ਹੈ।
ਇੱਕ ਡਿਵਾਈਸ, ਇੱਕ ਪੀਅਰ ਐਂਟਰੀ
ਜਿੱਥੇ ਸੇਵਾ ਆਗਿਆ ਦਿੰਦੀ ਹੈ, ਉੱਥੇ ਹਰ ਡਿਵਾਈਸ ਨੂੰ ਆਪਣੀ ਪੀਅਰ ਪਛਾਣ ਰੱਖਣੀ ਚਾਹੀਦੀ ਹੈ। ਲੈਪਟਾਪ ਦੀ ਪੂਰੀ ਪ੍ਰੋਫਾਈਲ ਫੋਨ ’ਤੇ ਚਿਪਕਾਉਣ ਨਾਲ ਇਹ ਧੁੰਦਲਾ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਸਰਵਰ ਉੱਤੇ ਉਹ ਪਛਾਣ ਕਿਸ ਡਿਵਾਈਸ ਕੋਲ ਹੈ ਅਤੇ ਇੱਕ ਗੁੰਮਿਆ ਹੈਂਡਸੈਟ ਰੱਦ ਕਰਨਾ ਔਖਾ ਹੋ ਜਾਂਦਾ ਹੈ। ਜੇ ਨਿੱਜੀ ਕੁੰਜੀ ਲੀਕ ਹੋ ਜਾਵੇ, ਤਾਂ ਸਰਵਰ ਉੱਤੇ ਪੁਰਾਣੀ ਪੀਅਰ ਅਧਿਕਾਰਤਾ ਹਟਾਓ ਅਤੇ ਬਦਲ ਦੀ ਵਿਵਸਥਾ ਕਰੋ। ਸਥਾਨਕ ਫਾਈਲ ਮਿਟਾਉਣ ਨਾਲ ਸਰਵਰ ਦੀ ਐਂਟਰੀ ਨਹੀਂ ਮਿਟਦੀ, ਅਤੇ ਨਵੀਂ ਕਲਾਇੰਟ ਕੁੰਜੀ ਕਿਸੇ ਦੀ ਮਦਦ ਨਹੀਂ ਕਰਦੀ ਜਦ ਤੱਕ ਸਰਵਰ ਇਸਦਾ ਜਨਤਕ ਅੱਧਾ ਨਹੀਂ ਜਾਣਦਾ।
ਡਿਵਾਈਸ ਤੋਂ ਜਨਤਕ ਕੁੰਜੀ ਤੱਕ ਦਾ ਨਕਸ਼ਾ ਪਤਿਆਂ ਦੀ ਸੂਚੀ ਦੇ ਕੋਲ ਰੱਖੋ। ਉਹੀ ਸੂਚੀ ਰੱਦ ਕਰਨ ਨੂੰ ਪੂਰੀ ਦੁਪਹਿਰ ਦੀ ਬਜਾਏ ਦੋ ਮਿੰਟਾਂ ਦਾ ਕੰਮ ਬਣਾਉਂਦੀ ਹੈ।
ਹੈਂਡਸ਼ੇਕ ਤੋਂ ਬਾਅਦ ਵੀ ਕੀ ਅਸਫਲ ਹੁੰਦਾ ਹੈ
ਕੁੰਜੀ ਜੋੜੇ ਪੀਅਰਾਂ ਦੀ ਪਛਾਣ ਕਰਦੇ ਹਨ; ਉਹ ਨੈੱਟਵਰਕ ਦੇ ਵਿਵਹਾਰ ਦਾ ਫ਼ੈਸਲਾ ਨਹੀਂ ਕਰਦੇ। AllowedIPs ਪਤਾ ਰੇਂਜਾਂ ਨੂੰ ਇੱਕ ਪੀਅਰ ਨਾਲ ਜੋੜਦਾ ਹੈ, ਅਤੇ ਇਸਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਰੂਟ ਕਲਾਇੰਟ ਜਾਂ ਸੈੱਟਅੱਪ ਸੰਦ ਸੰਭਾਲਦਾ ਹੈ। ਲੱਛਣ ਆਮ ਤੌਰ ’ਤੇ ਦੱਸਦਾ ਹੈ ਕਿ ਅੱਗੇ ਕਿਹੜੀ ਪਰਤ ਖੋਲ੍ਹਣੀ ਹੈ:
| What you see | Which key problem it usually means | Where to look first |
|---|---|---|
| Handshake age stays at never on both ends | Peer public key missing, or an endpoint pointing at nothing | wg show, then the endpoint value |
| Handshake completes on one side only | The two ends hold different public keys for each other | wg show on both hosts |
| Handshake works, then no traffic | AllowedIPs or routes rather than keys | wg show and the route table |
| Worked until a key was regenerated | The peer entry still holds the old public key | Compare both public keys, then update the peer |
ਦੋਵੇਂ ਪੀਅਰਾਂ ਦੇ ਸਹੀ ਢੰਗ ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵੀ DNS ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ, ਅਤੇ ਟਨਲ ਆਪਣੇ ਆਪ ਸਿਹਤਮੰਦ ਹੋਣ ਸਮੇਂ ਵੀ ਐਪਲੀਕੇਸ਼ਨ ਅਸਫਲ ਹੋ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਕੰਮ ਕਰਦਾ ਹੈਂਡਸ਼ੇਕ ਨਿਦਾਨ ਦਾ ਅੰਤ ਨਹੀਂ ਹੈ। ਕੁੰਜੀਆਂ ਆਪਰੇਟਰ ਦੀ ਲਾਗਿੰਗ ਆਦਤ ਬਾਰੇ ਜਾਂ ਇਸ ਬਾਰੇ ਵੀ ਕੁਝ ਨਹੀਂ ਕਹਿੰਦੀਆਂ ਕਿ ਕੋਈ ਵੈੱਬਸਾਈਟ ਤੁਹਾਡਾ ਖਾਤਾ ਪਛਾਣਦੀ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਉਹ ਸਵਾਲ ਕਿਤੇ ਹੋਰ ਦੇ ਹਨ। ਚਾਰੇ ਜਾਂਚਾਂ ਪਾਸ ਹੋਣ ’ਤੇ ਨੈੱਟਵਰਕ ਪਰਤਾਂ ਵੱਲ ਵਧੋ, ਕਿਉਂਕਿ ਗੁੰਮ ਕੁੰਜੀ ਛੁਪਿਆ ਹੋਇਆ ਰੂਟਿੰਗ ਮਸਲਾ ਨਹੀਂ ਹੈ।