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
જો માલિક સક્રિય સેવા હોય, તો બીજું ઉપકરણ બનાવવાને બદલે એ સેવાને રૂપરેખાંકિત કરો. જો તે ખરેખર જૂનું હોય, તો જે સાધને તેને બનાવ્યું હતું તેની મારફતે દૂર કરો, અને પછી દસ્તાવેજીકૃત ક્લાયન્ટ કે યુનિટ સાથે ઇન્ટરફેસ ઉપર લાવો જેથી રૂપરેખા અને ઉપકરણ એકસાથે રહે.
બનાવવું સફળ થાય તે પછી, આગલી નિષ્ફળતા પછીના તબક્કાની છે, અને ઉપકરણ હાજર હોવા પછી નિષ્ફળતાની જાણ કરતું યુનિટ ક્યારેય ન બનેલા ઉપકરણ કરતાં અલગ સમસ્યા છે. ફરી પરવાનગીઓ બદલતા પહેલાં બંનેને અલગ કરો.