Hitilafu inaelekea mstari wa kwanza wa faili ya .ovpn na kunukuu kitu kinachofanana na herufi zilizochanganyika mahali ambapo client inapaswa kuwa. Faili hufunguka vizuri katika kihariri chako, mstari wa kwanza unasoma client, na maagizo ni ya kawaida kabisa. Maangalio yote mawili ni kweli, kwa sababu kihariri husimbua baiti na mteja hana. Unachokiona karibu kila mara ni tatizo la usimbaji, si tatizo la sintaksia.

Hadithi: kihariri hukuonyesha faili

Kihariri cha maandishi husimbua baiti kuwa herufi kwa usimbaji ambao ama huugundua au huukisia. Kinapokisia UTF-16, faili huonekana vizuri kabisa kwenye skrini ilhali baiti zilizo chini ni jozi, na baiti sifuri huja baada ya kila herufi ya Kilatini. OpenVPN husoma baiti hizo kama herufi, na kutokulingana huonekana kwenye maagizo ya kwanza ambayo hujaribu kuyachambua.

Kwa hiyo mstari unaoonekana na mstari unaowasilishwa ni vitu viwili tofauti. Kufuta herufi za ajabu unazoziona ni mabadiliko katika uonyeshaji, si katika usimbaji, na uchambuzi unaofuata unashindikana kwa sababu hiyo hiyo kwa ujumbe ulio tofauti kidogo. Ndiyo sababu kufuata alama iliyo kwenye hitilafu hakuishii mahali popote. Baiti ni mbovu kwenye chanzo, na kila msomaji anayefuata hukisia mfuatano huo huo uliovunjika.

Umbo mahususi la kushindikana linafaa kutambulika, kwa sababu ni la utambuzi kwa namna fulani. Alama iliyo mwanzoni kabisa wa faili, katika wasifu ambao kwa upande mwingine umefanya kazi kwenye mashine nyingine, ni suala la mpangilio wa baiti na si la msamiati.

Baiti za mwanzo zinasema nini hasa

Soma baiti badala ya herufi. Amri mbili ndogo huamua hilo kwa sekunde, na hakuna inayohitaji kufungua faili kwenye programu inayoweza kuibadilisha:

file client.ovpn
head -c 24 client.ovpn | od -An -tx1

Mchoro unaoutafuta ni jozi ya baiti za mwanzo ikifuatiwa na maandishi ambayo kila baiti ya pili ni sifuri. FF FE huashiria UTF-16 little-endian, FE FF huashiria big-endian, na EF BB BF huashiria UTF-8 yenye alama ya mpangilio wa baiti. Faili ya kawaida ya UTF-8 isiyo na alama huanza moja kwa moja na baiti ya herufi ya kwanza.

Baiti sifuri kati ya herufi ndiyo kidokezo. Katika UTF-16 little-endian neno client huchukua baiti kumi na mbili badala ya sita, kwa sababu kila herufi ya ASCII hufuatiwa na sifuri. Muundo huo uonyeshaji wa kihariri hauwezi kukuonyesha, na kufuta baiti mbili hakuwezi kuuondoa.

Hapa kuna hila muhimu: msomaji wa usanidi wa OpenVPN kweli huruka alama ya mpangilio wa baiti ya UTF-8 mwanzoni mwa faili, kama msomaji wa usanidi 2.6 unavyoonyesha. Uvumilivu huo ni mahususi kwa alama hiyo, na haufanyi chochote kwa faili ya UTF-16 ambayo herufi zake zimejazwa sifuri. Kuzichukua alama hizo mbili kama tatizo moja ni nusu ya pili ya hadithi.

Kubadilisha ni kuhifadhi kama, si kufuta

Hifadhi nakala isiyoguswa ya asili ya mwendeshaji kabla ya kufanya chochote, na fanya kazi kwenye faili tofauti. Wasifu unaweza kuwa na ufunguo wa faragha au nyenzo za akaunti, kwa hiyo nakala ni njia yako ya kurudi nyuma na rejea yako.

Kisha fanya ubadilishaji halisi wa usimbaji, ama kupitia menyu ya wazi ya usimbaji ya kihariri, ama kwa kibadilishaji kinachotaja usimbaji wa pembejeo na matokeo:

iconv -f UTF-16 -t UTF-8 client.ovpn > client-utf8.ovpn
file client-utf8.ovpn

Hakiki matokeo badala ya kuamini hali ya kutoka ya amri. Ubadilishaji unapaswa kuhifadhi kila maagizo, na lazima uhifadhi kizuizi chochote cha cheti au ufunguo kilichopachikwa baiti kwa baiti ndani ya alama zake. Kufunga upya data ya PEM, kubadilisha miisho ya mistari ndani ya kizuizi au kuunda upya wasifu wakati wa ubadilishaji hutengeneza tatizo jipya huku likirekebisha la zamani.

Elekeza mteja au huduma kwenye faili iliyobadilishwa na uangalie hitilafu ya kwanza inayoripotiwa. Ikiwa alama iliyochanganyika haipo, kazi ya usimbaji imekamilika, na chochote kinachoshindikana baada ya hapo ni suala lingine.

Usimbaji uliorekebishwa haurekebishi nini

Usimbaji huamua jinsi maandishi yanavyosomwa; hausemi chochote kuhusu kama chaguo ni halali kwa mteja aliye mbele yako. Wasifu uliosafirishwa kwa utekelezaji mwingine unaweza kuchambuliwa safi na bado ukakataliwa kwa sababu ya chaguo ambalo toleo linaloendesha haliungi mkono, au maagizo ambayo hoja yake ina maana nyingine kwa mteja huyo.

Hitilafu hizo za baadaye zinastahili uchunguzi wao wenyewe: tahajia kamili, sintaksia ya hoja na toleo linaloikubali. Usichukulie uchambuzi uliofaulu kama wasifu uliofaulu.

Weka uchunguzi ndani ya nchi unaposhughulika nao. Vibadilishaji vya umma vya mtandaoni na dampu za hex zilizopachikwa ni mahali pabaya kwa faili inayoweza kuwa na ufunguo wa faragha, kwa sababu tatizo la usimbaji ni rahisi kurekebisha, ufunguo uliovuja sivyo.

Makala zinazohusiana