టన్నెల్ పైకి వస్తుంది, సర్టిఫికెట్ ధృవీకరించబడుతుంది, ఆ తర్వాత DNS సర్వర్ లేదా డొమైన్‌లను సెట్ చేయలేకపోయిందని ఒక సంభాషణ చెబుతుంది. Linux లో ఆ సంభాషణ సాధారణంగా గేట్‌వే గురించి కాదు: క్లయింట్ పేర్ల కాన్ఫిగరేషన్‌ను D-Bus ద్వారా systemd-resolved కు అప్పగిస్తుంది, తిరస్కరించబడిన అప్పగింత ఇంటర్‌ఫేస్‌ను పైకే ఉంచుతుంది, రిజల్యూషన్ ఇంకా పాత లింక్ వైపే చూపుతున్నప్పుడు. అదే ల్యాప్‌టాప్ ప్రొఫైల్‌కు సఫిక్స్ రాకముందే పేర్లను బాగా రిజాల్వ్ చేస్తుంది, అదే అనుసరించదగిన ఆధారం. సంభాషణ కనిపించిన క్షణంలో టన్నెల్‌లో ఏమీ మారలేదు.

సఫిక్స్ లేకుండా క్లయింట్ నేమ్ సర్వర్‌లను మాత్రమే నెట్టుతుంది. శోధన డొమైన్‌ను జోడించండి, రెండవ కాల్ దానితో చేరుతుంది, SetLinkDomains, దాని స్వంత అధికార తనిఖీతో, అందుకే అదే ప్రొఫైల్ Windows లో పనిచేసి ఇక్కడ విఫలమవుతుంది. గేట్‌వే రెండు సందర్భాల్లోనూ అదే సెట్టింగ్‌లను నెట్టుతుంది, వాటిని తిరస్కరించే భాగం స్థానికం.

systemd-resolved కే రిజాల్వర్ అని నిర్ధారించండి

ఈ క్లయింట్ systemd-resolved తో మాత్రమే మాట్లాడుతుంది, మరెవరితోనూ కాదు. Arch మరియు మరికొన్ని పంపిణీలు దీన్ని నిలిపివేసిన స్థితిలో అందిస్తాయి, మరియు /etc/resolv.conf పూర్తిగా మరో రిజాల్వర్‌కు చెంది ఉండవచ్చు, కాబట్టి అనుమతులు చూసే ముందు యజమానిని నిర్ణయించండి.

మూడు ఆదేశాలు దీన్ని స్పష్టం చేస్తాయి:

systemctl status systemd-resolved
ls -l /etc/resolv.conf
resolvectl status

మీరు వెతుకుతున్నది చురుకైన సేవ, /run/systemd/resolve/stub-resolv.conf వైపు చూపే సింబాలిక్ లింక్, మరియు resolvectl లో ప్రతి లింక్‌కు DNS. యాజమాన్యం NetworkManager వద్ద ఉన్నప్పుడు, క్లయింట్‌తో పోరాడటం బదులు దాన్ని resolved కు తరలించండి; క్రింది drop-in రెండు కీలను సెట్ చేస్తుంది:

[main]
dns=systemd-resolved
systemd-resolved=true

ఆ ఫైల్ ఉన్న వెంటనే NetworkManager ను ఒకసారి పునఃప్రారంభించండి. నిష్క్రియ రిజాల్వర్ మరియు దాని D-Bus పేరును పిలుస్తూనే ఉన్న క్లయింట్ కలిసి రెండింటిలో ఎవరినీ పేర్కొనని లోపాన్ని ఇస్తాయి.

విఫలమయ్యే D-Bus కాల్‌ను గమనించండి

ఈ దశ సంభాషణను నిర్దిష్ట సమాధానంగా మారుస్తుంది. ఒక టెర్మినల్‌లో రిజాల్వర్ ఇంటర్‌ఫేస్ మరియు మరొకదానిలో జర్నల్ గమనించి, తర్వాత మళ్లీ కనెక్ట్ అవ్వండి:

sudo dbus-monitor --system "interface='org.freedesktop.resolve1.Manager'"
journalctl -fu systemd-resolved

