Waxaad goynaa VPN-ka, ping 1.1.1.1 wali wuu jawaabayaa, oo baaritaan kasta oo magac ah wuu laalaadaa ka hor inta boggu ugu dambayn iska dhiibin. Kadib cat /etc/resolv.conf waxay muujinaysaa adeegye magac oo waligiis jiray oo kaliya gudaha tunnel-ka, badanaa kan ugu horreeya liiska. Tirtirka khadkaas waxay u muuqataa inuu hagaajinayo qiyaastii toban daqiiqo, ilaa hurdo, Wi-Fi wareeg ama dib u bilow dib u soo celiyaan. Faylka aad tafatirtay ma aha dejinta; waa muuqaal xaaladda xidhiidhka oo ay leedahay qayb kale.

Sababta hal gelitaan duug ah ugu kacdo ilbiriqsiyo baaritaan kasta

Xallinta glibc waxay dhex martaa liiska adeegyada magacyada si taxane ah oo waxay sugtaa in waqti-ka-qaadashadu dhammaado ka hor inta uusan isku dayin kan xiga, iyo resolv.conf(5) waxay liiskaas ku xaddidaa saddex gelitaan. Dhig xallin dhinaca tunnel-ka sida 10.8.0.1 liiska sare ka dib markii tunnel-ku tago, oo baaritaan kastaa wuxuu bixiyaa waqti-ka-qaadashada ka hor inta uusan u dhicin adeegye jawaabaya. Taasi waa sababta calaamaddu ugu egtahay xidhiidh dhintay halkii ay ahaan lahayd khalad DNS: biraawsarayaashu way xannibmaan, waqtigoodu dhammaadaa oo mararka qaarkood waxay bixiyaan cinwaan keyd ah oo hadhow duugoobaya.

Taas waxay kaloo sharraxaysaa sababta cabashadu u timaado sida «internet-ku wuu xumaaday». Ping cinwaan IP ah wuxuu caddeeyaa in xidhiidhku wanaagsan yahay, taas oo khaladka u muujinaysa mid ku jira barnaamijka. Liiska xalliyeyaashu waa waxa ugu horreeya ee la akhriyo iyo waxa ugu dambeeya ee la tafatiro.

Khubada: resolv.conf waa fayl dejineed

Weydii waxa ay tahay waddadaas dhab ahaan ka hor inta aadan beddelin:

ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf

Adeegaha systemd-resolved, waa isku xidh symbolic ah oo ku socda fayl stub oo tilmaamaya 127.0.0.53, adeegyada dhabta ahuna waxay ku nool yihiin xaaladda xidhiidh kasta oo resolvectl daabacdo. Adeegaha NetworkManager, waxay noqon kartaa fayl uu NetworkManager ka qoro xidhiidhka firfircoon. Qaar ka mid ah macaamiisha iibkuwada, waa fayl caadi ah oo dib loo qoro isla goobta marka la xidhiidho iyo, haddii aadan nasiib lahayn, waligiis dib loo soo celin marka la gooyo. Kuwaasi waa saddex milkiile oo kala duwan, gacan ku tafatirka labada hore waxay ama waxba ma qabato ama waxay socotaa ilaa dhacdada xigta ee shabakadda.

resolvectl status waa aragtida sheegta runta: adeegyada DNS xidhiidh kasta, domain-yada marinka, iyo haddii xidhiidhka tunnel-ku weli jiro. resolvectl query example.com wuu sii socdaa oo wuxuu muujinayaa interface-kee jawaabay. Isticmaal labadaba ka hor inta aadan taaban fayl, oo xusuuso in biraawsar leh DNS ammaan u gaar ah uu dhammaan tan iska indhatiro.

Soo hel milkiilaha ka hor inta aadan wax tafatirin

Caadi ahaan saddex qaybood ayaa u tartamaya isla dejinta: systemd-resolved, NetworkManager iyo waxa macmiilka VPN-ku rakibay. Marka hore aqoonsado kan nool:

systemctl is-active systemd-resolved
nmcli connection show --active
ps aux | grep -E "openvpn|wg-quick|vpn"

Haddii resolved firfircoon yahay oo isku xidhka symbolic uu tilmaamayo stub-kiisa, faylka caalamiga ah waa wax soo saar la abuuray oo tafatirkaagu waa muuqaal uun. Haddii NetworkManager leeyahay xidhiidhka, adeegyadu waxay ka tirsan yihiin borofaylka xidhiidhka, sidaas darteed hagaajintu waa beddelka sifo nmcli oo ma aha tafatir fayl. Haddii daemon iibkuwadeed socdo, kaliya waddadiisa soo celin ayaa ka badbaadaysa xidhiidhka xiga.

Nadiifi xaaladda xidhiidhka uu macmiilku ka tagay

Macmiil la dilay ma samayn karo jillaabkiisa nadiifinta. SIGKILL gabi ahaan lama qaban karo, halka SIGINT iyo SIGTERM la qaban karo, sidaas darteed tunnel «si fudud u istaagay» ka dib dil qasab ah wuxuu inta badan meesha ku reebaa diiwaangelinta interface-ka iyo gelitaanka xallinta labadaba. Soo hel PID gaar ah oo calaamadda u dir isaga kaliya:

