તમે /etc/wireguard/wg0.conf માં એક પીઅર ઉમેરો છો, systemctl restart wg-quick@wg0 ચલાવો છો, અને ફરી જુઓ ત્યારે પીઅર ફાઇલમાંથી ગાયબ થઈ જાય છે. કંઈપણ કંઈપણ બગાડ્યું નથી. ફરી શરૂ કરવું એ બંધ કર્યા પછીનું શરૂ કરવું છે, અને બંધ કરવાનું પગલું તમે હમણાં સંપાદિત કરેલી ફાઇલ પર વર્તમાન રનટાઇમ સ્થિતિ લખી શકે છે. જવાબદાર સેટિંગ તમે સંપાદિત કરી રહ્યા હતા તે જ ફાઇલમાં રહે છે, અને એ જ કારણ છે કે પહેલી વાર તેનો સામનો કરો ત્યારે આ લૂપ એટલું મૂંઝવણભર્યું લાગે છે.

બે સ્થિતિઓ, એક ફાઇલ અને બંધ કરતી વખતે સાચવવું

WireGuard ની રનટાઇમ સ્થિતિ અને wg-quick કન્ફિગરેશન ફાઇલ સંબંધિત છે પણ અલગ છે. ફાઇલ ઇનપુટ છે: wg-quick તેને વાંચે છે, ઇન્ટરફેસ બનાવે છે, સરનામાં અને રૂટ સેટ કરે છે અને પીઅર કન્ફિગર કરે છે. કર્નલ ઉપકરણ જીવંત ઑબ્જેક્ટ છે, અને wg વડે કરેલા નીચા સ્તરના ફેરફારો ક્યારેય પોતાને પાછા લખતા નથી.

એક દિશા સિવાય. જ્યારે ઇન્ટરફેસ વિભાગમાં SaveConfig = true દેખાય છે, ત્યારે wg-quick ઇન્ટરફેસ નીચે ઉતારવાના ભાગ રૂપે જીવંત કન્ફિગરેશન ફાઇલમાં સાચવે છે. wg-quick મેન્યુઅલ આની બરાબર ચેતવણી આપે છે: ઇન્ટરફેસ ચાલુ હોય ત્યારે ફાઇલમાં કરેલા ફેરફારો તેને દૂર કરતી વખતે ફરી લખાઈ શકે છે. તે બંધ કરતી વખતનું સાચવવું છે, બેકગ્રાઉન્ડ ટાઇમર નહીં, તેથી કંઈક ઇન્ટરફેસ બંધ કરે ત્યારે જ તે કાર્યરત થાય છે.

ActionWhat it writesWhen it surprises you
wg set on a live interfaceKernel state onlyAfter reboot, when the file was never updated
wg-quick down with SaveConfigLive state into the fileRight after you edited the file
wg syncconfKernel state onlyNever; it does not touch the file
wg-quick upKernel state from the fileIf the file is stale, you get the old tunnel

કોષ્ટકને ક્રમ વિશેની ચેતવણી તરીકે વાંચો. આ ક્ષેત્રમાં દરેક આકસ્મિક નુકસાન સાચવવાના પછી નહીં, પહેલાં થયેલા સંપાદનમાંથી આવે છે.

પહેલાં બંધ કરો, બીજે સંપાદિત કરો, છેલ્લે શરૂ કરો

જો ફાઇલ તમારો સત્યનો સ્રોત છે, તો આશાથી નહીં, રચનાથી ફાઇલને સત્તાવાર બનાવો. ઇન્ટરફેસ નીચે ઉતારો, તે ગયું છે તેની ખાતરી કરો, પછી સંપાદિત કરો, પછી તેને ફરી ઉપર લાવો. નિયમ સરળ છે: સાચવવું હજી ચાલી શકે ત્યાં સુધી કોઈ સંપાદન અસ્તિત્વમાં નથી.

sudo cp -a /etc/wireguard/wg0.conf /root/wg0.conf.$(date +%F-%H%M)
sudo wg-quick down wg0
ls /sys/class/net/wg0 2>/dev/null || echo "interface is gone"
sudoedit /etc/wireguard/wg0.conf
sudo wg-quick up wg0

બેકઅપ લાઇન માત્ર ઔપચારિકતા નથી. જો ટનલ આ મશીન સુધી પહોંચવાનો તમારો રસ્તો છે, તો નીચે ઉતારવાનું પગલું તમારું સેશન સમાપ્ત કરી શકે છે, અને ડિસ્ક પરની નકલ સાથે કન્સોલ અથવા આઉટ-ઓફ-બેન્ડ માર્ગ એ જ એકમાત્ર કામ કરતું રોલબેક છે. બીજી લાઇન પર ભરોસો કરતા પહેલાં તેને ચકાસો: શાંતિથી નિષ્ફળ જતી સ્ક્રિપ્ટમાં જૂનું ઇન્ટરફેસ નામ એ જ રીતે લોકો હજી જીવંત ફાઇલને સંપાદિત કરે છે.

સામાન્ય નીચે ઉતારતા પહેલાં SaveConfig = false સેટ કરવું એ બીજો સ્વીકૃત માર્ગ છે, અને તે wg-quick ખરેખર વાંચે તે ફાઇલમાં જ કરવું પડે. તે તે એક સ્વયંસંચાલિત સાચવવાનું અટકાવે છે. તે અલગ NetworkManager પ્રોફાઇલ, રાઉટર એક્સપોર્ટ કે કન્ટેનર એન્ટ્રીપોઇન્ટને તમારા સંપાદનો ફરી લોડ કરવા મજબૂર કરતું નથી, કારણ કે તે મેનેજરો આ ફાઇલ બિલકુલ વાંચતા નથી.

