ਰੀਸਟਾਰਟ ਤੋਂ ਬਾਅਦ ਮਿਟਾਇਆ WireGuard peer ਵਾਪਸ ਕਿਉਂ ਆਉਂਦਾ ਹੈ
peer ਸੂਚੀ ਦੋ ਹਾਲਤਾਂ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ: ਚੱਲ ਰਿਹਾ ਇੰਟਰਫ਼ੇਸ ਅਤੇ ਬੂਟ ਵੇਲੇ ਉਸ ਨੂੰ ਲਿਖਣ ਵਾਲਾ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਹਟਾਓ, ਅਤੇ ਕੁਝ ਵੀ ਸੰਪਾਦਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ SaveConfig ਜਾਂਚੋ।
ਪਛਾਣ ਚੱਲ ਰਹੇ ਇੰਟਰਫ਼ੇਸ ਤੋਂ ਗ਼ਾਇਬ ਹੋ ਜਾਂਦੀ ਹੈ ਅਤੇ ਤਬਦੀਲੀ ਪੂਰੀ ਲੱਗਦੀ ਹੈ। ਸੇਵਾ ਮੁੜ ਸ਼ੁਰੂ ਹੋਣ ਤੋਂ ਬਾਅਦ ਉਹ ਵਾਪਸ ਆ ਜਾਂਦੀ ਹੈ, ਜੋ ਇੰਝ ਪੜ੍ਹੀ ਜਾਂਦੀ ਹੈ ਜਿਵੇਂ WireGuard ਹੁਕਮ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਰਿਹਾ ਹੋਵੇ। ਅਸਲ ਵਿੱਚ ਜੋ ਹੋਇਆ ਉਹ ਸੌਖਾ ਹੈ: ਬੂਟ ਵੇਲੇ ਦੀ ਸੰਰਚਨਾ ਵਿੱਚ ਉਹ peer ਅਜੇ ਵੀ ਮੌਜੂਦ ਹੈ।
ਉਸ ਸੂਚੀ ਨੂੰ ਦੋ ਹਾਲਤਾਂ ਰੱਖਦੀਆਂ ਹਨ। ਰੱਦ ਕਰਨਾ ਤਦ ਹੀ ਸੱਚਾ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਦੋਵੇਂ ਇਸ ਨੂੰ ਗੁਆ ਦੇਣ।
wg set ਅਸਲ ਵਿੱਚ ਕੀ ਬਦਲਦਾ ਹੈ
wg set wg0 peer <public-key> remove ਹੁਕਮ ਕਰਨਲ ਵਿੱਚ ਚੱਲ ਰਿਹਾ ਇੰਟਰਫ਼ੇਸ ਸੋਧਦਾ ਹੈ। ਇਹ ਡਿਸਕ ਉੱਤੇ ਕੁਝ ਨਹੀਂ ਲਿਖਦਾ। ਸੰਰਚਨਾ ਫ਼ਾਈਲ, NetworkManager ਪਰੋਫ਼ਾਈਲ ਜਾਂ ਰਾਊਟਰ ਦੀ ਸੰਭਾਲੀ ਹਾਲਤ ਅਛੂਤੀ ਰਹਿੰਦੀ ਹੈ। ਇਹ ਡਿਜ਼ਾਈਨ ਹੈ, ਖ਼ਰਾਬੀ ਨਹੀਂ।
ਇਹ ਵੱਖਰਾਵ ਜਾਣ-ਬੁੱਝ ਕੇ ਹੈ, ਕਿਉਂਕਿ ਸੰਦ ਨੂੰ ਪਤਾ ਹੀ ਨਹੀਂ ਕਿ ਇੰਟਰਫ਼ੇਸ ਦਾ ਮਾਲਕ ਕੌਣ ਹੈ। ਰਨਟਾਈਮ ਹੁਕਮ ਕਿਸੇ ਹੋਰ ਵੱਲੋਂ ਸੰਭਾਲੇ ਇੰਟਰਫ਼ੇਸ ਉੱਤੇ ਵੀ ਸੁਰੱਖਿਅਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਇਹ ਅੰਦਾਜ਼ਾ ਨਹੀਂ ਲਾ ਸਕਦਾ ਕਿ ਟਿਕਾਊ ਨਕਲ ਕਿੱਥੇ ਰਹਿੰਦੀ ਹੈ। ਨਤੀਜਾ ਸੌਖਿਆਂ ਕਿਹਾ ਜਾ ਸਕਦਾ ਹੈ: ਰਨਟਾਈਮ ਵਿੱਚ ਹਟਾਉਣਾ ਬਣਤਰ ਕਰਕੇ ਹੀ ਅਸਥਾਈ ਹੈ।
ਇਸ ਲਈ peer ਅਗਲੀ ਵਾਰ ਸ਼ੁਰੂ ਹੋਣ ਉੱਤੇ ਵਾਪਸ ਆਉਂਦਾ ਹੈ, ਅਤੇ ਆਪਣੇ ਮੂਲ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਪ੍ਰੀਫ਼ਿਕਸਾਂ ਨਾਲ ਵਾਪਸ ਆਉਂਦਾ ਹੈ। ਇਸ ਰਾਹੀਂ ਰੂਟ ਹੋਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਵੀ ਮੁੜ ਬਣਦੀ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਰੱਦ ਕੀਤੀ ਮੰਨੀ ਗਈ ਪਛਾਣ ਮੁੜ ਲੋਡ ਹੋਣ ਤੋਂ ਬਾਅਦ ਆਪਣੀਆਂ ਪੁਰਾਣੀਆਂ ਮੰਜ਼ਿਲਾਂ ਤੱਕ ਪਹੁੰਚ ਸਕਦੀ ਹੈ। ਰਨਟਾਈਮ ਆਉਟਪੁੱਟ ਵਿੱਚ ਕਿਸੇ ਨੂੰ ਚੇਤਾਵਨੀ ਨਹੀਂ ਮਿਲੀ ਸੀ।
ਫ਼ਾਈਲ ਸੋਧਣ ਤੋਂ ਪਹਿਲਾਂ ਲਿਖਣ ਵਾਲੇ ਨੂੰ ਲੱਭੋ
ਇੰਟਰਫ਼ੇਸ ਦਾ ਇੱਕ ਮਾਲਕ ਹੁੰਦਾ ਹੈ। ਉਹ ਫ਼ਾਈਲ ਪੜ੍ਹਦਾ wg-quick ਹੋ ਸਕਦਾ ਹੈ, ਪਰੋਫ਼ਾਈਲ ਲਾਗੂ ਕਰਦਾ NetworkManager, ਰਾਊਟਰ ਦੀ ਆਪਣੀ ਇੰਟਰਫ਼ੇਸ ਸੰਰਚਨਾ, ਜਾਂ ਕੋਈ ਕੰਟੇਨਰ ਐਂਟਰੀਪੁਆਇੰਟ ਜੋ ਸ਼ੁਰੂ ਹੋਣ ਉੱਤੇ ਇੰਟਰਫ਼ੇਸ ਮੁੜ ਬਣਾਉਂਦਾ ਹੈ। ਜਿਸ ਫ਼ਾਈਲ ਨੂੰ ਮਾਲਕ ਕਦੇ ਨਹੀਂ ਪੜ੍ਹਦਾ, ਉਸ ਨੂੰ ਸੋਧਣ ਨਾਲ ਕੋਈ ਟਿਕਾਊ ਤਬਦੀਲੀ ਨਹੀਂ ਹੁੰਦੀ।
ਚੱਲ ਰਹੇ ਇੰਟਰਫ਼ੇਸ ਤੋਂ ਸ਼ੁਰੂ ਕਰੋ ਅਤੇ ਪਬਲਿਕ ਕੁੰਜੀਆਂ ਪਛਾਣੋ, ਕਿਉਂਕਿ ਨਾਮ ਅਤੇ ਪਤੇ ਕੁੰਜੀ ਨਾਲੋਂ ਕਮਜ਼ੋਰ ਪਛਾਣਕਰਤਾ ਹਨ। ਫਿਰ ਉਸ ਸੂਚੀ ਦੀ ਉਸ ਸੰਭਾਲੀ ਸੰਰਚਨਾ ਨਾਲ ਤੁਲਨਾ ਕਰੋ ਜੋ ਮਾਲਕ ਸੱਚਮੁੱਚ ਪੜ੍ਹਦਾ ਹੈ।
wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard
ਜਿਸ ਜੀਵਤ ਇੰਟਰਫ਼ੇਸ ਦੀ peer ਸੂਚੀ ਅਤੇ ਫ਼ਾਈਲ ਦਾ ਸਮੱਗਰੀ ਮੇਲ ਨਹੀਂ ਖਾਂਦੀ, ਉਹੀ ਪੂਰਾ ਨਿਦਾਨ ਹੈ। ਬੂਟ ਉੱਤੇ ਸੰਭਾਲੀ ਸੰਰਚਨਾ ਜਿੱਤਦੀ ਹੈ, ਅਤੇ ਰਨਟਾਈਮ ਹਾਲਤ ਹਾਰਦੀ ਹੈ। ਦੋਵਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਉਨ੍ਹਾਂ ਦੀ ਤੁਲਨਾ ਕਰੋ।
SaveConfig ਦਾ ਜਾਲ
wg-quick ਇੱਕ ਮੋੜ ਜੋੜਦਾ ਹੈ ਜੋ ਹੱਥ ਨਾਲ ਫ਼ਾਈਲਾਂ ਸੋਧਣ ਵਾਲਿਆਂ ਨੂੰ ਫੜਦਾ ਹੈ। SaveConfig ਚਾਲੂ ਹੋਣ ਉੱਤੇ ਇਸ ਦਾ ਦਰਜ ਬੰਦ ਹੋਣ ਦਾ ਵਿਵਹਾਰ ਮੌਜੂਦਾ ਰਨਟਾਈਮ ਹਾਲਤ ਸੰਰਚਨਾ ਫ਼ਾਈਲ ਉੱਤੇ ਲਿਖ ਦਿੰਦਾ ਹੈ।
ਇਹ ਟਿਕਾਊਪਣ ਦੀ ਆਮ ਦਿਸ਼ਾ ਉਲਟ ਦਿੰਦਾ ਹੈ। ਤੁਸੀਂ ਫ਼ਾਈਲ ਵਿੱਚੋਂ peer ਹਟਾਉਂਦੇ ਹੋ, ਫਿਰ ਸੇਵਾ ਰੁਕ ਜਾਂਦੀ ਹੈ। ਚੱਲ ਰਹੀ ਹਾਲਤ ਤੁਹਾਡੀ ਸੋਧ ਉੱਤੇ ਲਿਖ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਹੁਣੇ ਮਿਟਾਇਆ peer ਬਹਾਲ ਹੋ ਜਾਂਦਾ ਹੈ।
ਇਸ ਲਈ ਕ੍ਰਮ ਮਹੱਤਵਪੂਰਨ ਹੈ: ਇੰਟਰਫ਼ੇਸ ਬੰਦ ਹੋਣ ਵੇਲੇ ਫ਼ਾਈਲ ਸੋਧੋ, ਜਾਂ ਸੋਧ ਤੋਂ ਪਹਿਲਾਂ SaveConfig ਬੰਦ ਕਰੋ, ਫਿਰ ਇੰਟਰਫ਼ੇਸ ਮੁੜ ਚਾਲੂ ਕਰੋ ਅਤੇ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਕੀ ਲੋਡ ਹੋਇਆ। ਇੰਟਰਫ਼ੇਸ ਚਾਲੂ ਹੋਣ ਵੇਲੇ ਹੱਥ ਨਾਲ ਕੀਤੀ ਸੋਧ ਬੰਦ ਹੋਣ ਵੇਲੇ ਦੀ ਲਿਖਤ ਨਾਲ ਦੌੜ ਹੈ।
ਦੋਵੇਂ ਹਾਲਤਾਂ ਬਦਲੋ, ਫਿਰ ਮੁੜ ਲੋਡ ਕਰੋ
ਰਨਟਾਈਮ ਵਿੱਚ ਕੁੰਜੀ ਨਾਲ peer ਹਟਾਓ। ਸੰਭਾਲੀ ਸੰਰਚਨਾ ਵਿੱਚ ਉਹੀ ਬਲਾਕ ਮਾਲਕ ਦੀ ਸਮਰਥਿਤ ਕਾਰਵਾਈ ਰਾਹੀਂ ਹਟਾਓ, ਆਲੇ-ਦੁਆਲੇ ਸੋਧ ਕੇ ਨਹੀਂ।
ਫਿਰ ਦੇਖੋ ਕਿ peer ਕੀ ਢੋਂਦਾ ਸੀ। ਰੱਦ ਕੀਤੀ ਪਛਾਣ ਦਾ ਸੀ ਰੂਟ ਕੀਤਾ ਨੈੱਟਵਰਕ ਜਾਣ-ਬੁੱਝ ਕੇ ਮੁੜ ਦਿੱਤਾ ਜਾਂ ਹਟਾਇਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ, ਅਗਲੇ ਸੋਧੇ ਜਾਣ ਵਾਲੇ peer ਵੱਲੋਂ ਚੁੱਪਚਾਪ ਵਿਰਾਸਤ ਵਿੱਚ ਨਹੀਂ ਲਿਆ ਜਾਣਾ ਚਾਹੀਦਾ।
ਜੇ ਗੇਟਵੇ ਤੁਹਾਡੀ ਪ੍ਰਬੰਧਕੀ ਪਹੁੰਚ ਵੀ ਢੋਂਦਾ ਹੈ ਤਾਂ ਬਹਾਲੀ ਦਾ ਰਾਹ ਖੁੱਲ੍ਹਾ ਰੱਖੋ। ਗ਼ਲਤ peer ਹਟਾਉਣ ਵਾਲਾ ਰੀਸਟਾਰਟ ਆਪਣਾ ਹੀ ਬਣਾਇਆ ਰੁਕਾਵਟ ਹੈ। ਗ਼ਲਤ ਰੂਟ ਹਟਾਉਣ ਵਾਲੇ ਰੀਸਟਾਰਟ ਉੱਤੇ ਵੀ ਇਹੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।
ਸਫਲ ਪਰਖ ਕਿਹੋ ਜਿਹੀ ਹੁੰਦੀ ਹੈ
ਸੇਵਾ ਮੁੜ ਲੋਡ ਜਾਂ ਮੁੜ ਸ਼ੁਰੂ ਕਰੋ, ਫਿਰ peer ਸੂਚੀ ਦੁਬਾਰਾ ਪੜ੍ਹੋ। ਪੁਰਾਣੀ ਕੁੰਜੀ ਗ਼ੈਰਹਾਜ਼ਰ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ ਜੋ peer ਤੁਸੀਂ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਸੀ ਉਹ ਅਜੇ ਵੀ ਮੌਜੂਦ ਅਤੇ ਕੰਮ ਕਰਦੇ ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।
wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers
ਜਿੱਥੇ ਹਾਲਤ ਇਜਾਜ਼ਤ ਦੇਵੇ, ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਪੁਰਾਣੀ ਪਛਾਣ ਹੁਣ ਆਪਣੇ ਪੁਰਾਣੇ ਸਰੋਤਾਂ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚਦੀ। ਰੀਸਟਾਰਟ ਤੋਂ ਪਹਿਲਾਂ ਦੀ ਸਾਫ਼-ਸੁਥਰੀ ਇੰਟਰਫ਼ੇਸ ਸੂਚੀ ਅੱਧੀ ਪਰਖ ਹੈ। ਬਾਕੀ ਅੱਧ ਇਹ ਹੈ ਕਿ ਪਛਾਣ ਉਸ ਤੋਂ ਬਾਅਦ ਅਜੇ ਕੀ ਕਰ ਸਕਦੀ ਹੈ।
ਜੇ ਕੋਈ ਮੈਨੇਜਰ peer ਨੂੰ ਵਾਰ-ਵਾਰ ਬਹਾਲ ਕਰਦਾ ਰਹੇ, ਤਾਂ ਨੀਵੇਂ ਪੱਧਰ ਦਾ ਹਟਾਉਣਾ ਦੁਹਰਾਉਣਾ ਬੰਦ ਕਰੋ। ਉਸ ਲੇਖਕ ਵੱਲੋਂ ਪੜ੍ਹੀ ਜਾਂਦੀ ਸੂਚੀ ਠੀਕ ਕਰੋ, ਕਿਉਂਕਿ ਉਦੋਂ ਤੱਕ ਹਰ ਰੀਸਟਾਰਟ ਪਛਾਣ ਦੇ ਮੁੜ ਪ੍ਰਗਟ ਹੋਣ ਦਾ ਇੱਕ ਹੋਰ ਸੱਦਾ ਹੈ।