Hafnar OpenVPN fyrstu línunni? Skráin er líklega UTF-16
Villa í fyrstu línu með undarlegum stöfum þýðir venjulega að sniðið hafi verið vistað sem UTF-16. Lestu fyrstu bætin og breyttu skránni svo rétt.
Villan bendir á fyrstu línu .ovpn-skrár og vitnar í eitthvað sem lítur út eins og ruglaða stafi þar sem client ætti að standa. Skráin opnast fín í ritlinum þínum, fyrsta línan les client, og fyrirmælin eru alveg venjuleg. Báðar athuganirnar eru sannar, því ritillinn afkóðar bætin og biðlarinn gerir það ekki. Það sem þú sérð er næstum alltaf kóðunarvandamál, ekki setningafræðivandamál.
Goðsögnin: ritillinn sýnir þér skrána
Textaritill afkóðar bæti í stafi með kóðun sem hann annaðhvort greinir eða giskar á. Þegar hann giskar á UTF-16 lítur skráin fullkomlega út á skjánum á meðan bætin undir eru pör, með núllbæti á eftir hverjum latneskum staf. OpenVPN les þessi bæti sem stafi, og misræmið kemur fram við fyrstu fyrirmælin sem það reynir að þátta.
Þannig að sýnilega línan og afhenta línan eru tvennt ólíkt. Að eyða undarlegu stöfunum sem þú sérð er breyting á birtingunni, ekki kóðuninni, og næsta þáttun mistekst af sömu ástæðu með örlítið öðrum skilaboðum. Þess vegna leiðir eltingarleikurinn við táknið í villunni aldrei neitt. Bætin eru röng við upptökuna, og hver lesandi á eftir giskar á sama brotna röð.
Það er þess virði að þekkja hið sérstaka form mistakans, því það er greiningarvert á sinn hátt. Tákn alveg í byrjun skrárinnar, í sniði sem hefur annars virkað á öðrum vélum, er spurning um bætaröð frekar en orðaforða.
Hvað fyrstu bætin segja í raun
Lestu bætin í stað stafanna. Tvær litlar skipanir leysa þetta á sekúndum, og hvorug krefst þess að skráin sé opnuð í forriti sem gæti breytt henni:
file client.ovpn
head -c 24 client.ovpn | od -An -tx1
Mynstrið sem þú leitar að er par af fremstu bætum sem fylgt er eftir af texta þar sem hvert annað bæti er núll. FF FE merkir UTF-16 little-endian, FE FF merkir big-endian, og EF BB BF merkir UTF-8 með bætaröðunarmerki. Venjuleg UTF-8-skrá án merkis byrjar beint á bæti fyrsta stafsins.
Núllbætin milli stafanna eru vísbendingin. Í UTF-16 little-endian tekur orðið client tólf bæti í stað sex, því að hver ASCII-stafur er fylgt eftir af núlli. Þá byggingu getur skjár ritils ekki sýnt þér, og hana getur eyðing á tveimur bætum ekki fjarlægt.
Hér er mikilvæg blæbrigði: lestrari OpenVPN-stillinga sleppir vissulega UTF-8 bætaröðunarmerki í byrjun skrár, eins og stillingalestrinn 2.6 sýnir. Sú umburðarlyndi á sérstaklega við um það merki, og hún gerir ekkert fyrir UTF-16-skrá þar sem stafirnir eru fylltir núllum. Að meðhöndla merkin tvö sem sama vandamálið er seinni helmingur goðsagnarinnar.
Umbreyting er vista sem, ekki eyða
Geymdu ósnortið eintak af frumriti rekstraraðilans áður en þú gerir nokkuð, og vinnuðu á aðskilinni skrá. Snið getur innihaldið einkalykil eða reikningsefni, svo eintakið er bæði bakleiðin þín og tilvísunin.
Framkvæmdu síðan raunverulega kóðunarumbreytingu, annaðhvort í gegnum skýrlega kóðunavalmynd ritilsins eða með breytir sem tilgreinir inntaks- og úttakskóðun sína:
iconv -f UTF-16 -t UTF-8 client.ovpn > client-utf8.ovpn
file client-utf8.ovpn
Staðfestu niðurstöðuna í stað þess að treysta útgöngustöðu skipunarinnar. Umbreytingin ætti að varðveita hver fyrirmæli, og hún verður að varðveita hvert innfellt vottorðs- eða lyklablokk bæti fyrir bæti innan merkja sinna. Að endurvekja PEM-gögn, breyta línuendingum inni í blokk eða endursníða sniðið meðan á umbreytingunni stendur skapar nýtt vandamál á meðan það gamla er lagað.
Beindu biðlinum eða þjónustunni að umbreyttu skránni og skoðaðu fyrstu villuna sem hún tilkynnir. Ef ruglaða táknið er horfið er kóðunarvinnunni lokið, og hvað sem mistekst á eftir er önnur spurning.
Hvað löguð kóðun lagar ekki
Kóðun ræður því hvernig texti er lesinn; hún segir ekkert um hvort valkostirnir séu gildir fyrir biðlarann fyrir framan þig. Snið sem flutt var út fyrir aðra útfærslu getur þáttast hreint og samt verið hafnað vegna valkosts sem keyrandi útgáfan styður ekki, eða vegna fyrirmæla þar sem viðfangið þýðir eitthvað annað í þeim biðlara.
Þessar seinna villur eiga skilið eigin rannsókn: nákvæma stafsetningu, setningafræði viðfangsins og útgáfuna sem tekur við því. Ekki líta á farsæla þáttun sem farsælt snið.
Haltu rannsókninni staðbundinni á meðan þú vinnur að þessu. Opinberir netbreytir og límd hex-útgögn eru slæmur staður fyrir skrá sem gæti innihaldið einkalykil, því kóðunarvandamálið er auðvelt að laga og lektur lykill ekki.