మూడు కాల్‌లు కనిపించాలి: SetLinkDNS, SetLinkDomains మరియు SetLinkDefaultRoute. లోపపు సమాధానంగా తిరిగి వచ్చేదే సరిచేయవలసినది. ఆ సమాధానం సాధారణంగా దాని కారణాన్ని చెబుతుంది, ఉదాహరణకు org.freedesktop.DBus.Error.AccessDenied కు వ్యతిరేకంగా SetLinkDomains. ఏ కాల్ అని గుర్తించండి, ఎందుకంటే తదుపరి భాగం ఆ కాల్‌ను అనుమతించడం గురించి.

క్లయింట్‌కు అవసరమైన polkit చర్యలను ఇవ్వండి

నియమం రాసే ముందు విధానాన్ని చదవండి. సేవగా నడిచే క్లయింట్ సంభాషణాత్మక ప్రాంప్ట్‌కు సమాధానం ఇవ్వలేదు, కాబట్టి అంతర్లీన auth_admin_keep ఒక మూసిన మార్గం.

pkaction --verbose --action-id org.freedesktop.resolve1.set-domains
pkaction --action-id org.freedesktop.resolve1.set-dns-servers --verbose

సమాధానం auth_admin_keep అయితే, క్లయింట్‌కు స్పష్టమైన నియమం కావాలి. క్రింది స్నిపెట్ VPN క్లయింట్ కనెక్షన్ సమయంలో ఉపయోగించే నాలుగు resolve1 చర్యలను అనుమతించి మిగతావన్నీ 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;
});

దాన్ని /etc/polkit-1/rules.d/ లో తర్వాత గుర్తించగల ఫైల్‌గా ఉంచండి, ఉదాహరణకు 50-azurevpn.rules, మరియు లాగ్ అవుట్ అయి మళ్లీ లాగిన్ అయ్యే ముందు స్నిపెట్‌లోని సమూహ పేరును మీ పేరుతో మార్చండి. దీన్ని సన్నగా ఉంచండి, ఎందుకంటే ప్రతి ఖాతాకు ప్రతి resolve1 చర్యను అనుమతించడం ఈ క్లయింట్‌కు అవసరమైనదానికంటే విస్తృతం మరియు తర్వాత ఆడిట్ చేయడం చాలా కష్టం.

polkit సవరించే ముందు ప్రొఫైల్ XML తనిఖీ చేయండి

చేతితో సవరించిన ప్రొఫైల్ మాట లేకుండా పట్టించుకోకపోవచ్చు. Microsoft చదునైన అమరికను డాక్యుమెంట్ చేస్తుంది అందులో dnsserver నమోదులు నేరుగా dnsservers లోపల ఉంటాయి, సఫిక్స్‌లు dnssuffixes లోపల. ప్రతి చిరునామా చుట్టూ అదనపు ర్యాపర్ మూలకం ఆ ఆకారం కాదు, మరియు క్లయింట్ నిశ్శబ్దంగా గేట్‌వే నెట్టే దాని వైపు తిరిగి వెళ్తుంది.

polkit ను తాకే ముందు తొలగింపు పరీక్ష చేయండి. సఫిక్స్ బ్లాక్‌ను తీసివేసి, మళ్లీ కనెక్ట్ అయి సంభాషణ మారుతుందో లేదో చూడండి. మారితే, విఫలమైన కాల్ డొమైన్ అప్పగింత, పరిష్కారం అధికారం, మరో XML సవరణ కాదు.

టన్నెల్ లింక్‌పై డొమైన్‌ను ధృవీకరించండి

మళ్లీ కనెక్ట్ అయి resolvectl status ను మళ్లీ చదవండి, టన్నెల్ లింక్ నేమ్ సర్వర్ మరియు శోధన డొమైన్‌ను కలిసి మోస్తుందో లేదో తనిఖీ చేయండి. పబ్లిక్ పేరుకు బదులు చిన్న ప్రైవేట్ పేరును రిజాల్వ్ చేయండి. పేరు రిజాల్వ్ అయినా దాని వెనుక సేవ సమాధానం ఇవ్వకపోతే, DNS అప్పగింత పనిచేసింది మరియు మిగిలిన సమస్య రూటింగ్.

టికెట్‌లో రిజాల్వర్ యజమాని, విఫలమైన D-Bus కాల్, నియమ ఫైల్ మరియు ప్రొఫైల్ సంస్కరణ రాయండి. ఆ నాలుగు పంక్తులు తదుపరి Linux ల్యాప్‌టాప్‌ను పునఃపరిశీలనకు బదులు చిన్న సరిచేయడంగా మారుస్తాయి.

సంబంధిత వ్యాసాలు