Þú settir lénið á leyfislistann, fyrirspurnin nær til appsins þíns, samsvararinn skilar leyft, og síðan hleðst samt aldrei. Á þeim tímapunkti byrja flestir að endurskrifa samsarann og bæta við jokerstafasamanburði. Samkvæmt minni reynslu er samsarinn yfirleitt réttur, og bilunin liggur einu lagi neðar: í DNS-svarinu sem þú bjóst til, í leiðinni sem þú settir upp, eða í sokknum sem þú notaðir til að senda fyrirspurnina áfram. Listinn er auðveldi hlutinn; pakkaleiðin er þar sem leyfislistar brotna.

Samsvararinn er sjaldan sökudólgurinn

Það fyrsta sem þarf að aðskilja er blokkað frá brotnu. Blokkað nafn ætti að mistakast hratt og sýnilega, því vafrinn fær svar um að nafnið sé ekki til og stoppar. Brotið nafn hangir, reynir aftur yfir IPv6, fellur yfir á annað flutningslag og skilur þig eftir með snúningsmerki. Ef þú sérð snúningsmerki svarar leyfislistinn þinn líklega einhverju sem biðlarinn getur ekkert gert við.

Tómt A-færsla er klassíska mistökin. Að skila NOERROR með núll svörum lítur út eins og gilt svar, svo stub-leysandinn samþykkir það, vafrinn reynir aftur, prófar AAAA, prófar annan leysanda og gefst upp miklu síðar. Svar kóði 3, NXDOMAIN, með spurningahlutanum endurteknum og færsluauðkenninu afrituðu, endar samtalinu samstundis. Notaðu það fyrir hvert nafn sem þú hafnar viljandi.

IPv6 á skilið sömu ákvörðun frekar en sjálfgefið gildi. Ef þú svarar NXDOMAIN fyrir A og hleypt AAAA í gegn getur biðlarinn náð blokkaða nafninu yfir IPv6 og síinn lekur. Sumar útfærslur svara blokkuðum AAAA-fyrirspurnum með loopback-tölu svo tengingin mistakist samstundis í stað þess að falla yfir á varaleið. Veldu eina stefnu, beittu henni á báðar gerðir færslna og skráðu báðar.

Leið sem grípur allt á allt

Hönnun sem byggir eingöngu á DNS bætir aldrei við addRoute("0.0.0.0", 0), svo aðeins fyrirspurnir fara inn í TUN-viðmótið og allt annað heldur áfram að nota undirliggjandi net. Það er örugga formið, og það útskýrir líka hvers vegna sumir leyfislistar virðast virka á Wi-Fi og mistakast á farsímanetinu.

Á því augnabliki sem sjálfgefin leið er til, er hvert flæði þitt. TCP-pakki sem kemur að viðmótinu og er hvorki sendur áfram né svarað situr í biðröð þar til biðlarinn fær tímann útskrifaðan, og það er engin villa til að skrá því ekkert fór úrskeiðis. Ég sá einhvern eyða síðdegis í brotinn leyfislista sem var í raun vantar framsendingaraðila fyrir port 443. Skráðu samskiptareglur og áfangastað hvers pakka sem þú ákveður að sleppa.

Sokkur leysandans verður að fara út úr göngunni

Framsending er þar sem næsta gildra liggur. Leysendur símafyrirtækja búa oft á einkatölu sem göngin ná ekki til, svo fyrirspurnin sem þú sendir áfram fer ekkert og appið tilkynnir tímanút í lestri. Sendu samþykktar fyrirspurnir til leysanda sem þú veist að er aðgengilegur, og gefðu þann sokk fyrst til VpnService.protect(). Óvarið sokkur sendir fyrirspurnina aftur inn í þín eigin göng, þar sem hún nær aftur til appsins og hringsnýst þar til tímanúturinn kviknar.

Bilunin lítur nákvæmlega eins út og netrof, og þess vegna lifir hún svo lengi í villuskýrslum. Haltu teljurum fyrir sendar fyrirspurnir og móttekin svör: ef fyrsta talan hækkar og önnur stendur í núlli ertu að skoða sokkinn, ekki listann.

