Azure VPN Client ar Linux: níorbh fhéidir feinmhíreanna DNS a shocrú
Tagann an tollán aníos agus ansin ní féidir le cliant Linux feinmhíreanna DNS a shocrú. Seiceáil systemd-resolved, breathnaigh ar an nglao D-Bus agus deisigh an gníomh polkit.
Tagann an tollán aníos, déantar an teastas a bhailíochtú, agus ansin deir dialóg nach bhféadfaí an freastalaí DNS nó na feinmhíreanna a shocrú. Ar Linux ní bhíonn an dialóg sin faoin ngaitéive go hiondúil: tugann an cliant an chumraíocht ainmneacha do systemd-resolved thar D-Bus, agus fágann aistriú diúltaithe an comhéadan in airde agus an réiteach fós ag díriú ar an seanchónasc. Réitíonn an ríomhaire glúine céanna ainmneacha go maith sula bhfaigheann an próifíl iarmhír, agus sin an leid ar fiú leanúint di. Níor athraigh aon rud faoin tollán an nóiméad a tháinig an dialóg chun solais.
Gan iarmhír ní bhrúnn an cliant ach freastalaithe ainmneacha. Cuir fearann cuardaigh leis agus tagann dara glao isteach leis, SetLinkDomains, lena sheiceáil údaraithe féin, agus sin é an fáth a n-oibríonn an phróifíl chéanna ar Windows agus a dteipeann sí anseo. Brúnn an gaitéive na socruithe céanna sa dá chás, agus tá an chomhpháirt a dhiúltaíonn iad áitiúil.
Deimhnigh gurb é systemd-resolved an réiteoir
Ní labhraíonn an cliant seo ach le systemd-resolved agus le haon duine eile. Seachadann Arch agus roinnt dáileadh eile é múchta, agus is féidir le /etc/resolv.conf a bheith ag réiteoir iomlán eile, mar sin socraigh an t-úinéir sula bhféachann tú ar cheadanna.
Réitíonn trí ordú é:
systemctl status systemd-resolved
ls -l /etc/resolv.conf
resolvectl status
Tá tú ag lorg seirbhíse gníomhaí, nasc siombalach atá dírithe ar /run/systemd/resolve/stub-resolv.conf, agus DNS in aghaidh an naisc i resolvectl. Nuair a bhíonn an úinéireacht ag NetworkManager ina ionad, aistrigh chuig resolved é seachas a bheith ag troid leis an gcliant; socraíonn an drop-in thíos an dá eochair:
[main]
dns=systemd-resolved
systemd-resolved=true
Atosaigh NetworkManager a luaithe a bhíonn an comhad sin ann. Cruthaíonn réiteoir neamhghníomhach in éineacht le cliant a leanann ag glaoch ar a ainm D-Bus earráid nach luann ceachtar acu.
Breathnaigh ar an nglao D-Bus a theipeann
Casann an chéim seo an dialóg ina freagra sonrach. Breathnaigh ar chomhéadan an réiteora i dteirminéal amháin agus ar an iris i gceann eile, ansin athnasc:
sudo dbus-monitor --system "interface='org.freedesktop.resolve1.Manager'"
journalctl -fu systemd-resolved
Ba cheart trí ghlao a bheith le feiceáil: SetLinkDNS, SetLinkDomains agus SetLinkDefaultRoute. Is é an ceann a fhilleann mar fhreagra earráide an ceann atá le deisiú. De ghnáth luann an freagra sin a chúis, mar shampla org.freedesktop.DBus.Error.AccessDenied i gcoinne SetLinkDomains. Tabhair faoi deara cén glao a bhí ann, mar baineann an chéad chuid eile le ligean don ghlao sin dul tríd.
Tabhair na gníomhartha polkit a theastaíonn ón gcliant
Léigh an bheartas sula scríobhann tú riail. Ní féidir le cliant a ritheann mar sheirbhís freagra a thabhairt ar leid idirghníomhach, mar sin tá auth_admin_keep intuigthe ina bhealach caoch.
pkaction --verbose --action-id org.freedesktop.resolve1.set-domains
pkaction --action-id org.freedesktop.resolve1.set-dns-servers --verbose
Má tá an freagra auth_admin_keep, teastaíonn riail shoiléir ón gcliant. Ligeann an sliocht thíos do na ceithre ghníomh resolve1 a úsáideann cliant VPN le linn naisc agus fágann gach rud eile ag polkit.Result.NOT_HANDLED:
polkit.addRule(function(action, subject) {
var allowed = [
"org.freedesktop.resolve1.set-dns-servers",
"org.freedesktop.resolve1.set-domains",
"org.freedesktop.resolve1.set-default-route",
"org.freedesktop.resolve1.revert"
];
if (allowed.indexOf(action.id) !== -1 &&
subject.isInGroup("wheel")) {
return polkit.Result.YES;
}
return polkit.Result.NOT_HANDLED;
});
Cuir isteach i /etc/polkit-1/rules.d/ é mar chomhad a aithneoidh tú níos déanaí, mar shampla 50-azurevpn.rules, agus cuir d'ainm féin in ionad ainm an ghrúpa sa sliocht sula logálann tú amach agus isteach arís. Coinnigh cúng é, mar tá ligean do gach gníomh resolve1 do gach cuntas níos leithne ná mar a theastaíonn ón gcliant seo agus i bhfad níos deacra le hiniúchadh ina dhiaidh.
Seiceáil XML na próifíle sula n-athraíonn tú polkit
Is féidir neamhaird a dhéanamh de phróifíl a athraíodh de láimh gan focal. Déanann Microsoft leagan amach cothrom a dhoiciméadú ina bhfuil iontrálacha dnsserver go díreach laistigh de dnsservers, agus iarmhíreanna laistigh de dnssuffixes. Ní hé an fhoirm sin eilimint chumhdaigh bhreise timpeall gach seoladh, agus titeann an cliant go ciúin ar ais chuig an méid a bhrúnn an gaitéive.
Déan an tástáil bhainte sula mbaineann tú le polkit. Bain an bloc iarmhíre, athnasc, agus féach an n-athraíonn an dialóg. Má athraíonn, ba é an glao a theip an aistriú fearainn, agus is údarú é an ceartú seachas eagarthóireacht XML eile.
Fíoraigh an fearann ar nasc an tolláin
Athnasc agus léigh resolvectl status arís, ag seiceáil go n-iompraíonn nasc an tolláin an freastalaí ainmneacha agus an fearann cuardaigh le chéile. Réitigh ainm príobháideach gearr seachas ceann poiblí. Nuair a réitítear an t-ainm ach nach dtagann an tseirbhís taobh thiar de, d'oibrigh aistriú DNS agus is ródú an fhadhb atá fágtha.
Scríobh úinéir an réiteora, an glao D-Bus a theip, an comhad rialach agus leagan na próifíle sa ticéad. Casann na ceithre líne sin an chéad ríomhaire glúine Linux eile ina cheartú gearr seachas ina imscrúdú arís.