WireGuard ਆਪਣਾ ਇੰਟਰਫ਼ੇਸ ਨਹੀਂ ਬਣਾ ਸਕਦਾ: ਕਰਨਲ ਜਾਂ ਇਜਾਜ਼ਤ?
ਕਿਸੇ ਵੀ ਪੀਅਰ ਦੇ ਹੈਂਡਸ਼ੇਕ ਤੋਂ ਪਹਿਲਾਂ ਹੀ ਇੰਟਰਫ਼ੇਸ ਬਣਾਉਣਾ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ। ਗੁੰਮ ਮਾਡਿਊਲ ਨੂੰ ਇਜਾਜ਼ਤ ਦੀ ਹੱਦ ਜਾਂ ਮੌਜੂਦਾ ਇੰਟਰਫ਼ੇਸ ਮਾਲਕ ਤੋਂ ਵੱਖ ਪਛਾਣਨ ਲਈ ਗਲਤੀ ਪੜ੍ਹੋ।
WireGuard ਆਪਣਾ ਇੰਟਰਫ਼ੇਸ ਬਣਾਉਣ ਵਿੱਚ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਸੰਰਚਨਾ ਕਰਨ ਲਈ ਕੋਈ ਡਿਵਾਈਸ ਨਹੀਂ, ਬਦਲਣ ਲਈ ਕੋਈ ਕੁੰਜੀ ਨਹੀਂ ਅਤੇ ਡੀਬੱਗ ਕਰਨ ਲਈ ਕੋਈ ਹੈਂਡਸ਼ੇਕ ਨਹੀਂ। ਫੇਲ੍ਹਤਾ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਥਾਨਕ ਮਸ਼ੀਨ ਉੱਤੇ ਹੀ ਰਹਿੰਦੀ ਹੈ, ਅਤੇ ਗਲਤੀ ਦਾ ਪਾਠ ਦੱਸਦਾ ਹੈ ਕਿ ਸਥਾਨਕ ਸਟੈਕ ਦਾ ਕਿਹੜਾ ਹਿੱਸਾ ਮਨ੍ਹਾਂ ਕਰ ਗਿਆ। ਇਸਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਪੜ੍ਹਨਾ ਪੀਅਰ ਦੀ ਸੰਰਚਨਾ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕਰਨ ਨਾਲੋਂ ਤੇਜ਼ ਹੈ। ਪਰਤਾਂ ਵੱਖ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਸੁਨੇਹਾ ਮਨ੍ਹਾਂ ਕਰਨ ਵਾਲੀ ਪਰਤ ਦਾ ਨਾਮ ਲੈਂਦਾ ਹੈ।
ਗਲਤੀ ਕਿਸੇ ਵੀ ਪੀਅਰ ਦੇ ਬੋਲਣ ਤੋਂ ਪਹਿਲਾਂ ਹੁੰਦੀ ਹੈ
ਇੰਟਰਫ਼ੇਸ ਬਣਾਉਣਾ ਕਰਨਲ ਨੂੰ wireguard ਕਿਸਮ ਦੇ ਡਿਵਾਈਸ ਲਈ ਇੱਕ netlink ਬੇਨਤੀ ਹੈ। ਕਰਨਲ ਕੋਲ ਉਸ ਕਿਸਮ ਨੂੰ ਸਮਝਣ ਵਾਲਾ ਡਰਾਈਵਰ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਜਵਾਬ ਤੁਰੰਤ ਵਾਪਸ ਆਉਂਦਾ ਹੈ। ਇਸ ਕਦਮ ਵਿੱਚ ਕੋਈ ਪੈਕੇਟ ਮਸ਼ੀਨ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦਾ, ਇਸ ਲਈ ਐਂਡਪੁਆਇੰਟ ਪਤੇ ਅਤੇ ਸਰਵਰ ਕੁੰਜੀਆਂ ਕਾਰਨ ਨਹੀਂ ਹੋ ਸਕਦੀਆਂ।
ਇਹ ਕ੍ਰਮ ਨਿਦਾਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜੇ ਕਮਾਂਡ ਨੇ ਕਦੇ ਡਿਵਾਈਸ ਨਹੀਂ ਬਣਾਇਆ, ਤਾਂ ਸਮੱਸਿਆ ਗਲਤ ਜਨਤਕ ਕੁੰਜੀ ਜਾਂ ਬਲੌਕ ਕੀਤਾ UDP ਪੋਰਟ ਨਹੀਂ ਹੋ ਸਕਦੀ। ਪਹਿਲਾਂ ਸਥਾਨਕ ਬਣਾਉਣ ਦਾ ਰਾਹ ਠੀਕ ਕਰੋ ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਹੀ ਬਾਹਰ ਵੇਖੋ।
ਕਿਹੜਾ ਲਾਗੂਕਰਨ ਡਿਵਾਈਸ ਦਾ ਮਾਲਕ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ
ਉਸ ਬੇਨਤੀ ਦਾ ਜਵਾਬ ਦੋ ਲਾਗੂਕਰਨ ਦੇ ਸਕਦੇ ਹਨ। ਕਰਨਲ ਅੰਦਰਲਾ ਮਾਡਿਊਲ wireguard ਡਿਵਾਈਸ ਕਿਸਮ ਨੂੰ ਰਜਿਸਟਰ ਕਰਦਾ ਹੈ, ਅਤੇ wireguard-go ਵਰਗਾ ਵਰਤੋਂਕਾਰ-ਥਾਂ ਲਾਗੂਕਰਨ ਹੋਰ ਮਕੈਨਿਜ਼ਮ ਰਾਹੀਂ ਉਹੀ ਇੰਟਰਫ਼ੇਸ ਦਿੰਦਾ ਹੈ। ਜੇ ਮਾਡਿਊਲ ਨਹੀਂ ਹੈ, ਤਾਂ ਕਰਨਲ ਅਣਸਮਰਥਿਤ ਡਿਵਾਈਸ ਦੀ ਗਲਤੀ ਨਾਲ ਬੇਨਤੀ ਨੂੰ ਰੱਦ ਕਰਦਾ ਹੈ, ਅਤੇ ਹੱਲ ਮਾਡਿਊਲ ਲੋਡ ਕਰਨਾ ਜਾਂ ਸੰਦਾਂ ਨੂੰ ਵਰਤੋਂਕਾਰ-ਥਾਂ ਲਾਗੂਕਰਨ ਵੱਲ ਮੋੜਨਾ ਹੈ।
ਦੋਹਾਂ ਵਿੱਚੋਂ ਚੋਣ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਵੇਖੋ ਕਿ ਅਸਲ ਵਿੱਚ ਕੀ ਮੌਜੂਦ ਹੈ। ਪਹਿਲੀ ਕਮਾਂਡ ਦੱਸਦੀ ਹੈ ਕਿ ਮਾਡਿਊਲ ਲੋਡ ਹੈ ਜਾਂ ਨਹੀਂ ਅਤੇ ਦੂਜੀ ਕਰਨਲ ਨੂੰ ਸਿੱਧਾ ਪੁੱਛਦੀ ਹੈ:
lsmod | grep wireguard
ip link add wgtest0 type wireguard
ਦੂਜੀ ਕਮਾਂਡ ਸਭ ਤੋਂ ਛੋਟਾ ਸੰਭਵ ਦੁਹਰਾਉ ਹੈ: ਇਹ ਡਿਵਾਈਸ ਮੰਗਦੀ ਹੈ ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ। ਜੇ ਇਹ ਅਣਸਮਰਥਿਤ ਕਿਸਮ ਦੇ ਸੁਨੇਹੇ ਨਾਲ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਗੁੰਮ ਹਿੱਸਾ ਲਾਗੂਕਰਨ ਹੈ, ਤੁਹਾਡੀ ਸੰਰਚਨਾ ਫਾਈਲ ਨਹੀਂ।
| Error text | What refused | Next step |
|---|---|---|
| Unknown device type or operation not supported | The kernel has no wireguard driver | Load the module or use the userspace implementation |
| Operation not permitted | Missing privilege | Use the service context or grant the capability |
| File exists | The name is already in use | Inspect the owner before touching it |
| No such device in a container | No tunnel device or capability | Add the device and NET_ADMIN to the container |
ਇਜਾਜ਼ਤਾਂ ਅਤੇ ਕੰਟੇਨਰ ਦੀਆਂ ਹੱਦਾਂ
ਨੈੱਟਵਰਕ ਡਿਵਾਈਸ ਬਣਾਉਣ ਅਤੇ ਸੰਰਚਿਤ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਲੋੜੀਂਦੀ ਹੈ, ਜਾਂ ਤਾਂ root ਵਜੋਂ ਜਾਂ ਨੈੱਟਵਰਕ ਪ੍ਰਬੰਧਨ ਦੀ ਸਮਰੱਥਾ ਨਾਲ। ਆਮ ਵਰਤੋਂਕਾਰ ਸੈਸ਼ਨ ਇਹ ਨਹੀਂ ਕਰ ਸਕਦਾ, ਅਤੇ ਇਹ ਹੱਦ ਹੀ ਡਿਜ਼ਾਈਨ ਹੈ, ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਮੀਖਿਆ ਨ ਕੀਤੇ ਇੰਸਟਾਲਰ ਨੂੰ ਚਲਾ ਕੇ ਬਚਣ ਵਾਲੀ ਰੁਕਾਵਟ ਨਹੀਂ।
ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ ਹੱਦ ਦੁੱਗਣੀ ਹੋ ਜਾਂਦੀ ਹੈ। ਕੰਟੇਨਰ ਨੂੰ ਟਨਲ ਡਿਵਾਈਸ ਤੱਕ ਪਹੁੰਚ ਅਤੇ ਇਸਨੂੰ ਸੰਰਚਿਤ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ ਇਹ ਦੇਣ ਵਾਲੇ ਫਲੈਗ Linux ਤੇ VPN ਕੰਟੇਨਰ ਵਰਤਦਾ ਹੈ ਉਹੀ ਹਨ। ਆਮ ਤੌਰ ਤੇ ਵੈੱਬ ਬ੍ਰਾਊਜ਼ ਕਰ ਸਕਣ ਵਾਲਾ ਪਾਬੰਦੀਸ਼ੁਦਾ ਮਹਿਮਾਨ ਵੀ ਇੰਟਰਫ਼ੇਸ ਨਹੀਂ ਬਣਾ ਸਕਦਾ, ਕਿਉਂਕਿ ਬ੍ਰਾਊਜ਼ਿੰਗ ਨੂੰ ਅਜਿਹੀ ਸਮਰੱਥਾ ਦੀ ਲੋੜ ਨਹੀਂ। ਸਮਰੱਥਾ ਉਸ ਸੇਵਾ ਨੂੰ ਦਿਓ ਜਿਸਨੂੰ ਇਸਦੀ ਲੋੜ ਹੈ, ਹੋਸਟ ਤੇ ਹਰ ਸੈਸ਼ਨ ਨੂੰ ਨਹੀਂ।
ਨਾਮ ਦਾ ਟਕਰਾਅ ਹੱਲ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ
ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਇੰਟਰਫ਼ੇਸ ਆਪਣੇ ਆਪ ਬਚਿਆ ਹੋਇਆ ਨਹੀਂ ਹੁੰਦਾ। ਹੋਰ ਪ੍ਰਬੰਧਕ ਨਾਮ ਦਾ ਮਾਲਕ ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਹੁਣੇ ਵਰਤ ਰਿਹਾ ਹੋ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਕੁਝ ਵੀ ਹਟਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸਦੀ ਜਾਂਚ ਕਰੋ:
ip link show wg0
sudo wg show wg0
ਜੇ ਮਾਲਕ ਕੋਈ ਸਰਗਰਮ ਸੇਵਾ ਹੈ, ਤਾਂ ਦੂਜਾ ਡਿਵਾਈਸ ਬਣਾਉਣ ਦੀ ਬਜਾਏ ਉਹੀ ਸੇਵਾ ਸੰਰਚਿਤ ਕਰੋ। ਜੇ ਇਹ ਸੱਚਮੁੱਚ ਪੁਰਾਣਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਬਣਾਉਣ ਵਾਲੇ ਸੰਦ ਰਾਹੀਂ ਹਟਾਓ, ਅਤੇ ਫਿਰ ਸੰਰਚਨਾ ਅਤੇ ਡਿਵਾਈਸ ਨੂੰ ਮੇਲ ਵਿੱਚ ਰੱਖਣ ਲਈ ਦਸਤਾਵੇਜ਼ੀ ਕਲਾਇੰਟ ਜਾਂ ਯੂਨਿਟ ਨਾਲ ਇੰਟਰਫ਼ੇਸ ਉੱਪਰ ਲਿਆਓ।
ਬਣਾਉਣਾ ਸਫਲ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਅਗਲੀ ਫੇਲ੍ਹਤਾ ਕਿਸੇ ਬਾਅਦਲੇ ਪੜਾਅ ਦੀ ਹੈ, ਅਤੇ ਡਿਵਾਈਸ ਮੌਜੂਦ ਹੋਣ ਤੋਂ ਬਾਅਦ ਫੇਲ੍ਹਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰਨ ਵਾਲੀ ਯੂਨਿਟ ਕਦੇ ਨਾ ਬਣੇ ਡਿਵਾਈਸ ਨਾਲੋਂ ਵੱਖਰੀ ਸਮੱਸਿਆ ਹੈ। ਦੁਬਾਰਾ ਇਜਾਜ਼ਤਾਂ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਦੋਹਾਂ ਨੂੰ ਵੱਖ ਕਰੋ।