In Pi laga beddelo Wi-Fi oo fiilo la isticmaalo waxay u egtahay shaqo shan daqiiqo ah, waxayna sidaas ku sii ahaanaysaa kaliya haddii aad u qaadato guuritaanka afar dejis oo kala duwan halkii mid. Magaca barta dambe ee macaamiishaadu wacaan wuu si lamid ah u sii ahaan karaa iyadoo ciwaanka hoostiisa uu beddelmo. Waxa dhab ahaan jabaa waa dhageyste ku xiran ciwaanka hore, gudbin deked oo weli u jeedda kirada xiriirla'aanta, ama dariiq dib u noqosho oo ka soo baxa isku-xirka aad u malaynayso inaad ka fadhiisatay. Hagahan wuxuu dariiqa soo kabashada u hayaa furan tallaabo kasta, sidaas darteed isbeddel guuldareystay wuxuu ku kacayaa kaliya dib u bilow.

Qor afar milkiilayaasha ka hor inta aad wax ka furto

Afar dejis ayaa go'aamiya haddii isbeddelku sii jiri doono: ciwaanka Pi, ciwaanka xidhitaanka OpenVPN, bartilmaameedka leexinta router-ka iyo dariiqa jawaabtu qaadato. Qor afarta oo dhan ka hor inta aad taabato fiilada, maxaa yeelay marka kirada xiriirla'aanta ay lumiso ma awoodid inaad akhrido qiyamkii hore mishiinka. Isku-xirka fiiladu ma dhaxlo borofiilka xiriirla'aanta, iyo Bookworm ciwaanku wuxuu ku nool yahay NetworkManager halka Bullseye uu ku hayo dhcpcd.conf. Kayd ku xidhay ciwaanka MAC xiriirla'aanta wax kama sheegayo eth0. U qaado ciwaanka cusub sida qoondayn cusub oo u baahan caddayntiisa.

Old wireless lease:   10.42.7.24/24 on wlan0
New wired address:    10.42.7.31/24 on eth0
Client endpoint:      vpn.lab.example:1194/udp

Dhageystaha waa milkiilaha labaad. Haddii adeegga lagu bilaabay ciwaan xidhitaan gaar ah, socket-ku wuxuu la dhintaa isku-xirka hore; haddii uu xidho dhammaan ciwaannada, socket-ku wuu sii noolaanayaa oo qaanuunka router-ka wuxuu noqonayaa waxa kaliya ee hadhay in la hagaajiyo.

Bartilmaameedka leexinta iyo dariiqa dib u noqoshada waa milkiilayaasha dadku dhaafaan. Gudbin weli u jeedda 10.42.7.24 waxay u dirtaa gacan-qabsiga soo gaaraya ciwaan aan Pi haysan, sidaas darteed macaamiishu waxay ku dhamaanayaan waqti-dhaaf bilaa hal saf oo log ah dhinaca server-ka. Dariiqa dib u noqoshada waa muhiim marka labada xiriir ay muddo gaaban firfircoon yihiin, sababtoo ah Pi wuxuu ka jawaabaa isku-xirka ay miiska dariiqa doorbidaan, taasina ma aha had iyo jeer kan xirmada ku timid. Raadinta dariiqa hoose waxay muujinaysaa isha kernel-ku doorbido.

Akhri socket-ka dhabta ah ka hor inta aad aaminto ciwaanka cusub

Faylasha habayntu waxay sharraxaan ujeeddada socket-kuna wuxuu sharraxaa xaqiiqada. Weydii adeegga socda waxa uu ku xiran yahay halkii aad aaminto habaynta aad xasuusato. Buug-gacmeedka OpenVPN 2.6 wuxuu qeexayaa --local sida xidhitaan ciwaan keliya wuxuuna xusayaa in ka-tagistiisu xidho isku-xir kasta.

sudo systemctl cat openvpn-server@server | grep -n -- '--local'
sudo ss -lunp '( sport = :1194 )'

Akhri tiirka ciwaanka gudaha halkii tiirka xaaladda. Sadar muujinaya 10.42.7.24:1194 waxay ka dhigan tahay in socket-ku ku xiran yahay ciwaanka aad hadda tirtirayso, halka 0.0.0.0:1194 ama *:1194 ay ka dhigan tahay in daemon-ku isagu raaco isbeddelka isku-xirka. Haddii ciwaanku xiran yahay, tafatir borofiilka oo dib u bilow cutubka halkii aad gacanta ku dib u qori lahayd socket-ka nool, ka dibna xaqiiji in adeeggu wali gaaro faylasha shahaadada iyo furaha.

U mar guuritaanka nidaam kugu hayaa la gaari karo

Nidaamku halkan wuu ka muhiimsan yahay xawaaraha. Kor u qaad xiriirka fiilada inta xiriirla'aanta weli shaqaynayso, xaqiiji ciwaanka cusub iyo dariiqa dib u noqoshada, kadibna ka fadhiisi borofiilka xiriirla'aanta. Nidaamkaas wuxuu furan hayaa kulan shaqaynaya ilaa beddelka la caddeeyo.

ip -br addr show eth0
ip route get 203.0.113.10
nmcli -g ipv4.method,ipv4.addresses con show "Wired connection 1"