Stærð og prófsummur mistakast án skilaboða

Hljóðlát slepp koma líka frá stærð. DNS-svar með stóru svarsetti, eða TCP-handaband með ríflegum valkostum, getur farið yfir leiðar-MTU sem þú stilltir aldrei skýrt; brotið hverfur ofar og biðlarinn annaðhvort reynir aftur minni eða hættir að reyna. Að stilla MTU viðmótsins á 1280 er íhaldssamt val sem stenst flestar farsímaleiðir, og að vera skýr er betra en að erfa sjálfgefið gildi sem enginn mældi.

Ef þú byggir pakkana sjálfur er prófsumman hinn hljóðláti morðingi. UDP-prófsumma reiknuð yfir gervihaus sem sleppir UDP-lengdinni eða samskiptareglusviðinu framleiðir pakka sem lítur vel út hjá þér og er hent af viðtakandanum án hvers kyns merkja. Berðu gervihausinn saman við forskriftina svæði fyrir svæði, og prentaðu reiknuðu prófsummuna fyrir eitt þekkt flæði meðan þú kembir.

Hvað VpnService gerir ekki fyrir þig

Tvö mörk er vert að þekkja áður en þú hannar í kringum þau. Ekkert venjulegt app getur sett upp kerfisvítan proxy eða PAC-skrá utan Wi-Fi, og sá hluti hefur ekki breyst. Leiðin fyrir hvert app hefur breyst: fyrir API 29 gat VpnService.Builder alls ekki borið proxy, og frá API 29 gefur setHttpProxy(ProxyInfo.buildPacProxy(uri)) vettvangnum PAC-skrá til að meta fyrir VPN-netið. Metið reglur í eigin kóða þegar þú miðar á eldri API eða þegar PAC-líkanið getur ekki tjáð regluna. UDP er ekki heldur ókeypis: vafrar senda aðeins TCP í gegnum SOCKS-proxy, og flestir SOCKS5-biðlarar útfæra aldrei UDP ASSOCIATE, svo hönnun sem byggir á proxy sleppir eða lekur UDP á meðan TCP lítur heilbrigt út.

Þetta annað mark er ástæðan fyrir því að samskiptareglur sem byggja á UDP geta virkað á venjulegu neti og mistakast á því augnabliki sem VPN-ið þitt tengist. Ef gert er ráð fyrir að göngin beri UDP verður framsendingaraðilinn að útfæra framsendingarleiðina fyrir það, ekki bara TCP-leiðina með annarri gerð sokks.

Athugaðu í þessari röð

Farðu í gegnum listann í röð og stoppaðu á fyrsta stiginu sem mistekst, því hver síðari athugun er hávaði þar til sú fyrri stendur.

  1. Teldu upp uppsettar leiðir og staðfestu hvort pakkar sem ekki eru DNS fara yfirhöfuð inn í TUN-viðmótið.
  2. Skráðu fyrirspurnarheitið, ákvörðunina og svarkóðann fyrir eitt blokkað og eitt samþykkt nafn.
  3. Staðfestu að sokkur leysandans sé varinn og að valinn leysandi svari innan frá göngunum.
  4. Staðfestu MTU viðmótsins og prófsummu eins svars sem þú byggðir sjálfur.
  5. Endurtaktu sömu síðu á Wi-Fi og farsímaneti, því leysendur símafyrirtækja og leiðar-MTU eru mismunandi.

Ef allar fimm standast og síðan hangir samt er næsti grunaður framsendingaraðilinn sjálfur: berðu saman gripna beiðni og gripið svar og leitaðu að vantandi bætatölu eða hálflokuðum sokk. VpnService.Builder tilvísunin fjallar um samninga um leið, DNS og MTU, og protect() er aðskilið VpnService-kall en ekki builder-valkostur; tengt viðmót þýðir aðeins að fyrsti samningurinn er uppfylltur.

Tengdir greinar