ઇન્ટરફેસ ફાડ્યા વિના પીઅર ફેરફારો લાગુ કરો

દરેક સંપાદનને અટકાવની જરૂર હોતી નથી. ફાઇલને કન્ફિગરેશનમાં ફેરવીને સિંક કરીને ચાલુ ઇન્ટરફેસ પર પીઅર-સ્તરના ફેરફારો લાગુ કરી શકાય છે, જે નીચે ઉતારવાનું પગલું સંપૂર્ણપણે ટાળે છે અને તેથી સાચવવાનું પણ ટાળે છે:

sudo wg syncconf wg0 <(sudo wg-quick strip wg0)
sudo wg show wg0 peers
sudo wg show wg0 latest-handshakes

strip પગલું મહત્વનું છે. તે ફક્ત wg-quick ની કી દૂર કરીને ફાઇલ છાપે છે, જેથી સરનામાં, DNS અને રૂટિંગ સૂચનાઓ એવા સાધનમાં ન જાય જે તેમને સમજતું નથી. પછી સિંક ઇન્ટરફેસ ફરી બનાવ્યા વિના પીઅર અને કી જીવંત ઉપકરણ પર લાગુ કરે છે, તેથી હાલના સેશન અને રૂટ ટકી રહે છે.

મર્યાદાઓ વિશે સ્પષ્ટ રહો. પીઅર સિંક કરવાથી ઇન્ટરફેસનું સરનામું, wg-quick ઉમેરેલા રૂટ કે રિઝોલ્વર કન્ફિગરેશન બદલાતું નથી, કારણ કે તેમાંથી કંઈપણ WireGuard ઉપકરણનું નથી. AllowedIPs માં સબનેટ ઉમેરીને કર્નલ તેને રૂટ કરશે તેવી અપેક્ષા રાખવી એ પરંપરાગત ખોટું વાંચન છે; રૂટ wg-quick દ્વારા ઉપર લાવતી વખતે અથવા તમારે ઉમેરવો પડે છે.

કંઈપણ સંપાદિત કરતા પહેલાં ઇન્ટરફેસ કોનું છે તે તપાસો

કન્ફિગરેશન સિસ્ટમ દ્વારા સંચાલિત ડેસ્કટોપ અથવા સર્વર પર, ફાઇલ ઇનપુટને બદલે આઉટપુટ હોઈ શકે છે. NetworkManager કનેક્શન, રાઉટર દ્વારા બનાવેલ પ્રોફાઇલ કે કન્ટેનર સ્ટાર્ટઅપ સ્ક્રિપ્ટ બધા એક જ ઇન્ટરફેસ નામ ધરાવી શકે છે, અને તે કિસ્સામાં નિર્દોષ wg-quick ક્રમ પણ ખોટી વસ્તુ જ સંપાદિત કરે છે.

systemctl status wg-quick@wg0 --no-pager
nmcli connection show | grep -i wireguard
sudo wg showconf wg0 | head -n 5

ત્રીજો આદેશ જીવંત કન્ફિગરેશન ફાઇલ જેવા જ ફોર્મેટમાં છાપે છે, ખાનગી કી સહિત, જે સરખામણી માટે ઉપયોગી અને ટિકિટમાં જોખમી છે. પેસ્ટ કરતા પહેલાં તેને અસ્પષ્ટ કરો; સપોર્ટ થ્રેડમાં ખાનગી કી કાયમી ગંભીરતા છે, ટાઇપો નહીં.

જો સેવા એકમ નિષ્ક્રિય હોય પણ ઇન્ટરફેસ અસ્તિત્વમાં હોય, તો કંઈક બીજું તેને બનાવ્યું છે અને ફાઇલ સત્તાવાર નથી. તે એક નિરીક્ષણ કંઈપણ ન વાંચતી ફાઇલને સંપાદિત કરવાનો એક કલાક બચાવે છે.

આગલું ફરી શરૂ કરવું ચકાસો, પછી રોલબેક રાખો

જે પરીક્ષણ ખરેખર સુધારો સાબિત કરે છે તે બીજું ફરી શરૂ કરવું છે, કારણ કે પહેલી વાર જે ક્રમ નિષ્ફળ ગયો હતો તે જ તે છે. પીઅર તેમાંથી ટકી રહે છે અને જીવંત કન્ફિગરેશન હજી ડિસ્ક પરના જેવું જ છે તેની ખાતરી કરો:

sudo systemctl restart wg-quick@wg0
sudo wg show wg0 latest-handshakes
sudo grep -c '^\[Peer\]' /etc/wireguard/wg0.conf

ફરી શરૂ કરવું બે વાર ચલાવો. એક વાર સ્વચ્છ પસાર થવું નસીબ હોઈ શકે: પહેલું ફરી શરૂ કરવું હજી સાચવ્યા વિનાનો રનટાઇમ ફેરફાર વાપરી શકે છે, તેથી બીજું જ તમને કહે છે કે પહેલાના અંતે ફાઇલ અને રનટાઇમ સંમત હતા.

પ્રક્રિયાની શરૂઆતથી બેકઅપ રાખો જ્યાં સુધી તમે બેવડું ફરી શરૂ કરવું પૂરું ન કરો, પછી તેને કાઢી નાખો અથવા કન્ફિગરેશન ડિરેક્ટરીમાંથી બહાર ખસેડો. સાચી ફાઇલની બાજુમાં પડેલું wg0.conf.bak wg-quick માટે હાનિકારક નથી અને આગલી વ્યક્તિ માટે મૂંઝવણભર્યું છે, જે આખરે ખોટી ફાઇલ સંપાદિત કરશે.

સંબંધિત લેખો