ps aux | grep -E "openvpn|wg-quick"
sudo kill <pid>
resolvectl revert tun0

Ha u fidin gacanta pkill -f vpn ama killall vpn ka hor inta aadan akhrin liiska buuxa ee iswaafaqa. -f wuxuu la waafaqaa khadka amarka oo dhan, sidaas darteed wuxuu dhamayn karaa script duuban, fadhi tafatire ama geedi socod aan xidhiidh la lahayn oo waddadiisu ay ku jirto xariggaas. Dhamaynta geedi socodka khaldan badhtamaha shaqada waa sida dhibaatada xallintu u noqoto fayl lumay.

resolvectl revert wuxuu dib u dejiyaa habaynta DNS ee waqtiga socodka xidhiidhkaas, taas oo ka cidhiidhsan dib u bilaabista xallinta iyo aad uga cidhiidhsan tafatirka faylka caalamiga ah. Haddii xidhiidhka tunnel-ku gabi ahaan u tagay, systemctl restart NetworkManager wuxuu dib u dhisaa xaaladda xidhiidhka waana tallaabada ay dunta isha si joogto ah ugu noqdaan. Ka feejignow maareeyaha adeegga leh Restart=always, waayo wuxuu dib u dhigi karaa macmiil la dilay iyo dejintiisa DNS si toos ah.

Jihada kale: DNS la riixay oo aan waligiis iman

Muuqaalka muraayadda ee gelitaanka duugga ah waa tunnel aan lahayn wax xallin ah oo la isticmaali karo. Xulashada DNS ee borofaylka waa codsi; qaybta maamusha xidhiidhka waa inay u dhiibto xallinta. Haddii log-ku muujinayo in adeegyaha la helay laakiin xidhiidhka tunnel-ku aanu qaadanin wax dejineed DNS ah, waxa maqan waa isdhexgalka, ma aha adeegyaha.

Tijaabi gudbinta adigoo gacanta ku sameynaya, taas oo kala soocda «adeegyahu waa khalad» iyo «qofna ma dhaqan galin»:

resolvectl dns tun0 10.10.10.10
resolvectl domain tun0 ~.

Domain-ka marinka qabta wax walba wuxuu magac kasta u diraa xidhiidhkaas, taas oo ah waxa macmiil tunnel buuxa uu rabo iyo waxa DNS qaybsan aanu isticmaalin. Dejintan waxay luntayaan xidhiidhka xiga. Si aad uga dhigto kuwo joogto ah NetworkManager, dami DNS otomaatig ah, dhig adeegyaha xidhiidhka oo ku dar domain-ka:

nmcli connection modify office ipv4.ignore-auto-dns yes
nmcli connection modify office ipv4.dns 10.10.10.10
nmcli connection modify office ipv4.dns-search "~."

Tunnel shirkadeed oo kaliya magacyada gudaha ka jawaabaya, liis ku qor aagaggaas iyadoo tilde bilow ah halkii ay wax walba qaban lahaayeen, si magacyada dadweynaha ay u sii wadaan isticmaalka xallinta maxalliga ah.

Xallinno ku meel gaar ah oo noqda carqaladda xigta

Koobiga resolv.conf ka hor xidhiidhka iyo soo celinta ka dib waa sadar sharci ah oo ku jira runbook, waana xallin ku meel gaar ah ee ma aha dayactir. Waxay ku guuldareystaa isla marka ay muhiim tahay, sababtoo ah burbur ama dib u bilow qasab ah ayaa dhaafi doona soo celinta. U qor sida xallin ku meel gaar ah si qofka xiga aanu uga dhisin.

Dami systemd-resolved iyo adeegyada dadweynaha oo si adag loo qoray waa tallaabada kale ee caanka ah. Waxay ka dhigtaa xidhiidhka iyo goynta mid la saadaalin karo oo waxay ka saartaa DNS xidhiidh kasta shabakad kasta oo kale, taas oo jebisa DNS qaybsan ee magacyada gudaha oo waxay burisaa ujeedada tunnel loogu talagalay inuu weydiimaha gudaha ku hayo. Rakibidda resolvconf iyo adeegyada dadweynaha oo la xidho waxay ku kacdaa isla kharashka lakab dheeraad ah. U qaado mid kasta oo ka mid ah sida ogaal: haddii ay soo celiso baaritaanka, waxaad baratay in isdhexgalka xallintu yahay dembiilaha, ma aha in adeegyada dadweynaha ay sax yihiin.

Dayactirka waara waa hal milkiile lakab kasta: go'aanso qaybta leh DNS-ka xidhiidhka tunnel-ka iyo tan leh caadiga caalamiga ah, qor taas oo ka saar kuwa kale waddada. Kadib ka dib goynta hubi magac kaliya VPN-ku xalliyo. Haddii magac gaar ah wali jawaabo, diiwaangelinta lama saarin; haddii waxba aan la xallin, faylku wuxuu tilmaamayaa adeegye aan hadda jirin. Labadaba waxaa lagu arkaa resolvectl ka hor inta aadan furin biraawsar.

Maqaallo la xiriira