Amarka koowaad wuxuu ka jawaabaa haddii eth0 uu helay ciwaanka aad uga hadal jeeday, tan labaadna waxay daabacdaa ciwaanka isha ee kernel-ku isticmaali lahaa bartilmaameed dibadda ah, sidaas darteed ku socodsii ka hor iyo ka dib isbeddelka. Haddii ishaasi wali tahay ciwaanka xiriirla'aanta, xiriirka fiiladu wali ma aha dariiqa la doorbiday oo tijaabada dibadda waxay ku guuldareysan doontaa sabab aan wax xiriir ah la lahayn OpenVPN. Hagaaji doorbidka dariiqa ka hor inta aad taabato gudbinta.

Marka labada xiriir ay firfircoon yihiin, Pi waxaa laga yaabaa inuu doorbido dariiqa caadiga ah ee xiriirla'aanta sababtoo ah ayaa markii ugu horreysay la rakibay ama sababtoo ah xiriirka fiiladu wuxuu qaadaa mitir sare. Bookworm dejinta la taageeray waa ipv4.route-metric xiriirka, Bullseye-na waxa u dhigma waa sadar metric u gaar ah isku-xirka oo ku yaal dhcpcd.conf. Hoos u dhig mudnaanta xiriirka xiriirla'aanta halkii aad damin lahayd, si dariiqa dib u noqoshada uu hal amar uga fogaanayo.

Caddee tunnel-ka dibadda, ma aha LAN-ka

Xiriir VPN oo ka shaqeeya fadhiga waxa uu caddeeyaa wax ka yar inta la arko. Taraafik ka imanaya gudaha LAN una socda ciwaanka dadweynaha wuxuu maraa qaanuunnada hairpin ama milicsiga oo router-yadu si aan isku mid ah u fuliyaan, sidaas darteed tijaabo LAN guulaysata waxay la wada noolaan kartaa dariiq dibadda ah oo jabay. Isticmaal telefoon leh xogta gacanta, ama martigeli kasta oo ka baxsan shabakadda, tijaabada aqbalaadda. Hayso isku dayga LAN sida baaritaan ikhtiyaari ah oo gaar ah.

Kadib akhri log-ka sida ay xirmooyinku u yimaadaan. Waxba ma jiraan waxay ka dhigan tahay in gacan-qabsigu uusan waligiis gaarin Pi, sidaas darteed bartilmaameedka leexinta ama derbiga dabka ee martigeliyaha waa khalad. Gacan-qabsiga bilaabma oo istaaga wuxuu tilmaamaa furaha, shahaadooyinka ama MTU. Kulan dhammaada oo dhaca badanaa wuxuu ka dhigan yahay dariiqa dib u noqoshada ama dariiq labaad oo caadi ah, sadarka log-ka macmiilka Initialization Sequence Completed wuxuu kuu sheegayaa in tunnel-ka laftiisu kor u kacay.

sudo journalctl -u openvpn-server@server -n 40 --no-pager
sudo tcpdump -ni any udp port 1194 -c 20

Haddii waxba ka soo muuqan log-ka server-ka inta macmiilku dib u tijaabinayo, jooji akhrinta habaynta OpenVPN oo ku noqo bartilmaameedka leexinta. Qabashada waxay ka jawaabtaa su'aasha imaatinka ilbiriqsiyo gudahood, xirmooyinka soo galaya ee jawaab la'aan waxay dhibaatada ku yareeyaan dariiqa.

Hayso dib u noqosho hal tallaabo ah oo ka fadhiisi borofiilka xiriirla'aanta

Ka tag borofiilka xiriirla'aanta oo rakiban ilaa habaynta fiiladu ka gudubto dib u bilow. nmcli con show waxay taxdaa magacyada borofiilka aad u baahan doonto, borofiil la tirtirayna waa in laga dib u dhiso xusuusta waqtiga ugu xun. Qor magaca isku-xirka, habka ciwaanka iyo mitirka agtooda afarta qiyam ee kale. Dib u noqosho aad ka qori karto qoraal ayaa ka qiimo badan mid aad dib u dhisanayso.

Ka fadhiisinta ku-tiirsanaanta xiriirla'aanta waa isbeddel sifo ah ee ma aha tirtirid. Dejinta connection.autoconnect no aqoonsiga iyo taariikhda ciwaanku way sii waarayaan iyadoo Pi laga horjoogsaday inuu dib ugu xirmo shabakad aad ka guurtay.

nmcli con show
sudo nmcli con up "Wired connection 1"
sudo nmcli con mod "previously-used-wifi" connection.autoconnect no

Ka hor inta aadan ku dhawaaqin shaqada inay dhammaatay, xaqiiji afar wax: bartilmaameedka leexintu wuxuu la mid yahay ciwaanka fiilada, dhageystaha wuu ka badbaaday dib u bilow, macmiil dibadda ah wuu dhammeeyaa gacan-qabsiga, iyo Pi wali wuxuu ka jawaabaa ciwaanka fiilada dib u bilow ka dib. Dib u bilowgu waa habka ugu jaban ee lagu qabto qoondayn ku jirtay kaliya kernel-ka socda. Haddii mid ka mid ah afarta uu guuldareysto, kor u qaad mar kale borofiilka xiriirla'aanta iyadoo la isticmaalayo sudo nmcli con up oo isbarbar dhig qiyamka la qoray iyo kuwa firfircoon.

Maqaallo la xiriira