WireGuard ਕੌਨਫਿਗ ਨੂੰ Interface ਤੋਂ Peer ਤੱਕ ਲਾਈਨ-ਦਰ-ਲਾਈਨ ਪੜ੍ਹੋ
Interface ਦੀਆਂ ਕੁੰਜੀਆਂ ਇਸ ਸਿਰੇ ਦੀਆਂ ਹਨ, peer ਦੀਆਂ ਕੁੰਜੀਆਂ ਦੂਜੇ ਪਾਸੇ ਦੀਆਂ। ਹਰ ਲਾਈਨ ਨੂੰ ਇੱਕ ਦਿਸ਼ਾ ਵਜੋਂ ਪੜ੍ਹੋ, ਫਿਰ ਜਾਂਚੋ ਕਿ wg-quick ਨੇ ਪ੍ਰੋਟੋਕੋਲ ਦੁਆਲੇ ਕੀ ਜੋੜਿਆ।
ਬਹੁਤੇ ਖਰਾਬ WireGuard ਕੌਨਫਿਗ ਮੁੱਲ ਵਿੱਚ ਗਲਤੀ ਨਹੀਂ ਕਰਦੇ; ਉਹ ਸਹੀ ਮੁੱਲ ਗਲਤ ਪਾਸੇ ਰੱਖਦੇ ਹਨ। ਨਿੱਜੀ ਕੁੰਜੀ ਇਸ ਮਸ਼ੀਨ ਦੀ ਹੈ, peer ਦੂਜੀ ਮਸ਼ੀਨ ਦੀ ਜਨਤਕ ਕੁੰਜੀ ਚੁੱਕਦਾ ਹੈ, ਅਤੇ ਪਤਾ interface ਬਲਾਕ ਵਿੱਚ ਬੈਠਦਾ ਹੈ ਭਾਵੇਂ ਇਹ ਦੱਸਦਾ ਹੈ ਕਿ ਸੁਰੰਗ ਕਿੱਥੇ ਰਹਿੰਦੀ ਹੈ। ਫਾਈਲ ਨੂੰ ਦੋ ਮਿਲਦੀਆਂ ਦਿਸ਼ਾਵਾਂ ਵਜੋਂ ਪੜ੍ਹੋ, ਫਿਰ ਵੇਖੋ ਕਿ ਸਹਾਇਕ ਸਕ੍ਰਿਪਟ ਨੇ ਉੱਤੇ ਕੀ ਜੋੜਿਆ। ਪ੍ਰੋਟੋਕੋਲ ਵਿੱਚ ਫਾਈਲ ਨਾਲੋਂ ਘੱਟ ਖੇਤਰ ਹਨ, ਅਤੇ ਵਾਧੂ ਖੇਤਰ ਵੱਖਰੇ ਜਾਣਨ ਯੋਗ ਹਨ।
interface ਦੀਆਂ ਕੁੰਜੀਆਂ ਇਸ ਮਸ਼ੀਨ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ
interface ਬਲਾਕ ਇਸ ਸਿਰੇ ਦੀ ਆਪਣੀ ਪਛਾਣ ਰੱਖਦਾ ਹੈ। PrivateKey ਉਹ ਪਛਾਣ ਹੈ ਅਤੇ ਕਦੇ ਹੋਸਟ ਨਹੀਂ ਛੱਡਦੀ; ਉਸ ਤੋਂ ਮਿਲਦੀ ਜਨਤਕ ਕੁੰਜੀ ਕੱਢੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਹੋਰ peers ਉਹੀ ਸੂਚੀਬੱਧ ਕਰਦੇ ਹਨ। ListenPort ਇਹ ਪਾਸਾ ਹੱਥ ਮਿਲਾਉਣੇ ਸਵੀਕਾਰ ਕਰਨ ਦੀ ਥਾਂ ਹੈ, ਇਸ ਲਈ ਇੱਕ ਪਤੇ ਪਿੱਛੇ ਦੇ ਦੋ ਕਲਾਇੰਟਾਂ ਨੂੰ ਵੱਖਰੇ ਪੋਰਟ ਚਾਹੀਦੇ ਹਨ।
Address ਇਹ ਹੋਸਟ ਜਿਸ ਸੁਰੰਗ ਪਤੇ ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ, ਪ੍ਰੀਫਿਕਸ ਲੰਬਾਈ ਨਾਲ ਲਿਖਿਆ, ਕਿਉਂਕਿ ਇਹ ਉਹ ਸਰੋਤ ਵੀ ਹੈ ਜੋ ਵਰਤੇਗਾ। ਇੱਥੇ ਪ੍ਰੀਫਿਕਸ ਗਲਤ ਹੋਣ ਨਾਲ ਬਦਲਦਾ ਹੈ ਕਿ ਹੋਸਟ ਕਿਹੜੇ ਟਿਕਾਣਿਆਂ ਨੂੰ ਸਿੱਧਾ ਜੁੜਿਆ ਮੰਨਦਾ ਹੈ, ਅਤੇ ਇਸ ਨਾਲ ਕੌਨਫਿਗ ਵਰਗੀਆਂ ਨਹੀਂ ਸਗੋਂ ਰੂਟਿੰਗ ਵਰਗੀਆਂ ਦਿੱਕਤਾਂ ਬਣਦੀਆਂ ਹਨ।
ਅਸਲੀ ਕਲਾਇੰਟ ਵਾਲੇ [Interface] ਬਲਾਕ ਵਿੱਚ ਬਾਕੀ ਸਭ ਆਮ ਤੌਰ 'ਤੇ wg-quick ਜੋੜਦਾ ਹੈ: DNS, MTU, Table, ਅਤੇ ਹੁੱਕ ਲਾਈਨਾਂ। ਇਹ ਪ੍ਰੋਟੋਕੋਲ ਖੇਤਰ ਨਹੀਂ ਹਨ, ਅਤੇ ਨੰਗਾ wg ਸੈਟਅਪ ਇਹਨਾਂ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦਾ ਹੈ।
ਹਰ peer ਐਂਟਰੀ ਦੂਜੇ ਇੱਕ ਪਾਸੇ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ
[Peer] ਬਲਾਕ ਦੂਰ ਵਾਲਾ ਪੱਖ ਹੈ। PublicKey ਉਸ ਪੱਖ ਦੀ ਕੱਢੀ ਕੁੰਜੀ ਹੈ, ਕਦੇ ਉਹਨਾਂ ਦੀ ਨਿੱਜੀ ਕੁੰਜੀ ਨਹੀਂ, ਅਤੇ PresharedKey ਇੱਕ ਲਾਜ਼ਮੀ ਨਹੀਂ ਵਾਧੂ ਭੇਤ ਹੈ ਜੋ ਦੋਵੇਂ ਪਾਸੇ ਇੱਕੋ ਜਿਹਾ ਰੱਖਣਾ ਚਾਹੀਦਾ ਹੈ। Endpoint ਇਹ ਹੈ ਕਿ ਕਿੱਥੇ ਭੇਜਣਾ ਹੈ, ਅਤੇ PersistentKeepalive ਇਸ ਹੋਸਟ ਨੂੰ ਆਖਦਾ ਹੈ ਕਿ ਵਿਰਾਮ ਤੋਂ ਬਾਅਦ ਪੈਕਟ ਭੇਜੇ ਜਦੋਂ ਹੋਰ ਕੁਝ ਬਾਹਰ ਨਹੀਂ ਜਾ ਰਿਹਾ।
ਇੱਥੋਂ ਦੀ ਬਹੁਤੀ ਉਲਝਣ ਦੋ ਗਲਤੀਆਂ ਸਮਝਾਉਂਦੀਆਂ ਹਨ। ਆਪਣੀ ਨਿੱਜੀ ਕੁੰਜੀ peer ਬਲਾਕ ਵਿੱਚ ਨਕਲ ਕਰਨ ਨਾਲ ਦੋਵੇਂ ਸਿਰੇ ਇੱਕ ਪਛਾਣ ਸਾਂਝੀ ਕਰਦੇ ਹਨ, ਅਤੇ ਹੱਥ ਮਿਲਾਉਣਾ ਇਸ ਤਰ੍ਹਾਂ ਫੇਲ ਹੁੰਦਾ ਹੈ ਜੋ ਮਾੜਾ ਲੌਗ ਹੁੰਦਾ ਹੈ। Endpoint ਕਲਾਇੰਟ ਉੱਤੇ ਛੱਡ ਦੇਣਾ ਆਮ ਤੌਰ 'ਤੇ ਜਾਣਬੁੱਝ ਕੇ ਹੁੰਦਾ ਹੈ, ਕਿਉਂਕਿ ਸਰਵਰ ਪਤਾ ਆਉਂਦੇ ਹੱਥ ਮਿਲਾਉਣ ਤੋਂ ਸਿੱਖਦਾ ਹੈ; ਜਿਸ ਸਰਵਰ ਨੇ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ ਉਸ ਉੱਤੇ ਛੱਡ ਦੇਣਾ ਇਸ ਤਰ੍ਹਾਂ ਨਹੀਂ ਹੈ। ਇਹ ਵੀ ਯਾਦ ਰੱਖੋ ਕਿ keepalive NAT ਮੈਪਿੰਗ ਖੁੱਲ੍ਹੀ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਇਹ ਥਰੂਪੁਟ ਨਹੀਂ ਸੁਧਾਰਦਾ ਨਾ ਦੇਰੀ ਘਟਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਜਦੋਂ ਟ੍ਰੈਫਿਕ ਪਹਿਲਾਂ ਹੀ ਵਹਿ ਰਿਹਾ ਹੋਵੇ ਤਾਂ ਤੀਹ ਸਕਿੰਟ ਦੇ ਵਾਧੂ ਪੈਕਟ ਕੁਝ ਨਹੀਂ ਖਰੀਦਦੇ।
AllowedIPs ਰੂਟਿੰਗ ਹੈ, ਇਜਾਜ਼ਤ ਸੂਚੀ ਨਹੀਂ
AllowedIPs ਇਹ WireGuard ਦੀ ਕ੍ਰਿਪਟੋਕੁੰਜੀ ਰੂਟਿੰਗ ਹੈ। ਬਾਹਰ ਜਾਂਦਿਆਂ, ਇਹ ਟਿਕਾਣੇ ਦੇ ਆਧਾਰ ਉੱਤੇ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜਾ peer ਪੈਕਟ ਲਵੇਗਾ। ਅੰਦਰ ਆਉਂਦਿਆਂ, ਇਹ ਸਰੋਤ ਦੇ ਆਧਾਰ ਉੱਤੇ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਉਸ peer ਤੋਂ ਆਉਣ ਵਾਲਾ ਪੈਕਟ ਸਵੀਕਾਰ ਹੋਵੇਗਾ ਜਾਂ ਨਹੀਂ। ਇੱਕੋ ਖੇਤਰ ਦੋਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਨਾ ਪਹੁੰਚ ਨਿਯੰਤਰਣ ਸੂਚੀ ਹੈ ਨਾ ਮਨਜ਼ੂਰ ਵੈੱਬਸਾਈਟਾਂ ਦੀ ਸੂਚੀ।
ਸੰਧੀ AllowedIPs ਸਰਵਰ ਉੱਤੇ ਕਲਾਇੰਟ ਲਈ ਮਤਲਬ ਸਰਵਰ ਸਿਰਫ਼ ਉਹਨਾਂ ਸਰੋਤਾਂ ਦਾ ਦਾਅਵਾ ਕਰਨ ਵਾਲੇ ਪੈਕਟ ਸਵੀਕਾਰ ਕਰੇਗਾ, ਅਤੇ ਸਿਰਫ਼ ਉਹ ਟਿਕਾਣੇ ਉਸ ਕਲਾਇੰਟ ਨੂੰ ਭੇਜੇਗਾ। ਇੱਕ ਪਾਸਾ ਦੂਜੇ ਨੂੰ ਚੌੜਾ ਕੀਤੇ ਬਿਨਾਂ ਚੌੜਾ ਕਰੋ, ਅਤੇ ਤੁਹਾਨੂੰ ਉੱਠਦੀ ਪਰ ਕੁਝ ਨਾ ਲੰਘਾਉਂਦੀ ਸੁਰੰਗ ਮਿਲੇਗੀ।
wg-quick ਪ੍ਰੋਟੋਕੋਲ ਦੁਆਲੇ ਕੀ ਜੋੜਦਾ ਹੈ
wg-quick ਉਹੀ ਫਾਈਲ ਪੜ੍ਹਦਾ ਹੈ ਅਤੇ ਉਹ ਨੈੱਟਵਰਕ ਕਦਮ ਕਰਦਾ ਹੈ ਜੋ ਪ੍ਰੋਟੋਕੋਲ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਉੱਤੇ ਛੱਡਦਾ ਹੈ। ਇਹ interface ਪਤਾ ਦਿੰਦਾ ਹੈ, AllowedIPs ਤੋਂ ਕੱਢੇ ਰੂਟ ਜੋੜਦਾ ਹੈ, ਰਿਜ਼ੌਲਵਰ ਸੈਟਿੰਗਾਂ ਲਿਖਦਾ ਹੈ ਅਤੇ ਹੁੱਕ ਕਮਾਂਡ ਕ੍ਰਮ ਵਿੱਚ ਚਲਾਉਂਦਾ ਹੈ।
ਉਹ ਪਰਤ ਕਲਾਸਿਕ ਅਸਮਾਨਤਾ ਸਮਝਾਉਂਦੀ ਹੈ। 0.0.0.0/0 ਅਤੇ DNS ਲਾਈਨ ਵਾਲੀ ਫਾਈਲ ਕਲਾਇੰਟ ਨੂੰ ਡਿਫ਼ਾਲਟ ਰੂਟ ਅਤੇ ਰਿਜ਼ੌਲਵਰ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਸਰਵਰ ਦੇ ਫਾਰਵਰਡਿੰਗ ਜਾਂ NAT ਨਿਯਮਾਂ ਨੂੰ ਕੁਝ ਵੀ ਨਹੀਂ ਕਰਦੀ। ਉਹ ਸਰਵਰ ਦੇ ਆਪਣੇ ਕੌਨਫਿਗ ਦੇ ਹਨ, ਅਤੇ ਕੋਈ ਕਲਾਇੰਟ ਫਾਈਲ ਉਹ ਨਹੀਂ ਦੇ ਸਕਦੀ।
ਫਾਈਲ ਲਈ ਇੱਕ ਹੀ ਮਾਲਕ ਰੱਖੋ। SaveConfig ਚਾਲੂ ਹੋਣ ਵੇਲੇ ਇਸ ਨੂੰ ਹੱਥ ਨਾਲ ਸੋਧਣ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਅਗਲੀ ਵਾਰ interface ਹੇਠਾਂ ਜਾਣ ਵੇਲੇ ਤੁਹਾਡੀ ਸੋਧ ਗਾਇਬ ਹੋ ਜਾਵੇਗੀ, ਅਤੇ interface ਤੁਹਾਨੂੰ ਨਹੀਂ ਦੱਸੇਗਾ ਕਿ ਇਹ ਹੋਇਆ ਹੈ।
ਫਾਈਲ ਨਹੀਂ, ਲਾਗੂ ਹੋਈ ਹਾਲਤ ਜਾਂਚੋ
ਫਾਈਲ ਇੱਕ ਇਰਾਦਾ ਹੈ। ਲਾਗੂ ਹੋਈ ਹਾਲਤ ਉਹ ਹੈ ਜੋ ਕਰਨਲ ਰੱਖਦਾ ਹੈ, ਅਤੇ ਸਰਗਰਮੀ ਤੋਂ ਬਾਅਦ ਜਦੋਂ ਕੋਈ ਸਹਾਇਕ, drop-in ਜਾਂ ਹੁੱਕ ਨੇ ਕੁਝ ਸੋਧਿਆ ਤਾਂ ਦੋਵੇਂ ਵੱਖ ਹੋ ਜਾਂਦੇ ਹਨ।
ਜੀਵੰਤ ਹਾਲਤ ਅਤੇ ਪਤਾ-ਨਿਰਧਾਰਣ ਇਕੱਠੇ ਪੜ੍ਹੋ, ਫਿਰ ਦੋਵਾਂ ਦੀ ਤੁਲਨਾ ਤੁਹਾਡੇ ਲਿਖੇ ਨਾਲ ਕਰੋ:
sudo wg show
ip -4 addr show dev wg0
ip -4 route show dev wg0
grep -v "^#" /etc/wireguard/wg0.confਜੇ peer ਸੂਚੀ ਖਾਲੀ ਹੈ, ਤਾਂ interface ਆਪਣਾ ਕੌਨਫਿਗ ਲਾਗੂ ਕੀਤੇ ਬਿਨਾਂ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਜੇ ਪਤੇ ਅਤੇ ਰੂਟ ਹਨ ਪਰ ਗਿਣਤੀ ਸਿਫ਼ਰ ਉੱਤੇ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਫਾਈਲ ਲੋਡ ਹੋਈ ਹੈ ਅਤੇ ਹੱਥ ਮਿਲਾਉਣਾ ਫੇਲ ਹੋ ਰਿਹਾ ਹੈ, ਜੋ ਭਾਗ-ਕ੍ਰਮ ਦੀ ਨਹੀਂ ਸਗੋਂ ਕੁੰਜੀ ਜਾਂ ਸਿਰੇ ਦੀ ਸਮੱਸਿਆ ਹੈ। ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ ਦੋਵੇਂ ਦ੍ਰਿਸ਼ ਤੁਲਨਾ ਕਰੋ, ਕਿਉਂਕਿ ਉਹਨਾਂ ਵਿਚਕਾਰਲਾ ਫ਼ਰਕ ਹੀ ਆਮ ਤੌਰ 'ਤੇ ਅਸਲ ਖਰਾਬੀ ਹੈ।