റീസ്റ്റാർട്ടിന് ശേഷം 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-ൽ പ്രത്യക്ഷപ്പെടുന്നു, ട്രാഫിക്കിന് ശേഷം ഹാൻഡ്ഷേക്ക് കൗണ്ടർ കൂടുന്നു, ടണലിനെ ആശ്രയിക്കുന്ന ആപ്ലിക്കേഷൻ യഥാർത്ഥത്തിൽ ഉത്തരം നൽകുന്നു. പഴയ ഹാൻഡ്ഷേക്കോടെ പട്ടികയിൽ കാണുന്ന പീർ റൂട്ടിംഗ് അല്ലെങ്കിൽ കീ പ്രശ്നമാണ്, സ്ഥിരതയുടെ പ്രശ്നമല്ല, ഈ വ്യത്യാസം നിഷ്പ്രയോജനമായ ഒരു കോൺഫിഗറേഷൻ എഡിറ്റ് ഒഴിവാക്കുന്നു.
അവസാനമായി, റീസ്റ്റാർട്ട് എന്താണ് പുനഃസ്ഥാപിച്ചതെന്ന് പരിശോധിക്കുക. ബോധപൂർവ്വം നീക്കിയ ഒരു പീറിനെ തിരികെ കൊണ്ടുവരുന്ന റീസ്റ്റാർട്ട് അതേ ബഗ് വിപരീത ചിഹ്നത്തോടെയാണ്, സാധാരണയായി അർത്ഥമാക്കുന്നത് കോൺഫിഗറേഷന്റെ പഴയ പകർപ്പ് എവിടെ നിന്നോ ഇപ്പോഴും ലോഡ് ചെയ്യുന്നു എന്നാണ്. ഉടമ, ഫയൽ പാത്ത്, പീറിന്റെ പൊതു കീ, പരിശോധനാ കമാൻഡുകൾ എന്നിവ കോൺഫിഗറേഷന് അരികിൽ രേഖപ്പെടുത്തുക, അടുത്ത വ്യക്തി പ്രൊഡക്ഷൻ ഹോസ്റ്റ് റീസ്റ്റാർട്ട് ചെയ്ത് ഇത് വീണ്ടും കണ്ടെത്താതിരിക്കാൻ.