ਰੀਸਟਾਰਟ ਤੋਂ ਬਾਅਦ WireGuard ਪੀਅਰ ਗਾਇਬ: ਅਸਲ ਕੌਂਫਿਗਰੇਸ਼ਨ ਲੱਭੋ
wg set ਨਾਲ ਜੋੜਿਆ ਪੀਅਰ ਅਗਲੇ ਰੀਸਟਾਰਟ ਤੱਕ ਕੰਮ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਇੰਟਰਫ਼ੇਸ ਉਸ ਫ਼ਾਈਲ ਜਾਂ ਪ੍ਰੋਫ਼ਾਈਲ ਤੋਂ ਦੁਬਾਰਾ ਬਣਦਾ ਹੈ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਕਦੇ ਸੰਪਾਦਿਤ ਨਹੀਂ ਕੀਤਾ। ਪਹਿਲਾਂ ਮਾਲਕ ਲੱਭੋ।
wg set ਨਾਲ ਜੋੜਿਆ ਪੀਅਰ ਦੁਪਹਿਰ ਭਰ ping ਦਾ ਜਵਾਬ ਦਿੰਦਾ ਹੈ ਅਤੇ ਰੀਬੂਟ ਤੋਂ ਬਾਅਦ ਗਾਇਬ ਹੋ ਜਾਂਦਾ ਹੈ। ਕੁਝ ਵੀ ਖ਼ਰਾਬ ਨਹੀਂ ਹੋਇਆ: ਕਰਨਲ ਨੇ ਉਹ ਪੀਅਰ ਜੀਵਤ ਇੰਟਰਫ਼ੇਸ ਤੋਂ ਬਿਨਾਂ ਕਿਤੇ ਨਹੀਂ ਰੱਖਿਆ, ਅਤੇ ਬੂਟ ਵੇਲੇ ਇੰਟਰਫ਼ੇਸ ਦੁਬਾਰਾ ਬਣਾਉਣ ਵਾਲੀ ਹਰ ਚੀਜ਼ ਨੇ ਉਸ ਨੂੰ ਉਸ ਫ਼ਾਈਲ ਤੋਂ ਬਣਾਇਆ ਜਿਸ ਨੂੰ ਤੁਸੀਂ ਛੋਹਿਆ ਵੀ ਨਹੀਂ। ਮੁਰੰਮਤ ਦੂਜਾ wg set ਨਹੀਂ ਹੈ। ਇਹ ਪਤਾ ਲਗਾਉਣਾ ਹੈ ਕਿ ਕਿਹੜਾ ਹਿੱਸਾ ਇੰਟਰਫ਼ੇਸ ਦਾ ਮਾਲਕ ਹੈ, ਉਸ ਹਿੱਸੇ ਦੀ ਹਾਲਤ ਸੰਪਾਦਿਤ ਕਰਨੀ ਹੈ, ਅਤੇ ਫਿਰ ਸਾਬਿਤ ਕਰਨਾ ਹੈ ਕਿ ਪੀਅਰ ਉਸੇ ਜੀਵਨ-ਚੱਕਰ ਘਟਨਾ ਤੋਂ ਬਚਦਾ ਹੈ ਜਿਸ ਨੇ ਉਸ ਨੂੰ ਹਟਾਇਆ ਸੀ।
ਇਸ ਨੂੰ ਇੱਕ ਵਾਰ ਜਾਣ-ਬੁੱਝ ਕੇ ਦੁਹਰਾਓ
ਰੀਸਟਾਰਟ ਦੀ ਸਮੱਸਿਆ ਆਪਣੀ ਅੱਖ ਨਾਲ ਵੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਠੀਕ ਨਾ ਕਰੋ। ਕਨਸੋਲ ਜਾਂ ਆਊਟ-ਆਫ਼-ਬੈਂਡ ਪਹੁੰਚ ਹੋਵੇ ਤਾਂ ਪੀਅਰਾਂ ਦੀ ਸੂਚੀ ਲਿਖੋ, ਇੰਟਰਫ਼ੇਸ ਦਾ ਮਾਲਕ ਸੇਵਾ ਰਾਹੀਂ ਰੀਸਟਾਰਟ ਕਰੋ, ਅਤੇ ਤੁਲਨਾ ਕਰੋ। ਜੇ ਪੀਅਰ ਅਜੇ ਵੀ ਉੱਥੇ ਹੈ ਤਾਂ ਤੁਹਾਡੀ ਤਬਦੀਲੀ ਪਹਿਲਾਂ ਹੀ ਪੱਕੀ ਹਾਲਤ ਤੱਕ ਪਹੁੰਚ ਚੁੱਕੀ ਹੈ ਅਤੇ ਤੁਸੀਂ ਗ਼ਲਤ ਘਟਨਾ ਡੀਬੱਗ ਕਰ ਰਹੇ ਹੋ।
ਇਹ ਕਰਦਿਆਂ ਤਿੰਨ ਤੱਥ ਲਿਖੋ: ਇੰਟਰਫ਼ੇਸ ਦਾ ਨਾਮ, ਉਸ ਨੂੰ ਸ਼ੁਰੂ ਕਰਨ ਵਾਲੀ ਯੂਨਿਟ ਜਾਂ ਪ੍ਰੋਫ਼ਾਈਲ, ਅਤੇ ਬਚੇ ਹੋਏ ਪੀਅਰ ਦਾ ਹੈਂਡਸ਼ੇਕ ਕਾਊਂਟਰ ਰੀਸੈਟ ਹੋਇਆ ਜਾਂ ਨਹੀਂ। ਰੀਸੈਟ ਹੋਇਆ ਕਾਊਂਟਰ ਦਾ ਮਤਲਬ ਇੰਟਰਫ਼ੇਸ ਨਸ਼ਟ ਹੋ ਕੇ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ; ਕਾਊਂਟਰ ਨਾ ਬਦਲਿਆ ਪਰ ਪੀਅਰ ਗਾਇਬ ਹੋਣ ਦਾ ਮਤਲਬ ਕਿਸੇ ਨੇ ਤੁਹਾਡੇ ਪੈਰਾਂ ਹੇਠ ਕੌਂਫਿਗਰੇਸ਼ਨ ਸੰਪਾਦਿਤ ਕੀਤੀ।
ਇੰਟਰਫ਼ੇਸ ਦਾ ਮਾਲਕ ਕੌਣ ਹੈ?
WireGuard ਆਪਣੇ ਆਪ ਦਾ ਕੋਈ ਡੈਮਨ ਜਾਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫ਼ਾਈਲ ਨਹੀਂ ਰੱਖਦਾ। ਇਸ ਦੇ ਉੱਤੇ ਕੁਝ ਇੱਕ ਬੂਟ ਵੇਲੇ wg ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ, ਅਤੇ ਉਹੀ ਚੀਜ਼ ਸੱਚ ਦਾ ਸਰੋਤ ਹੈ। ਆਮ ਉਮੀਦਵਾਰ [email protected], NetworkManager ਕਨੈਕਸ਼ਨ ਪ੍ਰੋਫ਼ਾਈਲ, ਵੰਡ-ਵਿਸ਼ੇਸ਼ ਨੈੱਟਵਰਕ ਯੂਨਿਟ, ਜਾਂ ਆਪਣਾ ਡੇਟਾਬੇਸ ਲਿਖਣ ਵਾਲਾ ਪ੍ਰਬੰਧਨ ਪੈਨਲ ਹਨ।
ਆਪਣੀ ਵੰਡ ਦੇ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ ਨਹੀਂ, ਸਿਸਟਮ ਨੂੰ ਪੁੱਛੋ। systemctl status wg-quick@wg0 ਅਤੇ nmcli connection show ਆਮ ਤੌਰ 'ਤੇ ਪ੍ਰਤੀ ਇੱਕ ਕਮਾਂਡ ਨਾਲ ਇਹ ਤੈਅ ਕਰ ਦਿੰਦੇ ਹਨ। ਜੇ ਦੋਵੇਂ ਇੰਟਰਫ਼ੇਸ ਦਾ ਦਾਅਵਾ ਕਰਨ ਤਾਂ ਕੁਝ ਵੀ ਸੰਪਾਦਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਤੁਹਾਨੂੰ ਬੱਗ ਮਿਲ ਗਿਆ: ਦੋ ਮਾਲਕ ਹਰ ਸ਼ੁਰੂਆਤ ਵੇਲੇ ਉਹੀ ਡਿਵਾਈਸ ਦੁਬਾਰਾ ਲਿਖਦੇ ਹਨ, ਅਤੇ ਆਖ਼ਰ ਵਿੱਚ ਚੱਲਣ ਵਾਲਾ ਜਿੱਤਦਾ ਹੈ।
systemctl status wg-quick@wg0 --no-pager
grep -R "Address\|SaveConfig\|PostUp" /etc/wireguard/wg0.conf
nmcli -g NAME,TYPE connection show
wg show wg0 peersਰਨਟਾਈਮ ਹਾਲਤ ਅਤੇ ਸਟਾਰਟਅੱਪ ਹਾਲਤ ਇੱਕੋ ਫ਼ਾਈਲ ਨਹੀਂ
wg set ਜੀਵਤ ਡਿਵਾਈਸ ਨੂੰ netlink ਰਾਹੀਂ ਸੰਭਾਲਦਾ ਹੈ। ਇਹ /etc/wireguard/wg0.conf, NetworkManager ਪ੍ਰੋਫ਼ਾਈਲ ਜਾਂ ਪੈਨਲ ਦਾ ਡੇਟਾਬੇਸ ਨਹੀਂ ਲਿਖਦਾ। ਇਸ ਤੋਂ ਬਾਅਦ ਦਾ ਸਫਲ wg show ਸਾਬਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕਰਨਲ ਨੇ ਪੀਅਰ ਮਨਜ਼ੂਰ ਕੀਤਾ, ਇਹ ਨਹੀਂ ਕਿ ਕੋਈ ਇਸ ਨੂੰ ਬਹਾਲ ਕਰੇਗਾ।
ਉਲਟ ਦਿਸ਼ਾ ਵਿੱਚ ਦੂਜਾ ਜਾਲ ਵੀ ਹੈ। ਇੰਟਰਫ਼ੇਸ ਹੇਠਾਂ ਲਾਹੁੰਦਿਆਂ wg-quick ਦਾ SaveConfig ਵਿਕਲਪ ਮੌਜੂਦਾ ਇੰਟਰਫ਼ੇਸ ਹਾਲਤ ਵਾਪਸ ਕੌਂਫਿਗਰੇਸ਼ਨ ਫ਼ਾਈਲ ਵਿੱਚ ਲਿਖਦਾ ਹੈ। ਇਹ ਚਾਲੂ ਹੋਣ 'ਤੇ ਇੰਟਰਫ਼ੇਸ ਉੱਪਰ ਰਹਿੰਦਿਆਂ ਫ਼ਾਈਲ ਵਿੱਚ ਕੀਤੀ ਤਬਦੀਲੀ ਅਗਲੇ ਬੰਦ ਹੋਣ ਨਾਲ ਢਕੀ ਜਾ ਸਕਦੀ ਹੈ, ਅਤੇ ਤੁਸੀਂ ਸਹੁੰ ਖਾਓਗੇ ਕਿ ਉਹ ਲਾਈਨ ਉੱਥੇ ਸੀ। ਜੇ ਪੀਅਰ ਵਾਰ-ਵਾਰ ਵਾਪਸ ਆਉਂਦਾ ਹੈ ਤਾਂ ਫ਼ਾਈਲ ਰੋਕਣ ਤੋਂ ਬਾਅਦ ਪੜ੍ਹੋ, ਪਹਿਲਾਂ ਨਹੀਂ।
NetworkManager ਫਿਰ ਵੱਖਰਾ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ: ਪ੍ਰੋਫ਼ਾਈਲ ਉਸ ਦਾ ਹੈ ਅਤੇ ਸਰਗਰਮ ਹੋਣ 'ਤੇ ਲਾਗੂ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਸਰਗਰਮ NetworkManager ਕਨੈਕਸ਼ਨ ਦੇ ਨਾਲ ਹੱਥ ਨਾਲ ਸੰਪਾਦਿਤ .conf ਸਿਰਫ਼ ਸਜਾਵਟ ਹੈ। ਇੰਟਰਫ਼ੇਸ ਲਈ ਇੱਕੋ ਮਾਲਕ ਚੁਣੋ ਅਤੇ ਦੂਜੇ ਮੈਨੇਜਰ ਨੂੰ ਇਸ ਨੂੰ ਛੇੜਨ ਨਾ ਦਿਓ।
ਤਬਦੀਲੀ ਦੋਵੇਂ ਥਾਵਾਂ 'ਤੇ ਪਹੁੰਚੇ ਇਹ ਯਕੀਨੀ ਬਣਾਓ
ਪਹਿਲਾਂ ਪੱਕੀ ਹਾਲਤ ਸੰਪਾਦਿਤ ਕਰੋ, ਫਿਰ ਮਾਲਕ ਨੂੰ ਇਹ ਲਾਗੂ ਕਰਨ ਦਿਓ, ਅਤੇ ਆਖ਼ਰ ਵਿੱਚ ਜੀਵਤ ਹਾਲਤ ਜਾਂਚੋ। ਇਹ ਕ੍ਰਮ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕਿਸੇ ਵੀ ਪੜਾਅ ਦੀ ਅਸਫਲਤਾ ਤਿੰਨ ਨਹੀਂ, ਇੱਕ ਚੀਜ਼ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ।
# 1. persistent state (wg-quick owner)
sudo vi /etc/wireguard/wg0.conf
# 2. apply through the owner, not by hand
sudo systemctl restart wg-quick@wg0
# 3. verify runtime matches the file
sudo wg show wg0
sudo wg showconf wg0wg showconf ਜੀਵਤ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਉਸੇ ਸਿੰਟੈਕਸ ਵਿੱਚ ਛਾਪਦਾ ਹੈ ਜੋ ਫ਼ਾਈਲ ਵਰਤਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਦੋਵਾਂ ਦੀ ਸਿੱਧੀ ਤੁਲਨਾ ਹੋ ਸਕਦੀ ਹੈ। ਉਸ ਆਉਟਪੁੱਟ ਨੂੰ ਗੁਪਤ ਮੰਨੋ: ਇਸ ਵਿੱਚ ਨਿੱਜੀ ਚਾਬੀਆਂ ਹਨ, ਇਸ ਲਈ ਇਸ ਨੂੰ ਟਿਕਟ ਜਾਂ ਚੈਟ ਚੈਨਲ ਵਿੱਚ ਨਾ ਚਿਪਕਾਓ। ਪੀਅਰਾਂ ਦੀਆਂ ਜਨਤਕ ਚਾਬੀਆਂ ਅਤੇ ਮਨਜ਼ੂਰ IP ਦੀ ਤੁਲਨਾ ਕਰੋ, ਅਤੇ ਜਾਂਚੋ ਕਿ ਜਾਣ-ਬੁੱਝ ਕੇ ਹਟਾਇਆ ਪੀਅਰ ਵਾਪਸ ਨਹੀਂ ਆਇਆ।
ਸਾਬਿਤ ਕਰੋ ਕਿ ਇਹ ਜੀਵਨ-ਚੱਕਰ ਘਟਨਾ ਤੋਂ ਬਚਦਾ ਹੈ
ਮਾਲਕ ਰਾਹੀਂ ਦੂਜੀ ਵਾਰ ਰੀਸਟਾਰਟ ਕਰੋ, ਫਿਰ ਤਿੰਨ ਵੱਖਰੀਆਂ ਚੀਜ਼ਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ: ਪੀਅਰ wg show ਵਿੱਚ ਦਿਖਦਾ ਹੈ, ਟ੍ਰੈਫ਼ਿਕ ਤੋਂ ਬਾਅਦ ਹੈਂਡਸ਼ੇਕ ਕਾਊਂਟਰ ਵਧਦਾ ਹੈ, ਅਤੇ ਟਨਲ 'ਤੇ ਨਿਰਭਰ ਐਪਲੀਕੇਸ਼ਨ ਸੱਚਮੁੱਚ ਜਵਾਬ ਦਿੰਦਾ ਹੈ। ਪੁਰਾਣੇ ਹੈਂਡਸ਼ੇਕ ਵਾਲਾ ਸੂਚੀਬੱਧ ਪੀਅਰ ਰਾਊਟਿੰਗ ਜਾਂ ਚਾਬੀ ਦੀ ਸਮੱਸਿਆ ਹੈ, ਪੱਕੇਪਣ ਦੀ ਸਮੱਸਿਆ ਨਹੀਂ, ਅਤੇ ਇਹ ਫ਼ਰਕ ਇੱਕ ਬੇਕਾਰ ਕੌਂਫਿਗਰੇਸ਼ਨ ਤਬਦੀਲੀ ਬਚਾਉਂਦਾ ਹੈ।
ਆਖ਼ਰ ਵਿੱਚ, ਵੇਖੋ ਰੀਸਟਾਰਟ ਨੇ ਕੀ ਬਹਾਲ ਕੀਤਾ। ਜਾਣ-ਬੁੱਝ ਕੇ ਹਟਾਏ ਪੀਅਰ ਨੂੰ ਦੁਬਾਰਾ ਜੀਵਤ ਕਰਨ ਵਾਲਾ ਰੀਸਟਾਰਟ ਉਹੀ ਬੱਗ ਉਲਟੇ ਚਿੰਨ੍ਹ ਨਾਲ ਹੈ, ਅਤੇ ਆਮ ਤੌਰ 'ਤੇ ਇਸ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੀ ਪੁਰਾਣੀ ਨਕਲ ਅਜੇ ਵੀ ਕਿਤੋਂ ਲੋਡ ਹੋ ਰਹੀ ਹੈ। ਮਾਲਕ, ਫ਼ਾਈਲ ਦਾ ਰਾਹ, ਪੀਅਰ ਦੀ ਜਨਤਕ ਚਾਬੀ ਅਤੇ ਜਾਂਚ ਕਮਾਂਡਾਂ ਕੌਂਫਿਗਰੇਸ਼ਨ ਦੇ ਕੋਲ ਲਿਖੋ, ਤਾਂ ਜੋ ਅਗਲਾ ਵਿਅਕਤੀ ਪ੍ਰੋਡਕਸ਼ਨ ਹੋਸਟ ਰੀਸਟਾਰਟ ਕਰਕੇ ਇਹ ਦੁਬਾਰਾ ਨਾ ਲੱਭੇ।