Rydych yn ychwanegu peer at /etc/wireguard/wg0.conf, yn rhedeg systemctl restart wg-quick@wg0, ac mae’r peer wedi diflannu o’r ffeil pan edrychwch eto. Nid oes dim wedi llygru dim. Mae ailgychwyn yn stopio ac yna’n cychwyn, a gall y cam stopio ysgrifennu cyflwr rhedeg presennol yn ôl dros y ffeil yr ydych newydd ei golygu. Mae’r gosodiad sy’n gyfrifol yn byw yn yr un ffeil yr oeddech yn ei golygu, a dyna sy’n gwneud y ddolen mor ddryslyd y tro cyntaf y dewch ar ei thraws.

Dau gyflwr, un ffeil, a chadw wrth gau

Mae cyflwr rhedeg WireGuard a ffeil gyfluniad wg-quick yn gysylltiedig ond yn wahanol. Mewnbwn yw’r ffeil: mae wg-quick yn ei darllen, yn creu’r rhyngwyneb, yn gosod cyfeiriadau a llwybrau, ac yn ffurfweddu peerau. Y ddyfais gnewyllyn yw’r gwrthrych byw, ac nid yw newidiadau lefel isel a wneir gyda wg byth yn ysgrifennu eu hunain yn ôl.

Ac eithrio mewn un cyfeiriad. Pan fydd SaveConfig = true yn ymddangos yn adran y rhyngwyneb, mae wg-quick yn cadw’r cyfluniad byw i’r ffeil fel rhan o ddod â’r rhyngwyneb i lawr. Mae llawlyfr wg-quick yn rhybuddio am hyn yn union: gall newidiadau a wneir i’r ffeil tra bo’r rhyngwyneb i fyny gael eu trosysgrifo pan gaiff ei dynnu. Cadw wrth gau yw hyn, nid amserydd cefndir, felly dim ond pan fydd rhywbeth yn stopio’r rhyngwyneb y mae’n tanio.

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

Darllenwch y tabl fel rhybudd am drefn. Daw pob colled ddamweiniol yn y maes hwn o olygiad a ddigwyddodd cyn cadw yn lle ar ôl un.

Stopiwch yn gyntaf, golygwch yn ail, cychwynnwch yn olaf

Os y ffeil yw eich ffynhonnell gwirionedd, gwnewch y ffeil yn awdurdodol drwy adeiladaeth yn hytrach na thrwy obaith. Ewch â’r rhyngwyneb i lawr, cadarnhewch ei fod wedi mynd, yna golygwch, yna dewch ag ef yn ôl i fyny. Y rheol yn syml yw na fydd golygiad yn bodoli tra gall cadw redeg o hyd.

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

Nid yw’r llinell wrth gefn yn ddefod. Os y twnnel yw’r ffordd i gyrraedd y peiriant hwn, gall y cam i lawr ddod â’ch sesiwn i ben, a chopi ar y disg ynghyd â chonsol neu lwybr allan o fand yw’r unig wrthgiliad sy’n gweithio. Gwiriwch yr ail linell honno cyn ymddiried ynddi: enw rhyngwyneb hen ffasiwn mewn sgript sy’n methu’n dawel yw’r ffordd y mae pobl yn golygu ffeil sydd dal yn fyw.

Gosod SaveConfig = false cyn dod i lawr yn arferol yw’r llwybr derbyniol arall, ac mae’n rhaid ei wneud yn y ffeil y mae wg-quick yn ei darllen mewn gwirionedd. Mae’n atal y cadw awtomatig hwnnw. Nid yw’n gwneud i broffil NetworkManager ar wahân, allforiad llwybrydd neu bwynt mynediad cynhwysydd ail-lwytho eich golygiadau, oherwydd nid yw’r rheolwyr hynny byth yn darllen y ffeil hon.

Cymhwyswch newidiadau peer heb rwygo’r rhyngwyneb

