Как да съберете VPN логове на Android за билет за поддръжка
Експортирайте клиентския лог за един опит, после кратък оторизиран ADB logcat прозорец. Филтрирайте по време и таг, скрийте тайните, после изпратете един пакет.
Натискате Connect, профилът се върти за секунда и клиентът съобщава, че връзката е прекъсната. Поддръжката иска логове, вие прикачвате екранна снимка и темата зацикля за два дни, защото никой не може да каже коя част от ръкостискането се е отказала. Доклад, изграден около един опит, с тесен времеви прозорец и последния завършен етап, придвижва билета напред за едно завъртане. Алтернативата, цял ден телефонни логове, обикновено дава на човека отсреща повече места за гледане.
Два телефона на един и същ шлюз могат да се държат различно, защото протоколът, хранилището на сертификати, методът за удостоверяване или политиката за трафик може да не съвпадат. Фразата, че работи на моя телефон, е начална точка за сравнение, а не доказателство за проблем с Android.
Запишете един опит вместо цял ден история
Запишете средата, преди да възпроизведете каквото и да е: версия на Android, производител и модел, име и версия на клиента, избрания профил, мрежата, към която сте свързани, и часовото време с часовата му зона. Отбелязвам също дали са включени пестене на батерия или Data Saver, защото и двете променят какво може да прави клиентът, след като екранът изгасне.
След това решете кой от пет изхода виждате в действителност. Прозорецът за съгласие или разрешение никога не завършва, крайната точка е напълно недостъпна, удостоверяването е отхвърлено, настройката на интерфейса се проваля след успешен вход или тунелът се вдига и един конкретен ресурс остава недостъпен. Всеки от тях има различен собственик и различно решение, а пакет, който ги смесва, получава отговор да опитате отново. Гадането между тях превръща билет за един час в седмица размяна на съобщения.
Преходите също имат значение. Ако проблемът се появява само след заключване на екрана или след преминаване от Wi-Fi към мобилни данни, сложете това в първия ред на билета и отбележете минутата, в която се е случило.
Първо експортирайте собствения лог на клиента
Първото прикачено файлче трябва да дойде от приложението, а не от операционната система. Повечето клиенти имат в настройките експорт на диагностичен или свързочен лог, понякога скрит зад дълго натискане върху текста с версията, и този експорт вече разбира собствената си машина на състоянията. Използвайте го както излиза, вместо да преписвате интересните редове в тялото на билета.
Прикачете първата грешка и събитията непосредствено преди нея, а не само последния ред за прекъсване. Чистата опашка обикновено означава, че истинският проблем е станал по-рано: верига от сертификати, която не се валидира, име, което се е резолвнало на неочаквано място, или интерфейс, който никога не е бил конфигуриран.
Добавяйте logcat само за въпрос, който можете да назовете
Терминален емулатор на телефона не е системен логър. Android записва буферите си като отделни кръгови потоци, които само привилегировани процеси могат да четат изцяло. Затова обикновеното приложение вижда своя изход плюс ограничен отрязък, а твърдението, че logcat е бил празен, доказва много малко за това какво е записала платформата.
Поддържаният път е оторизирана ADB сесия от компютър, който контролирате. Включете опциите за разработчици и USB отстраняване на грешки, свържете кабела и приемете диалога за RSA отпечатък на устройството; ако този прозорец бъде затворен, всяка следваща команда се проваля с unauthorized и никакво заснемане не започва.
Потвърдете, че устройството наистина е там, преди да инвестирате време в заснемане. adb devices трябва да отпечата серийния номер, следван от думата device, а всичко, което показва offline или unauthorized, първо се нуждае от оправяне на кабела, прозореца или драйвера.
След като се появи в списъка, започнете заснемане няколко секунди преди да натиснете Connect и спрете веднага след като клиентът се откаже. Живото заснемане с умишлено начало е по-добро от дъмп, взет двадесет минути по-късно, защото кръговите буфери вече са се завъртели и ранните редове, които ви трябват, може да са изчезнали:
adb logcat -v threadtime -b main,system,crash > attempt.txt
Филтрирайте по време и таг, а не по думата VPN
Търсенето на vpn в заснемане е най-бързият начин да загубите реда, който обяснява проблема. Валидирането на сертификати, сривовете на процеси и промените в свързаността се записват под тагове, които никога не споменават VPN, така че филтърът по ключова дума запазва шума и изхвърля доказателствата.
Първо стеснете прозореца, после приоритета, после тага. Когато ви трябва само това, което се е случило след известен момент, adb logcat -v threadtime -t '11-03 20:14:00.000' преиграва последната опашка от тази точка, а форматът threadtime запазва времевите марки сравними със собствения експорт на клиента.
Ако знаете пакета на клиента, следвайте процеса му, вместо да гадаете тагове. adb shell pidof com.vendor.client връща идентификатор на процес, а adb logcat --pid=1234 -v threadtime отпечатва само този процес, докато adb logcat -g показва колко място има всеки буфер, преди да започне да презаписва.
Изчистете тайните, после предайте един свързан пакет
Преди нещо да напусне машината ви, премахнете пароли, токени, частни ключове, бисквитки за сесия и пълни идентификатори на устройството. Запазете кодовете за грешка, реда на събитията и връзките между адресите, които правят проблема четимо, защото заснемане, изчистено след тази точка, е също толкова безполезно, колкото такова, което никога не е било филтрирано.
После изпратете един пакет, а не няколко отделни файла: експорта на клиента, ADB прозореца с име по началото и края, резюме от два реда за етапа, който се е провалил, и бележката за средата от началото на този списък. Ако част от него не може да се публикува публично, използвайте частния канал за поддръжка на доставчика и кажете кой файл се нуждае от него.
Преди да изпратите, проверете четири неща. Пакетът покрива ли един опит, а не цял следобед? Припокриват ли се времевите марки на клиента и системата? И съдържа ли още токен, парола или пълен идентификатор на абоната? Оправете тази последна точка първо, после прикачете файловете към съществуващия билет, вместо да отваряте нов, за да запази този, който го поеме, предишния контекст.