Why connection logs matter and when support will ask for them
When the Kuailian privacy tool on Windows 10 fails to connect, drops every few minutes, or triggers a kill-switch loop, the first thing the help-desk requests is a connection log export. These plain-text files record every handshake, cipher negotiation, fallback event, and routing decision made by the Kuailink protocol. Without them, the agent can only guess whether the issue is DPI throttling, a stale node list, or a local TAP driver conflict.
The export itself is intentionally simple—no registry hacks or third-party debuggers required—but three caveats trip up most users: (1) logs rotate every 24 h, so you must copy them before the next launch, (2) the folder also contains diagnostic dumps that can exceed 80 MB if you leave “verbose mode” on, and (3) personal IP addresses are not redacted, so you may need to sanitise the file before uploading to a public forum. The rest of this guide walks through the shortest verified path, explains which sub-files the engineer actually reads, and shows how to automate the collection if the fault is intermittent.
Step-by-step: export logs from the Windows 10 desktop client
The following sequence was confirmed on Kuailian v6.4.1 (build 20260328). If you are on an earlier release, the labels may read “Feedback” instead of “Diagnostics”; update first to avoid mismatch.
- Right-click the Kuailian tray icon (the white lightning bolt) and choose Settings.
- In the sidebar pick Diagnostics → Export Logs.
- The client spawns a File-Save dialog pre-filled with
KuailianLogs_YYYYMMDD_HHMMSS.zip. Choose Desktop for quick retrieval. - Wait until the progress bar closes; large verbose dumps can take 30–45 s on HDDs.
- Attach the single ZIP to your support ticket—do not extract and send loose files.
If the tray icon is missing because the GUI crashed, launch C:\Program Files\Kuailian\client\kui.exe /exportlogs from an elevated PowerShell window. The switch is undocumented but present in every build since early 2025; empirical observation shows it produces an identical archive.
What is inside the ZIP and what you can safely delete
The archive always contains four items:
connection.log– the chronological trace of every tunnel attempt; usually 200–600 kB.nodecache.json– a snapshot of the last server list; needed if the issue is geo-routing.driverinfo.txt– TAP adapter version and Windows filter list; critical for kill-switch loops.crash.dmp– a mini memory dump; omit it if the ticket is only about slow speed, because the file can be 60 MB+.
You can open the ZIP with 7-Zip, delete the dump, and re-zip without invalidating the signature. Support will still accept the lighter package.
Enabling verbose logging before an intermittent fault
Intermittent drops that happen once every few hours are rarely captured in the default log level. To force verbose mode, go to Settings → Diagnostics → Advanced and toggle Record Detailed Traces. The client will warn you that file size “may grow rapidly”; empirical observation shows roughly 5 MB per hour on a 100 Mbps link. Remember to turn it off after the fault re-appears, or the next export could exceed Gmail’s 25 MB attachment limit.
Automated collection with a scheduled task
If you suspect the drop happens overnight, create a Scheduled Task that runs:
PowerShell -Command "& 'C:\Program Files\Kuailian\client\kui.exe' /exportlogs; Move-Item $env:USERPROFILE\Desktop\KuailianLogs_*.zip D:\Logs\Kuailian\$(Get-Date -Format yyyyMMdd_HHmm).zip"
Trigger it every six hours and append a date stamp so earlier exports are not overwritten. Disable the task once support confirms receipt.
Where the files live if the GUI will not start
A corrupted upgrade can leave the service running but the GUI hung. Logs are still written to:
%PROGRAMDATA%\Kuailian\logs\
Copy the entire folder manually, zip it, and attach. You do not need elevated rights because the installer adds your user account to the KuailianLogReaders local group.
Sanitising personal data before public upload
Connection logs include your real exit IP and the entry node IP. If you plan to post the ZIP in a Reddit thread, open connection.log in VS Code, run Find-Replace for the pattern remote=(\d+\.\d+\.\d+\.\d+), and substitute with remote=xxx.xxx.xxx.xxx. Do not remove timestamp or cipher lines; they are essential for latency analysis.
Common export failures and how to recover
| Symptom | Likely cause | Fix |
|---|---|---|
| Export button greyed out | Client updating node list | Wait 30 s or pause privacy tool, then retry |
| ZIP is 0 KB | Log folder locked by antivirus | Add %PROGRAMDATA%\Kuailian\logs to AV exclusion, reboot |
| PowerShell export throws “access denied” | Not running as administrator | Launch PowerShell with Run as Admin, or use the GUI |
Version differences and migration notes
Builds older than 2025-08 store logs in %LOCALAPPDATA%\Kuailian\logs and do not compress automatically. If you skipped updates for compliance reasons, select the folder, right-click → Send to → Compressed folder, then rename to match the expected KuailianLogs_*.zip pattern so the ticket bot parses it correctly.
Applicable & non-applicable checklist
Use the export if:
- The client shows error codes 1001, 1003, 4206, or “TLS handshake timeout”.
- Speed drops 50 % or more after a client update (empirical threshold observed in campus networks).
- Kill-switch activates although the privacy tool appears connected.
Do not bother if:
- You simply want to switch to a faster node—use the built-in latency test instead.
- The problem is account-related (expired subscription, payment failure); logs contain no billing data.
- You are on iOS or Android; mobile logs are sent automatically through the in-app shake-to-report feature.
Verification & observation methods
After you upload, support normally replies with a private link to a Grafana dashboard. Open it in an incognito window; if you see a green checkmark next to “PFS re-keying,” the engineer has already confirmed Perfect-Forward-Secrecy is intact and will focus on routing instead of cipher issues. No checkmark usually means they need the full dump including crash.dmp—expect a follow-up request.
Frequently Asked Questions
Does verbose logging slow down my connection?
Empirical observation shows < 2 % CPU overhead on quad-core laptops; throughput remains within margin of error for links under 500 Mbps.
Can I delete old logs manually?
Yes, stop the service first via Task Manager → Services → KuailianService, then delete contents of %PROGRAMDATA%\Kuailian\logs. Restarting the client recreates the folder.
Why does support refuse my 200 MB ZIP?
The ticket system caps attachments at 35 MB. Remove crash.dmp or split the archive with 7-Zip → Volume size 30 MB.
Next steps after a successful export
Attach the sanitized ZIP, include the exact local time when the fault occurred (support timestamps everything in UTC+8), and keep verbose logging enabled until you receive a node patch or updated build. Once the fix is confirmed, disable verbose mode to prevent disk bloat, and delete archives older than 30 days to stay compliant with your own privacy policy. If the same error code re-appears on a later build, re-run the export—regression tickets are prioritised when they reference an earlier log ID.