Nid oes angen methiant ar bob golygiad. Gellir cymhwyso newidiadau ar lefel peer i ryngwyneb sy’n rhedeg drwy droi’r ffeil yn gyfluniad a’i chydamseru, sy’n osgoi’r cam i lawr yn gyfan gwbl ac felly’n osgoi’r cadw:

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

Mae cam strip yn bwysig. Mae’n argraffu’r ffeil gyda’r allweddi wg-quick yn unig wedi’u tynnu, fel nad yw cyfeiriadau, DNS a chyfarwyddiadau llwybro yn mynd i offeryn nad yw’n eu deall. Yna mae’r cydamseru yn cymhwyso peerau ac allweddi i’r ddyfais fyw heb ail-greu’r rhyngwyneb, felly mae sesiynau a llwybrau presennol yn goroesi.

Byddwch yn fanwl am y terfynau. Nid yw cydamseru peerau yn newid cyfeiriad y rhyngwyneb, y llwybrau a ychwanegodd wg-quick, na chyfluniad y datryswr, oherwydd nid oes unrhyw un o’r rheini’n perthyn i ddyfais WireGuard. Mae ychwanegu is-rwydwaith at AllowedIPs a disgwyl i’r cnewyllyn ei lwybro yw’r camddarllen clasurol; rhaid i wg-quick ychwanegu’r llwybr ar amser codi neu i chi ei ychwanegu.

Gwiriwch bwy sy’n berchen ar y rhyngwyneb cyn golygu unrhyw beth

Ar fwrdd gwaith neu weinydd a reolir gan system gyfluniad, gall y ffeil fod yn allbwn yn hytrach nag yn fewnbwn. Gall cysylltiad NetworkManager, proffil a gynhyrchir gan lwybrydd neu sgript cychwyn cynhwysydd i gyd fod yn berchen ar yr un enw rhyngwyneb, ac yn yr achos hwnnw mae dilyniant wg-quick di-fai yn dal i olygu’r arteffact anghywir.

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

Mae’r trydydd gorchymyn yn argraffu’r cyfluniad byw yn yr un fformat â’r ffeil, gan gynnwys yr allwedd breifat, sy’n ddefnyddiol ar gyfer cymharu ac yn beryglus mewn tocyn. Tynnwch ef cyn gludo; mae allwedd breifat mewn edefyn cymorth yn gyfaddawd parhaol, nid yn gamgymeriad teip.

Os yw’r uned wasanaeth yn anweithredol ond bod y rhyngwyneb yn bodoli, rhywbeth arall a’i creodd ac nid yw’r ffeil yn awdurdodol. Mae’r un arsylwi hwnnw’n arbed awr o olygu ffeil nad yw unrhyw beth yn ei darllen.

Gwiriwch yr ailgychwyn nesaf, yna cadwch wrthgiliad

Y prawf sy’n profi’r atgyweiriad mewn gwirionedd yw ail ailgychwyn, oherwydd dyna’r dilyniant a fethodd y tro cyntaf. Cadarnhewch fod y peer yn goroesi a bod y cyfluniad byw yn dal i gyd-fynd â’r hyn sydd ar y disg:

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

Rhedwch yr ailgychwyn ddwywaith. Gall un pas glân fod yn lwc: gall yr ailgychwyn cyntaf dreulio newid rhedeg nad oedd wedi’i gadw eto, felly’r ail yw’r un sy’n dweud wrthych fod y ffeil a’r rhedeg wedi cytuno ar ddiwedd y cyntaf.

Cadwch y copi wrth gefn o ddechrau’r broses nes i chi wneud yr ailgychwyn dwbl, yna ei ddileu neu ei symud allan o’r cyfeiriadur cyfluniad. Mae wg0.conf.bak crwydrol wrth ymyl y gwir ffeil yn ddiniwed i wg-quick ac yn ddryslyd i’r person nesaf, a fydd yn y pen draw yn golygu’r un anghywir.

Erthyglau cysylltiedig