<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>lanying&apos;s blog</title><description>Awoo~</description><link>https://blog.yufurry.cn/</link><language>zh-cn</language><item><title>DeepSeek-V4-Pro Production Release – Performance Closing in on Fable 5 at 1/60th the Price</title><link>https://blog.yufurry.cn/posts/00000022/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000022/</guid><description>In the early hours of August 13, DeepSeek quietly upgraded V4 Pro from preview to production – scoring 87.9 on Terminal Bench 2.1, just 0.1 points behind Fable 5, at roughly 1/57 of the price.</description><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Overview&lt;/h2&gt;
&lt;p&gt;Late on August 12, 2026, DeepSeek quietly upgraded the V4 Pro model from preview to production. The update arrived without a formal launch event or release notes – the only indication was an update to the model version identifier in the API pricing page, now showing &lt;strong&gt;DeepSeek-V4-Pro-0813&lt;/strong&gt;. The model name &lt;code&gt;deepseek-v4-pro&lt;/code&gt; remains unchanged, so existing users can start using the new version without any code changes.&lt;/p&gt;
&lt;p&gt;Earlier that same day, Elon Musk&apos;s xAI also officially released Grok 4.6, which scored 1753 Elo on the GDPVal-AA v2 leaderboard, surpassing Fable 5. The simultaneous release of two high‑value flagship models drew widespread industry attention.&lt;/p&gt;
&lt;p&gt;This article analyses the V4 Pro production upgrade across several dimensions: performance gains, benchmark results, cost‑effectiveness, and selection guidance between Flash and Pro. It should be noted that as of the time of writing (August 13, 2026), DeepSeek has not yet published a complete changelog for V4-Pro-0813. Benchmark data in this article comes primarily from community sources and unofficial channels – official figures should be awaited for confirmation.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;V4 Series Parameter Recap&lt;/h2&gt;
&lt;p&gt;To better understand where this upgrade fits, here&apos;s a quick recap of the V4 series specifications:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Specification&lt;/th&gt;
&lt;th&gt;V4-Pro Preview&lt;/th&gt;
&lt;th&gt;V4-Pro Production (0813)&lt;/th&gt;
&lt;th&gt;V4-Flash Production (0731)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Params&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.6T&lt;/td&gt;
&lt;td&gt;1.6T (unchanged)&lt;/td&gt;
&lt;td&gt;284B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active Params&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49B&lt;/td&gt;
&lt;td&gt;49B (unchanged)&lt;/td&gt;
&lt;td&gt;13B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MoE&lt;/td&gt;
&lt;td&gt;MoE&lt;/td&gt;
&lt;td&gt;MoE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Max Output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Release Date&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2026‑04‑24&lt;/td&gt;
&lt;td&gt;2026‑08‑13&lt;/td&gt;
&lt;td&gt;2026‑07‑31&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Key takeaway: The model architecture has not changed.&lt;/strong&gt; 1.6T total parameters, 49B active parameters, MoE architecture, 1M context window, and 384K max output length – all these hardware‑level specs have remained unchanged since the April 24 preview release. Similar to the Flash production release on July 31, the Pro production performance gains come primarily from extensive post‑training tuning.&lt;/p&gt;
&lt;p&gt;In other words: the Preview version was the April baseline, Flash production was the July‑tuned lightweight version, and this Pro production release is the August‑tuned flagship version. Flash production had previously surpassed Pro Preview on Agent benchmarks; with Pro now receiving the same post‑training treatment, the performance gap has been corrected.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Ten Benchmark Comparisons: Preview vs Production&lt;/h2&gt;
&lt;p&gt;The following table shows cross‑verified benchmark comparisons. Note that Preview numbers are official scores from the April release, while Production numbers are from leaked community sources for the 0813 version – no independent third‑party reproduction results are available yet.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;V4-Pro Preview&lt;/th&gt;
&lt;th&gt;V4-Pro Production (0813)&lt;/th&gt;
&lt;th&gt;Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Terminal Bench 2.1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;72.1&lt;/td&gt;
&lt;td&gt;87.9&lt;/td&gt;
&lt;td&gt;+21.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NL2Repo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;38.5&lt;/td&gt;
&lt;td&gt;61.5&lt;/td&gt;
&lt;td&gt;+59.7%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cybergym&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;52.7&lt;/td&gt;
&lt;td&gt;83.3&lt;/td&gt;
&lt;td&gt;+58.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DeepSWE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;12.8&lt;/td&gt;
&lt;td&gt;62.7&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+389.8%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Toolathlon Verified&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;55.9&lt;/td&gt;
&lt;td&gt;74.1&lt;/td&gt;
&lt;td&gt;+32.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent Last Exam&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;16.5&lt;/td&gt;
&lt;td&gt;25.7&lt;/td&gt;
&lt;td&gt;+55.8%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Automation Bench (Public)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;12.8&lt;/td&gt;
&lt;td&gt;31.8&lt;/td&gt;
&lt;td&gt;+148.4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DSBench-FullStack&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;41.8&lt;/td&gt;
&lt;td&gt;71.1&lt;/td&gt;
&lt;td&gt;+70.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DSBench-Hard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;31.1&lt;/td&gt;
&lt;td&gt;67.2&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;+116.1%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HLE (w/ tools)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;48.2&lt;/td&gt;
&lt;td&gt;60.0&lt;/td&gt;
&lt;td&gt;+24.5%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Key highlights:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DeepSWE jumped nearly 5×&lt;/strong&gt; (12.8 → 62.7). This is DeepSeek&apos;s in‑house software engineering benchmark, evaluating the model&apos;s ability to modify code and fix bugs in real‑world engineering scenarios. The Preview&apos;s 12.8 was low; the Production&apos;s 62.7 surpasses Anthropic&apos;s previous‑generation flagship Opus 4.8 at 58.0 – a qualitative leap.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Terminal Bench 2.1 hit 87.9.&lt;/strong&gt; This widely cited Agent benchmark evaluates the model&apos;s ability to execute terminal commands, modify configurations, and fix issues. The Production score of 87.9 is just 0.1 points behind the top‑ranked Fable 5 at 88.0.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cybergym surpassed Fable 5:&lt;/strong&gt; 83.3 vs 83.1. This benchmark tests cybersecurity attack/defence capabilities – surpassing the closed‑source leader in this domain is a significant milestone.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automation Bench and DSBench series doubled:&lt;/strong&gt; automation workflows and full‑stack development capabilities both saw multiplicative gains – a generational leap.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, the performance gap between Preview and Production is substantial.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Horizontal Comparison: Against Flash Production and Competitors&lt;/h2&gt;
&lt;p&gt;The following table shows leaked cross‑benchmark comparisons for the 0813 release against mainstream flagship models including Fable 5, Opus 4.8, GLM‑5.2, and Kimi K3:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;V4 Pro Production&lt;/th&gt;
&lt;th&gt;V4 Flash Production&lt;/th&gt;
&lt;th&gt;GLM‑5.2&lt;/th&gt;
&lt;th&gt;Kimi‑K3&lt;/th&gt;
&lt;th&gt;Opus‑4.8&lt;/th&gt;
&lt;th&gt;Fable 5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HLE (w/ tools)&lt;/td&gt;
&lt;td&gt;60.0&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;54.7&lt;/td&gt;
&lt;td&gt;56.0&lt;/td&gt;
&lt;td&gt;57.9&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal Bench 2.1&lt;/td&gt;
&lt;td&gt;87.9&lt;/td&gt;
&lt;td&gt;82.7&lt;/td&gt;
&lt;td&gt;81.0&lt;/td&gt;
&lt;td&gt;88.3&lt;/td&gt;
&lt;td&gt;85.0&lt;/td&gt;
&lt;td&gt;88.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;NL2Repo&lt;/td&gt;
&lt;td&gt;61.5&lt;/td&gt;
&lt;td&gt;54.2&lt;/td&gt;
&lt;td&gt;48.9&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;69.7&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cybergym&lt;/td&gt;
&lt;td&gt;83.3&lt;/td&gt;
&lt;td&gt;76.7&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;80.0&lt;/td&gt;
&lt;td&gt;78.3&lt;/td&gt;
&lt;td&gt;83.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSWE&lt;/td&gt;
&lt;td&gt;62.7&lt;/td&gt;
&lt;td&gt;54.4&lt;/td&gt;
&lt;td&gt;46.2&lt;/td&gt;
&lt;td&gt;67.5&lt;/td&gt;
&lt;td&gt;58.0&lt;/td&gt;
&lt;td&gt;70.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toolathlon‑Verified&lt;/td&gt;
&lt;td&gt;74.1&lt;/td&gt;
&lt;td&gt;70.3&lt;/td&gt;
&lt;td&gt;59.9&lt;/td&gt;
&lt;td&gt;76.5&lt;/td&gt;
&lt;td&gt;76.2&lt;/td&gt;
&lt;td&gt;77.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent Last Exam&lt;/td&gt;
&lt;td&gt;25.7&lt;/td&gt;
&lt;td&gt;25.2&lt;/td&gt;
&lt;td&gt;23.8&lt;/td&gt;
&lt;td&gt;27.6&lt;/td&gt;
&lt;td&gt;25.7&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AutomationBench&lt;/td&gt;
&lt;td&gt;31.8&lt;/td&gt;
&lt;td&gt;25.1&lt;/td&gt;
&lt;td&gt;12.9&lt;/td&gt;
&lt;td&gt;30.8&lt;/td&gt;
&lt;td&gt;27.2&lt;/td&gt;
&lt;td&gt;29.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DSBench‑FullStack&lt;/td&gt;
&lt;td&gt;71.1&lt;/td&gt;
&lt;td&gt;68.7&lt;/td&gt;
&lt;td&gt;61.8&lt;/td&gt;
&lt;td&gt;73.7&lt;/td&gt;
&lt;td&gt;71.6&lt;/td&gt;
&lt;td&gt;77.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DSBench‑Hard&lt;/td&gt;
&lt;td&gt;67.2&lt;/td&gt;
&lt;td&gt;59.6&lt;/td&gt;
&lt;td&gt;54.5&lt;/td&gt;
&lt;td&gt;63.0&lt;/td&gt;
&lt;td&gt;71.7&lt;/td&gt;
&lt;td&gt;68.3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The data shows a clear profile for Pro Production – &lt;strong&gt;it may not top every single benchmark, but it sits firmly in the top tier across all of them.&lt;/strong&gt; It trails Kimi K3 by just 0.4 points on Terminal Bench (88.3 vs 87.9) but leads Opus‑4.8 (85.0) by 3 points; it takes first place on Cybergym at 83.3; both DeepSWE and NL2Repo are among the top; DSBench‑Hard at 67.2 is second only to Opus‑4.8&apos;s 71.7.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&quot;No obvious weak spots&quot; is a core competitive advantage for Agent models.&lt;/strong&gt; Agent tasks aren&apos;t single‑turn Q&amp;amp;A – they involve multi‑step long‑chain execution: terminal operations, code modification, tool calls, data parsing, environment setup, and more. A deficiency in any single capability can cause the entire chain to fail. The Preview&apos;s weak performance on long‑code tasks like DeepSWE (12.8, indicating a high failure rate) was a significant limitation; with that gap now addressed, the model&apos;s real‑world Agent usability has improved dramatically.&lt;/p&gt;
&lt;p&gt;It&apos;s also worth noting that the performance gap between Flash Production and Pro Production has returned to &quot;Pro slightly ahead&quot; – about 5–10 points across benchmarks. Despite having a fraction of Pro&apos;s parameters (284B vs 1.6T total, 13B vs 49B active), Flash remains exceptional value.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;The Technical Path Behind the Performance Gains&lt;/h2&gt;
&lt;p&gt;Consistent with the Flash production upgrade, Pro&apos;s performance gains come primarily from &lt;strong&gt;post‑training optimisation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;DeepSeek hasn&apos;t published a technical report for Pro Production yet, but based on Flash&apos;s changelog, it&apos;s reasonable to assume the same upgrade strategy was applied – the model architecture, parameter count, and active parameter count were all left untouched, while the post‑training pipeline was thoroughly reworked. To use an analogy: it&apos;s the same engine, but the transmission, ECU calibration, and suspension have been retuned – delivering better performance without hardware changes.&lt;/p&gt;
&lt;p&gt;This suggests that under the MoE + post‑training technical roadmap, there&apos;s still significant room to push the performance ceiling. Especially for long‑chain Agent scenarios, the model architecture itself is already capable – the bottleneck lies more in large‑scale post‑training tailored to code toolchains, terminal operations, and multi‑step reasoning. Training data quality and tuning strategies may have a greater impact on final performance than simply adding more parameters.&lt;/p&gt;
&lt;p&gt;For context, here&apos;s a quick recap of V4&apos;s core architecture:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MoE (Mixture of Experts):&lt;/strong&gt; The 1.6T parameters are split into thousands of &quot;expert sub‑models&quot;; each forward pass activates only 64 experts (totalling 49B parameters) – meaning the model has the knowledge capacity of 1.6T but the inference compute cost of a 49B model.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hybrid attention (CSA + DSA + mHC):&lt;/strong&gt; Reduces computational overhead in long‑context scenarios – at 1M tokens, per‑token inference cost drops to about 10% of V3.2, and KV Cache usage is significantly lower.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engram memory technology:&lt;/strong&gt; Improves long‑context precision recall – better at retrieving details from large codebases and long documents.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;New Capabilities: Multimodal Support, Responses API, and Codex Integration&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;The Preview was text‑only; Production natively supports image reasoning for the first time.&lt;/strong&gt; According to 36Kr&apos;s hands‑on testing, the DeepThink engine can analyse screenshots, interpret images, and process mixed text‑image documents within a single reasoning flow. For example, submitting an error screenshot allows the model to directly read the code, error messages, and stack trace from the image and propose a fix – eliminating the need for separate OCR preprocessing in development workflows.&lt;/p&gt;
&lt;p&gt;On the API side, Pro Production shares the same interface capabilities as Flash Production:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Native Responses API (OpenAI‑compatible) support&lt;/strong&gt; – Codex tools (Codex CLI, ChatGPT desktop, VS Code Codex plugin) can be integrated by simply changing the base_url, with the same automated setup script as Flash&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Also supports Anthropic API format&lt;/strong&gt; – Agent tools like Claude Code and OpenCode can switch backends by changing just one line of code&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thinking mode toggle&lt;/strong&gt; (enabled by default), JSON Output, Tool Calls, conversational prefix completion (Beta), and FIM completion (Beta, non‑thinking mode only) are all supported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In short, if you already have code calling Flash, migrating to Pro is as simple as changing the &lt;code&gt;model&lt;/code&gt; parameter from &lt;code&gt;deepseek-v4-flash&lt;/code&gt; to &lt;code&gt;deepseek-v4-pro&lt;/code&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Pricing &amp;amp; Concurrency: 6 CNY/MT Output, Three Times Flash&lt;/h2&gt;
&lt;p&gt;The following pricing is from the official pricing page as of August 13, 2026:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pricing Item&lt;/th&gt;
&lt;th&gt;V4 Pro Production (Off‑Peak)&lt;/th&gt;
&lt;th&gt;V4 Flash Production (Off‑Peak)&lt;/th&gt;
&lt;th&gt;Ratio&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input (cache hit)&lt;/td&gt;
&lt;td&gt;0.025 CNY&lt;/td&gt;
&lt;td&gt;0.02 CNY&lt;/td&gt;
&lt;td&gt;1.25x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input (cache miss)&lt;/td&gt;
&lt;td&gt;3 CNY&lt;/td&gt;
&lt;td&gt;1 CNY&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3x&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;6 CNY&lt;/td&gt;
&lt;td&gt;2 CNY&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3x&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concurrency Limit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;500&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2500&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1/5&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Pro is priced at about three times Flash&lt;/strong&gt; – input cache miss rises from 1 CNY to 3 CNY, output from 2 CNY to 6 CNY, with cache‑hit pricing much closer. The concurrency difference is even more pronounced: Flash at 2500 vs Pro at 500 – consistent with their positioning (Flash for high‑volume requests, Pro for high‑value long tasks).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Peak‑hour pricing doubles&lt;/strong&gt; (the time‑of‑use mechanism applies to Pro as well): 9:00‑12:00 and 14:00‑18:00 Beijing time (7 hours per weekday) – all pricing items double, meaning Pro output during peak hours is 12 CNY per million tokens.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;International competitor pricing comparison&lt;/strong&gt; (converted to USD):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input (USD / MT)&lt;/th&gt;
&lt;th&gt;Output (USD / MT)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4 Pro&lt;/td&gt;
&lt;td&gt;0.435&lt;/td&gt;
&lt;td&gt;0.87&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 4.8&lt;/td&gt;
&lt;td&gt;5.00&lt;/td&gt;
&lt;td&gt;25.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT‑5.5&lt;/td&gt;
&lt;td&gt;5.00&lt;/td&gt;
&lt;td&gt;30.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fable 5&lt;/td&gt;
&lt;td&gt;10.00&lt;/td&gt;
&lt;td&gt;50.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;V4 Pro&apos;s output price is about 1/28 of Opus 4.8 and 1/57 of Fable 5 – roughly on par with Grok 4.6&apos;s output price ($6). Combined with its Terminal Bench 2.1 score just 0.1 points behind Fable 5, the claim of &quot;performance closing in on Fable 5 at one‑sixtieth the price&quot; is well grounded.&lt;/p&gt;
&lt;p&gt;Two additional points:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;DeepSeek has already posted a price increase notice&lt;/strong&gt; on the pricing page: &quot;We plan to raise DeepSeek API pricing in the near future, with a significant increase expected – please plan your usage accordingly.&quot; The current pricing window may be limited.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;SWE‑bench Verified 80.6%&lt;/strong&gt; figure has not been included in the main analysis, as it has only appeared in encyclopaedia entries and third‑party articles without official confirmation – treat it as unofficial until formally published.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Flash vs Pro – Selection Guide&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;th&gt;Reasoning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Daily chat, light coding, content generation, Q&amp;amp;A&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Flash&lt;/td&gt;
&lt;td&gt;Flash Production already surpasses Pro Preview in performance, at 1/3 the cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Large codebase refactoring, multi‑step terminal ops, complex Agent tasks&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;Clear advantages on long‑chain benchmarks like DeepSWE and Terminal Bench&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data analysis / data science (DSBench‑type tasks)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Leans Pro&lt;/td&gt;
&lt;td&gt;DSBench‑Hard/FullStack show a performance gap; better completion rates on complex data tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;High‑concurrency, low‑latency API services&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Flash&lt;/td&gt;
&lt;td&gt;5× the concurrency limit (2500 vs 500) at 1/3 the cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ultra‑long context (entire books / large codebases)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Either; Pro if budget allows&lt;/td&gt;
&lt;td&gt;Both support 1M context; Pro has better recall and reasoning stability in long‑chain tasks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security / red‑team scenarios&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;Cybergym 83.3 vs 76.7 – a clear edge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Budget‑sensitive / individual developers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Flash primarily; switch to Pro for complex tasks&lt;/td&gt;
&lt;td&gt;Flash handles most tasks well; significantly better cost efficiency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Bottom line: &lt;strong&gt;For 95% of daily tasks, Flash Production is more than sufficient. Pro&apos;s 3× price doesn&apos;t translate to a 3× experience improvement in most scenarios.&lt;/strong&gt; Pro&apos;s strengths are concentrated in long‑chain Agent tasks, high‑difficulty coding, and complex data science – and for many users, the &quot;small difference&quot; they perceive is simply because their tasks aren&apos;t demanding enough to reveal the 5‑point gap.&lt;/p&gt;
&lt;p&gt;Additionally, according to 36Kr&apos;s hands‑on testing, there are two practical considerations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;In large‑scale code generation, Thinking mode can consume 80%+ of output tokens on reasoning&lt;/strong&gt;, compressing the actual content. In BFS/DFS/A* visualisation tests, Thinking mode truncated output to about half, while disabling it allowed full execution in 54 seconds.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Third‑party intelligence scores show divergence:&lt;/strong&gt; Artificial Analysis gives V4‑Pro‑0813 an intelligence index of 53, only 1 point above Flash‑0731&apos;s 52 – reinforcing the view that &quot;the gap isn&apos;t noticeable in everyday scenarios.&quot;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also worth watching is the &lt;strong&gt;DeepSeek Harness&lt;/strong&gt; inference framework, currently in closed beta. The Harness team opened beta signups on August 1, with early testers reporting strong results. The framework&apos;s impact on model performance may be larger than expected – whether the benchmark scores above are boosted by Harness optimisation is currently unconfirmed. Once Harness is publicly released, Pro&apos;s practical performance may have further room to improve.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Concurrency, API Migration, and Practical Tips&lt;/h2&gt;
&lt;h3&gt;Concurrency Limits&lt;/h3&gt;
&lt;p&gt;500 concurrent requests is plenty for most applications, but it&apos;s important to understand the positioning difference from Flash&apos;s 2500. Pro is designed for high‑value long tasks – using it for bulk text processing, data cleaning, etc., may hit concurrency bottlenecks, and peak‑hour costs double, making it less economical. Batch processing is best scheduled during off‑peak hours (nights/weekends) to halve costs; for non‑latency‑sensitive tasks, Flash reduces cost by about two‑thirds and eliminates concurrency concerns.&lt;/p&gt;
&lt;h3&gt;API Migration Guide&lt;/h3&gt;
&lt;p&gt;If you&apos;re already using DeepSeek API, switching to Pro is as simple as changing the model name:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;from openai import OpenAI

client = OpenAI(api_key=&quot;&amp;lt;your_api_key&amp;gt;&quot;, base_url=&quot;https://api.deepseek.com&quot;)

# Original Flash call
response = client.chat.completions.create(
    model=&quot;deepseek-v4-flash&quot;,
    messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Write a quicksort implementation&quot;}],
    temperature=1.0,
)

# Switch to Pro – all other parameters stay the same
response = client.chat.completions.create(
    model=&quot;deepseek-v4-pro&quot;,
    messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Write a quicksort implementation&quot;}],
    temperature=1.0,
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For Anthropic‑format integration, simply change the base_url to &lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;Codex Integration&lt;/h3&gt;
&lt;p&gt;Pro also supports Codex integration with the same setup as Flash – use the automated PowerShell script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script backs up existing configs, writes to models.json, modifies config.toml, and validates syntax – aborting if anything goes wrong.&lt;/p&gt;
&lt;h3&gt;Cost Optimisation Tips&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Schedule batch tasks during off‑peak hours&lt;/strong&gt; (12:00‑14:00, 18:00‑09:00, weekends/holidays) to halve costs.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Place fixed system prompts and knowledge‑base prefixes at the very start of the messages array&lt;/strong&gt; to maximise cache hit rates. Pro&apos;s cache‑hit input pricing is 0.025 CNY per million tokens – about 120× cheaper than cache‑miss at 3 CNY.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Route tasks by complexity&lt;/strong&gt; – simple intent classification, categorisation, and summarisation can use Flash at 1/3 the output cost, saving significantly over time.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Pricing Trends and Industry Context&lt;/h2&gt;
&lt;p&gt;The &quot;significant API price increase&quot; notice on the pricing page is worth paying attention to. DeepSeek posted a related announcement on August 6, and the Pro production release didn&apos;t coincide with a price adjustment – the length of this low‑price window is uncertain. DeepSeek has recently raised substantial funding at a high valuation, but compute costs remain a core constraint – V4 Flash alone has surpassed 4.66 trillion tokens in weekly calls on OpenRouter, topping the global charts for several consecutive weeks. The pressure behind such massive usage at consistently low prices is real.&lt;/p&gt;
&lt;p&gt;Time‑of‑use pricing is essentially resource scheduling via price signals: when compute is scarce during weekday daytime hours, prices rise, shifting non‑urgent batch workloads to off‑peak periods to ensure stability for finance, development, and real‑time Agent scenarios. For developers, rather than worrying about price fluctuations, it&apos;s better to build tiered routing and caching optimisation into your architecture – even if prices rise later, well‑prepared users can still keep costs under control.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;V4 Pro Production represents a substantive generational leap, not a minor iteration:&lt;/strong&gt; DeepSWE improved nearly 5×, Terminal Bench hit 87.9 (just 0.1 points behind Fable 5), Cybergym surpassed Fable 5, and multimodal and Codex support have been added. Combined with the 6 CNY per million tokens output price, it&apos;s one of the most cost‑effective flagship‑class Agent models available today – far cheaper than comparable overseas models.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;But Pro isn&apos;t the best choice for every scenario:&lt;/strong&gt; For everyday tasks, Flash Production already outperforms Pro Preview, at one‑third the cost and five times the concurrency. If Flash already meets your needs, don&apos;t pay extra just for benchmark numbers. Only when you encounter long‑chain Agent tasks where Flash frequently fails should you consider switching to Pro.&lt;/p&gt;
&lt;p&gt;A final note: this article was written on August 13, 2026. Some data comes from community sources and third‑party reports – DeepSeek has not yet published a complete changelog. Treat benchmark numbers as references, and validate performance against your own use cases.&lt;/p&gt;
&lt;p&gt;With Pro Production now live, the V4 series product matrix is largely complete – Flash offers extreme cost‑effectiveness, Pro delivers flagship performance, with output pricing ranging from 2 to 6 CNY per million tokens, further lowering the global AI API pricing bar. For developers, this trend is broadly positive.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Information compiled from the following public sources. &lt;strong&gt;These are from the internet and not guaranteed to be fully accurate&lt;/strong&gt; – for reference only. Prices, policies, and benchmark methodologies are subject to change – always refer to DeepSeek&apos;s official API documentation and latest announcements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.deepseek.com/&quot;&gt;DeepSeek Official Website (Homepage announces V4 Pro production release)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://api-docs.deepseek.com/quick_start/pricing/&quot;&gt;DeepSeek Official API Pricing Page (Models &amp;amp; Pricing)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.51cto.com/article/852855.html&quot;&gt;Breaking: DeepSeek V4 Pro Officially Released (51CTO / Su San)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://m.toutiao.com/group/7673192239073362438/&quot;&gt;DeepSeek V4 Pro Production: 1M Context + 384K Output, 3× More Expensive Than Flash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://36kr.com/p/3937317630147971&quot;&gt;Hands‑on: Production DeepSeek V4 Pro – Agent and Vision Capabilities (GeekPark @ 36Kr)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://36kr.com/p/3937236905344390&quot;&gt;Liang Wenfeng vs Elon Musk – DeepSeek V4 Pro Puts Pressure on the Global Leader (Phoenix Tech @ 36Kr)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://devpress.csdn.net/beijing/6a7ca135662f9a54cb9bd297.html&quot;&gt;DeepSeek V4 Pro Production Hands‑on: Agent Capabilities Up 5×, Zero‑Cost API Migration Guide (CSDN Beijing Dev Community)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://36kr.com/p/3937119315377283&quot;&gt;DeepSeek V4 Pro Released: Everything I Could Want in a Model, Plus Multimodal (Jingxuan AI @ 36Kr)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.aliyun.com/article/1755411&quot;&gt;DeepSeek V4 Pro Goes Production – Performance Nearing Fable 5 at One‑Sixtieth the Price (Alibaba Cloud Dev Community)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ai.zol.com.cn/1231/12315262.html&quot;&gt;DeepSeek V4-Pro-0813 Released: Performance Near Fable 5, But Mixed Real‑World Results – Value Questionable (ZOL AI)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://finance.sina.com.cn/jjxw/2026-06-29/doc-inifauhw3773786.shtml&quot;&gt;DeepSeek V4 Production Release Imminent – API Peak‑Hour Prices to Double (Interface News @ Sina Finance)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://m.baike.com/wiki/DeepSeek-V4-Pro/7632217736680259624&quot;&gt;DeepSeek-V4-Pro Encyclopedia Entry (Timeline and Pricing)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>EdgeOne vs ESA – How Strong Is EdgeOne, What&apos;s the Difference, and Which One Should You Choose?</title><link>https://blog.yufurry.cn/posts/00000021/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000021/</guid><description>Both Tencent Cloud EdgeOne and Alibaba Cloud ESA have launched free tiers. This article compares the two free CDN products, highlighting differences and offering selection recommendations.</description><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Product Positioning and Background&lt;/h2&gt;
&lt;p&gt;Edge security acceleration platforms are the next evolution of traditional CDN products. They integrate static acceleration, dynamic full-site acceleration, WAF (Web Application Firewall), DDoS mitigation, bot risk management, edge computing, and more – all unified under a single site-based management model. This contrasts with traditional setups where CDN and security products are separate, requiring multi-console operations. Both Tencent Cloud EdgeOne and Alibaba Cloud ESA belong to this category, positioning themselves as competitors to Cloudflare.&lt;/p&gt;
&lt;h3&gt;Tencent Cloud EdgeOne (EO)&lt;/h3&gt;
&lt;p&gt;EdgeOne was officially launched in 2023, evolving from Tencent&apos;s SCDN product. Its core feature is site-based management – once you add a site, all subdomains are automatically covered without needing to configure each domain individually or repeatedly maintain SSL certificates. It is Tencent Cloud&apos;s next-generation flagship CDN product, officially positioned as a Cloudflare competitor.&lt;/p&gt;
&lt;h3&gt;Alibaba Cloud ESA&lt;/h3&gt;
&lt;p&gt;ESA stands for Edge Security Acceleration, rebranded and rebuilt from the original DCDN (Dynamic Content Delivery Network) product in 2024. In the DCDN era, static and dynamic acceleration capabilities were independent; ESA consolidates them while strengthening native security modules. The API version &lt;code&gt;2024-09-10&lt;/code&gt; indicates a major architectural overhaul.&lt;/p&gt;
&lt;p&gt;Both vendors claim 3200+ global nodes, with 2300+ nodes in mainland China. These figures should be taken as a reference – actual node quality and routing logic should be verified through real-world testing. Both have top-tier domestic node coverage in China, significantly outperforming many overseas vendors that claim &quot;global nodes&quot; but lack actual domestic resources.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Free Tier Comparison&lt;/h2&gt;
&lt;p&gt;The table below summarises the core specifications of each product&apos;s free tier:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Tencent Cloud EdgeOne Free&lt;/th&gt;
&lt;th&gt;Alibaba Cloud ESA Free&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0 CNY/month&lt;/td&gt;
&lt;td&gt;0 CNY/month&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Traffic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Requests&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;td&gt;Unlimited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Validity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Permanent (as long as site isn&apos;t deleted)&lt;/td&gt;
&lt;td&gt;Permanent (supports 0‑CNY renewal)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How to Get&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Limited beta – via redemption codes or official campaigns&lt;/td&gt;
&lt;td&gt;Direct 0‑CNY subscription from the console&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Max Per Account&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Up to 5 (via codes + campaigns)&lt;/td&gt;
&lt;td&gt;1 per UID (additional via campaigns)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sites&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Subdomains&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;200 subdomains per site&lt;/td&gt;
&lt;td&gt;1 wildcard domain only; no individual subdomain support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rule Engine&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;20 rules&lt;/td&gt;
&lt;td&gt;Only basic rules available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SLA&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Community only&lt;/td&gt;
&lt;td&gt;No ticket support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mainland China Nodes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Requires domain ICP filing&lt;/td&gt;
&lt;td&gt;Requires domain ICP filing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Rate Limiting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Single‑thread throttling on large files; ~500 KB/s for files &amp;gt;10 MB (observed)&lt;/td&gt;
&lt;td&gt;Peak bandwidth and per‑request rate limits apply (undisclosed thresholds)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Common ground: zero cost, unlimited traffic/requests, permanent availability, no SLA guarantees; both require ICP filing for mainland China node access. Note that &quot;unlimited traffic&quot; doesn&apos;t mean unlimited throughput or no business‑use constraints – implicit restrictions exist.&lt;/p&gt;
&lt;h3&gt;Getting the Free Tier&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Alibaba Cloud ESA&lt;/strong&gt; is straightforward – after account verification, you can directly order the free tier from the console. One site per account by default. Partner campaigns (e.g., with aaPanel) may offer additional site quotas for multi‑site scenarios.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tencent Cloud EdgeOne&lt;/strong&gt; is still in limited beta and not directly purchasable. There are three channels:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Community sharing campaigns&lt;/strong&gt; – complete speed tests or edge function trials, share results on social media; each task unlocks one free plan, up to 4 per account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Redemption codes&lt;/strong&gt; – distributed via KOL partnerships, cloud vendor member events, or developer cooperation programs. Codes are valid for 7 days, one use per account.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Only the main account&lt;/strong&gt; (not sub‑accounts or collaborators) is eligible; the account must be verified.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;EdgeOne also partners with third‑party communities to distribute free plans – e.g., the aaPanel collaboration: &lt;a href=&quot;https://docs.bt.cn/notices/free-edgeone-plan&quot;&gt;docs.bt.cn/notices/free-edgeone-plan&lt;/a&gt;. The barrier to entry has been progressively lowering.&lt;/p&gt;
&lt;h3&gt;Site and Domain Quota Differences&lt;/h3&gt;
&lt;p&gt;EdgeOne Free supports 200 subdomains per site – ideal if your main domain has many sub‑projects or micro‑services, all manageable under a single site.&lt;/p&gt;
&lt;p&gt;ESA Free only supports a single wildcard domain. While it covers subdomains, you cannot configure per‑subdomain caching or access control rules. Combined with limited rule engine quotas, fine‑grained management is constrained.&lt;/p&gt;
&lt;p&gt;EdgeOne also has an automatic downgrade mechanism: if a paid plan expires, the site isn&apos;t shut down – it automatically downgrades to the free tier, losing SLA but keeping the service running. Great for users who worry about forgetting to renew.&lt;/p&gt;
&lt;h3&gt;Rate Limiting Details&lt;/h3&gt;
&lt;p&gt;Both products advertise unlimited traffic but impose restrictions on large‑file use cases.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EdgeOne Free&lt;/strong&gt; explicitly states it&apos;s not suitable for video or large‑file distribution. In real‑world tests, files over 10 MB are throttled to ~500 KB/s on a single thread – a pattern confirmed by multiple independent tests.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ESA Free&lt;/strong&gt; doesn&apos;t publish a fixed throttling threshold; documentation only mentions peak bandwidth and per‑request rate limits exist. Community tests show no single‑file throttling like EdgeOne; actual download performance depends more on origin bandwidth. However, the free tier is intended for personal projects and development/testing – using it for high‑traffic production may trigger risk‑control throttling.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Real‑World Performance and Node Coverage&lt;/h2&gt;
&lt;p&gt;Actual performance depends on file size, geographic location, and origin conditions. There&apos;s no absolute winner. Summary by scenario:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Small files (&amp;lt;10 MB): EdgeOne performs better.&lt;/strong&gt; EdgeOne provides L2 regional caching – if an edge node misses, it pulls from a regional cache node, improving hit rates across multiple edge nodes. ESA Free only has single‑layer edge caching, making cold content more likely to trigger origin pulls and causing greater performance variance. ESA&apos;s three‑tier caching is only available in paid plans.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Large files (&amp;gt;10 MB): ESA is better.&lt;/strong&gt; EdgeOne Free&apos;s single‑thread throttling significantly impacts large‑file transfers. ESA has bandwidth caps but no per‑file throttling – provided your origin has sufficient outbound bandwidth.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Node coverage:&lt;/strong&gt; ESA has slightly more domestic nodes; EdgeOne has broader overseas coverage with Anycast routing, mainly via Hong Kong, Japan, and Singapore nodes – better international access. ESA Free does not allocate Hong Kong direct‑connect nodes, making it nearly unusable for un‑filed domains within China.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cache preheating&lt;/strong&gt; is unavailable in both free tiers – it&apos;s a paid‑only feature.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Security Capabilities Comparison&lt;/h2&gt;
&lt;p&gt;Both free tiers include platform‑level DDoS mitigation, basic WAF, basic CC protection, and automatic SSL certificate issuance/renewal – sufficient for personal site security needs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;EdgeOne Free&lt;/strong&gt; offers more practical security features for site owners:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AI crawler management – intercept, challenge, or allow GPTBot, ClaudeBot, etc., while maintaining proper search engine indexing.&lt;/li&gt;
&lt;li&gt;Pre‑configured vulnerability protection rules to block common Web vulnerability scans.&lt;/li&gt;
&lt;li&gt;Multi‑dimensional access control – IP, geographic region, Referer, User‑Agent, and ASN‑based policies.&lt;/li&gt;
&lt;li&gt;Adaptive CC frequency control to mitigate malicious request floods.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;ESA Free&lt;/strong&gt; leans more basic – WAF and DDoS are available, but advanced capabilities like bot management and managed protection rules require upgrading to the Standard plan. ESA&apos;s advantage lies in origin protection – paid plans support encrypted tunnels between edge nodes and the origin to hide the origin IP.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Edge Ecosystem and Additional Capabilities&lt;/h2&gt;
&lt;p&gt;Many users view these solely as CDNs, but both are complete edge platforms with additional capabilities.&lt;/p&gt;
&lt;h3&gt;Static Site Hosting&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;EdgeOne Pages&lt;/strong&gt; integrates with GitHub for auto‑build and deployment from source code, with automatic domain binding and certificate issuance. It also supports Pages Functions (edge functions) and KV storage. Static blogs and documentation sites can be deployed with dynamic logic (comments, analytics, on‑site search) via edge functions – no server needed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ESA&lt;/strong&gt; also offers Pages static hosting with one‑click blog/demo deployment and edge function support. However, the ecosystem and documentation are less mature than EdgeOne Pages.&lt;/p&gt;
&lt;h3&gt;Edge Functions and Edge Containers&lt;/h3&gt;
&lt;p&gt;Both offer edge functions – JavaScript code executed at edge nodes, with auto‑scaling and zero maintenance. EdgeOne Free provides 3 million function invocations per month; exceeding that disables function rules. ESA Free also offers basic edge function capabilities.&lt;/p&gt;
&lt;p&gt;Additionally, ESA supports &lt;strong&gt;edge containers&lt;/strong&gt; – you can run container images directly, suitable for complex/heavy workloads in enterprise scenarios. EdgeOne currently focuses on edge functions as the primary solution.&lt;/p&gt;
&lt;h3&gt;Layer‑4 Proxy (L4)&lt;/h3&gt;
&lt;p&gt;Layer‑4 proxy forwards TCP/UDP traffic, enabling low‑latency access and DDoS protection for non‑HTTP services – games, real‑time audio/video, etc. This is primarily for enterprise paying customers and rarely used by personal sites.&lt;/p&gt;
&lt;h3&gt;DNS Hosting and Certificates&lt;/h3&gt;
&lt;p&gt;Both support DNS hosting. With NS‑mode access, resolution, acceleration, and certificates are all managed in one console, with DNS‑level DDoS protection. ESA supports CNAME flattening; enterprise versions support wildcard certificates.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Tip: If you&apos;re already using partitioned DNS resolution with another provider, stick with CNAME‑mode access rather than switching NS to avoid configuration conflicts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Logging and Other Features&lt;/h3&gt;
&lt;p&gt;EdgeOne Free supports basic community querying; full offline logs and real‑time logs are paid add‑ons. ESA Free doesn&apos;t support offline log export. Features like staged environment management and CAPTCHA sliders require ESA Standard or above.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Onboarding and Common Pitfalls&lt;/h2&gt;
&lt;p&gt;Both support &lt;strong&gt;NS‑mode&lt;/strong&gt; (change domain DNS servers) and &lt;strong&gt;CNAME‑mode&lt;/strong&gt; (add CNAME records with your existing DNS provider) – choose based on your existing DNS setup.&lt;/p&gt;
&lt;p&gt;Mainland China nodes &lt;strong&gt;require domain ICP filing&lt;/strong&gt;. Un‑filed domains can only use &quot;Global (excluding mainland China)&quot; acceleration regions. EdgeOne&apos;s international site claims free access without filing; the China site requires it. ESA Free is effectively unusable without filing.&lt;/p&gt;
&lt;p&gt;Frequently encountered issues:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ESA Free&lt;/strong&gt; has a review process after site submission – in some cases up to 2 business days. Plan ahead if your site is time‑sensitive.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;EdgeOne&lt;/strong&gt; may temporarily scale back edge nodes under large DDoS attacks – it auto‑recovers, but access quality may degrade during peak attacks.&lt;/li&gt;
&lt;li&gt;Both free tiers are intended for testing and personal non‑critical use – &lt;strong&gt;not recommended for production workloads&lt;/strong&gt;. Community cases show ESA Free triggering risk‑control throttling under high traffic.&lt;/li&gt;
&lt;li&gt;Product policies, campaigns, and quotas evolve rapidly – always check the latest official documentation before subscribing.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Paid Plan Pricing Reference&lt;/h2&gt;
&lt;p&gt;Free tiers are only suitable for testing and personal small sites. As your business scales, you&apos;ll need to upgrade. Price comparison:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Tencent Cloud EdgeOne&lt;/th&gt;
&lt;th&gt;Alibaba Cloud ESA&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Entry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Personal: 29.9 CNY/mo (50GB / 3M requests)&lt;/td&gt;
&lt;td&gt;Basic: 9.9 CNY/mo (50GB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mid&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Basic: 399 CNY/mo (500GB / 20M requests)&lt;/td&gt;
&lt;td&gt;Standard: 375 CNY/mo (500GB)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;High&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Standard: 3800 CNY/mo (3TB / 50M requests)&lt;/td&gt;
&lt;td&gt;Advanced: 3600 CNY/mo (3000GB)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;For comparable tiers, ESA is cheaper. Blocked traffic, HTTPS, and WAF requests are not counted against quotas – you won&apos;t get surprise bills during attacks. EdgeOne&apos;s paid advantages lie in feature completeness, intelligent acceleration strategies, overseas link quality, and the Pages ecosystem – ideal for users willing to pay for capabilities.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Selection Recommendations&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No ICP filing, want free access from China&lt;/td&gt;
&lt;td&gt;EdgeOne International free tier&lt;/td&gt;
&lt;td&gt;Hong Kong/Japan/Singapore nodes handle China access via Anycast; ESA Free has no Hong Kong direct‑connect, poor usability without filing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filed domain, personal blog / docs site with low traffic&lt;/td&gt;
&lt;td&gt;EdgeOne preferred&lt;/td&gt;
&lt;td&gt;Higher cache hit rates for small files, 200 subdomains per site, rich security extras&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image hosting, download sites, large‑file distribution&lt;/td&gt;
&lt;td&gt;ESA&lt;/td&gt;
&lt;td&gt;No single‑file throttling unlike EdgeOne&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need to manage many independent sites&lt;/td&gt;
&lt;td&gt;EdgeOne&lt;/td&gt;
&lt;td&gt;Up to 5 free plans per account&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need zero‑cost static hosting + edge capabilities&lt;/td&gt;
&lt;td&gt;EdgeOne Pages&lt;/td&gt;
&lt;td&gt;GitHub integration, auto‑build, KV, edge functions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Formal paid production workload&lt;/td&gt;
&lt;td&gt;ESA&lt;/td&gt;
&lt;td&gt;Lower cost at same tier, no bill inflation under attacks&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Important Notes&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Free tiers are officially positioned for personal projects and development/testing – &lt;strong&gt;no SLA guarantees&lt;/strong&gt;. Do not use them for core production workloads – risk of throttling or suspension.&lt;/li&gt;
&lt;li&gt;You can use both products simultaneously – split domains between them, or use smart DNS to route traffic across both to complement each other.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;For personal non‑critical workloads, &lt;strong&gt;EdgeOne Free&lt;/strong&gt; offers stronger overall capability. Though the application process is more involved, it provides generous subdomain quotas, excellent small‑file acceleration, good overseas access, and built‑in Pages static hosting.&lt;/p&gt;
&lt;p&gt;For large‑file distribution, or if you plan to purchase a paid plan later, &lt;strong&gt;ESA&lt;/strong&gt; has clear cost advantages – simple to activate and budget‑friendly.&lt;/p&gt;
&lt;p&gt;Whichever you choose, &lt;strong&gt;domain ICP filing is mandatory&lt;/strong&gt; for mainland China node access.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: Both products iterate quickly. Quotas, restrictions, and campaign rules in this article may change – always refer to official documentation for current information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Information compiled from public sources for reference only; not guaranteed to be fully accurate. Always check official documentation for the latest rules.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://help.aliyun.com/zh/edge-security-acceleration/esa/product-overview/free-plan&quot;&gt;Alibaba Cloud ESA Free Plan (Official Docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://help.aliyun.com/zh/edge-security-acceleration/esa/product-overview/package-function-comparison&quot;&gt;Alibaba Cloud ESA Plan Comparison (Official Docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloud.tencent.com/document/product/1552/94165&quot;&gt;Tencent Cloud EdgeOne Plan Comparison (Official Docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://edgeone.ai/zh/document/70405&quot;&gt;EdgeOne Free Plan Usage Guide (Official Docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://cloud.tencent.com/act/pro/eo-freeplan&quot;&gt;EdgeOne Free Plan Campaign (China Site)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://edgeone.ai/zh/get-free-plan&quot;&gt;EdgeOne Free Plan Speed Test Campaign (International)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.aliyun.com/article/1704294&quot;&gt;Alibaba Cloud ESA Free Tier Guide (Developer Community)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.shiina.fun/2025/09/21/aliyun-esa-vs-tencent-edgeone-free-cdn-china-2025-review&quot;&gt;Alibaba ESA vs Tencent EdgeOne Free CDN Comparison Review (Sep 2025)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.moguq.top/posts/26020501&quot;&gt;2026 ESA vs EdgeOne Comparison Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.yeqing.net/ESA-china&quot;&gt;Alibaba Cloud China ESA Free Tier Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://m.toutiao.com/group/7670092767774671386&quot;&gt;Alibaba ESA Free Tier Tightening / Traffic Threshold Reports&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>DeepSeek-V4-Flash Production API Public Beta</title><link>https://blog.yufurry.cn/posts/00000020/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000020/</guid><description>Just a short while ago, the official public beta of the DeepSeek-V4-Flash production‑ready API was released. Here&apos;s a look at what it can do.</description><pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As of today (July 31, 2026), DeepSeek has officially launched the &lt;strong&gt;public beta of the DeepSeek-V4-Flash production API&lt;/strong&gt;. It&apos;s been about three months since the V4 preview release on April 24 – and this update boils down to one key phrase: &lt;strong&gt;a massive leap in Agent capabilities&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;DeepSeek has directly published results from nine benchmarks, with multiple metrics significantly surpassing the previous V4-Pro-Preview. You could even say it&apos;s &quot;punching above its weight&quot; – reminiscent of the original V4 release that turned the hierarchy on its head.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000020/p-00000020-2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;A Quick Recap of the V4 Series&lt;/h2&gt;
&lt;p&gt;On April 24, 2026, DeepSeek dropped the V4 series unannounced, with two versions: Pro and Flash.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Comparison&lt;/th&gt;
&lt;th&gt;V4-Pro&lt;/th&gt;
&lt;th&gt;V4-Flash&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total Parameters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1.6T&lt;/td&gt;
&lt;td&gt;284B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Active Parameters&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;49B&lt;/td&gt;
&lt;td&gt;13B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architecture&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;MoE&lt;/td&gt;
&lt;td&gt;MoE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Max Output&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;td&gt;384K tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Pro is designed for maximum performance, going head‑to‑head with closed‑source flagship models. Flash, on the other hand, is much smaller in parameter count, trading size for lower latency and cost – all about cost‑effectiveness. What&apos;s interesting is that this production Flash now pushes Agent capabilities even beyond the preview Pro – despite having roughly an order of magnitude fewer parameters.&lt;/p&gt;
&lt;h2&gt;Nine Benchmark Results&lt;/h2&gt;
&lt;p&gt;Here are the full results from the official changelog:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Benchmark&lt;/th&gt;
&lt;th&gt;Score&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Terminal Bench 2.1&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;82.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NL2Repo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;54.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cybergym&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;76.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DeepSWE&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;54.4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Toolathlon Verified&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;70.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Agent Last Exam&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;25.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Automation Bench (Public)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;25.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DSBench-FullStack&lt;/strong&gt; (internal)&lt;/td&gt;
&lt;td&gt;68.7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DSBench-Hard&lt;/strong&gt; (internal)&lt;/td&gt;
&lt;td&gt;59.6&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A few things worth highlighting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Terminal Bench 2.1 scored 82.7&lt;/strong&gt; – DeepSeek previously reported V4-Pro-Preview at 67.9 on Terminal Bench 2.0. While 2.0 and 2.1 aren&apos;t directly comparable, it&apos;s still impressive for a lightweight model with only 13B active parameters.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cybergym at 76.7&lt;/strong&gt; – a cybersecurity attack/defence simulation test, showing solid performance in security‑adversarial scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DSBench-FullStack and DSBench-Hard&lt;/strong&gt; are internal test sets for full‑stack development and hard Coding Agent tasks. Publishing internal benchmarks signals DeepSeek&apos;s intention to position Flash as the go‑to foundation for developers and Agent applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The official disclosure also noted that for the public‑benchmark Code Agent tasks, they used the upcoming &lt;strong&gt;DeepSeek Harness minimal mode&lt;/strong&gt; as the testing framework, with max sampling, top_p=0.95, and temperature=1.0. Worth noting that this is the first time DeepSeek has officially named its own Harness testing framework – suggesting they&apos;re not just building stronger models, but also aiming to establish a standardised Agent evaluation ecosystem.&lt;/p&gt;
&lt;h2&gt;Same Model Architecture, Stronger Performance&lt;/h2&gt;
&lt;p&gt;The official statement is clear: &lt;strong&gt;The model architecture and size of DeepSeek-V4-Flash-0731 remain identical to V4-Flash‑preview – only the post‑training has been redone.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The base model hasn&apos;t changed – what&apos;s changed is the training methodology. This sends a clear signal: in the Agent capability race, there&apos;s still enormous room for improvement through post‑training strategies. Even with the same architecture, finer post‑training tuning can produce qualitative leaps in benchmark performance – which is more instructive for the industry than simply stacking more parameters.&lt;/p&gt;
&lt;p&gt;It&apos;s also worth mentioning that the V4 series has made aggressive optimisations for long‑context efficiency. In 1M‑token scenarios, Flash&apos;s per‑token inference cost is only about 10% of V3.2, and KV Cache usage has dropped significantly – long context is no longer a &quot;luxury for the wealthy.&quot; This is one of the reasons Flash can keep its pricing so low.&lt;/p&gt;
&lt;h2&gt;Native Responses API Support with Codex Adaptation&lt;/h2&gt;
&lt;p&gt;The production V4-Flash natively supports OpenAI&apos;s &lt;strong&gt;Responses API format&lt;/strong&gt; and is specifically adapted for &lt;strong&gt;Codex&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;All Codex clients – Codex CLI, ChatGPT desktop, and the VS Code Codex plugin – share the same configuration file. One configuration applies to all of them. DeepSeek also provides a one‑line PowerShell auto‑setup script:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The script automatically backs up existing configs, writes to the &lt;code&gt;models.json&lt;/code&gt; model registry (declaring context windows, inference tiers, tool call formats, etc.), modifies &lt;code&gt;config.toml&lt;/code&gt;, and validates syntax before writing back – aborting if anything goes wrong. Pretty reliable.&lt;/p&gt;
&lt;p&gt;One thing to note: currently only &lt;code&gt;deepseek-v4-flash&lt;/code&gt; supports Codex integration; V4-Pro is expected to gain support in early August.&lt;/p&gt;
&lt;h2&gt;Pricing&lt;/h2&gt;
&lt;p&gt;Flash continues its value‑for‑money approach. Official pricing (per million tokens, off‑peak):&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Off‑Peak Price&lt;/th&gt;
&lt;th&gt;Peak Price&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Input (cache hit)&lt;/td&gt;
&lt;td&gt;0.02 CNY&lt;/td&gt;
&lt;td&gt;0.04 CNY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Input (cache miss)&lt;/td&gt;
&lt;td&gt;1 CNY&lt;/td&gt;
&lt;td&gt;2 CNY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;2 CNY&lt;/td&gt;
&lt;td&gt;4 CNY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Concurrency Limit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2500&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Compared to V4-Pro (off‑peak input cache hit 0.025 CNY, cache miss 3 CNY, output 6 CNY), Flash&apos;s cost advantage is clear – especially with the generous 2500 concurrency limit for high‑throughput scenarios.&lt;/p&gt;
&lt;h3&gt;Peak/Off‑Peak Pricing&lt;/h3&gt;
&lt;p&gt;The V4 series also introduces an interesting mechanism: &lt;strong&gt;time‑of‑use pricing&lt;/strong&gt;, essentially bringing electricity market logic to compute:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Peak hours:&lt;/strong&gt; Weekdays, Beijing time 9:00‑12:00 and 14:00‑18:00 (7 hours per day)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Off‑peak hours:&lt;/strong&gt; The remaining 17 hours, plus weekends and public holidays&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All pricing doubles during peak hours – think of it as a &quot;meter&quot; on your tokens. Since the GPT‑3 era, large‑model API pricing has been flat‑rate; DeepSeek is the first in the industry to try this.&lt;/p&gt;
&lt;p&gt;Two important details:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;This only applies to developer API calls&lt;/strong&gt; – C‑端 users on the App/Web interface see no price change&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Off‑peak pricing matches previous rates&lt;/strong&gt; – it&apos;s not a &quot;discount&quot; after a price hike. The peak premium buys you priority compute access&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For developers, this opens up cost‑saving strategies: data cleaning, document summarisation, offline batch processing – tasks that don&apos;t need real‑time responses – can be shifted to nights or weekends to cut costs in half. For real‑time Agents, online customer service, and other peak‑sensitive scenarios, you&apos;ll need to optimise prompt length and caching to keep costs down. And with cache‑hit input pricing as low as 0.02 CNY per million tokens, caching your system prompts and knowledge‑base prefixes can further reduce spend.&lt;/p&gt;
&lt;h2&gt;Upgrade Scope&lt;/h2&gt;
&lt;p&gt;It&apos;s important to note that this upgrade &lt;strong&gt;only covers the V4-Flash API&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Updated:&lt;/strong&gt; DeepSeek-V4-Flash API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not updated:&lt;/strong&gt; DeepSeek-V4-Pro API&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Not updated:&lt;/strong&gt; App / Web model endpoints&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coming soon:&lt;/strong&gt; DeepSeek-V4-Pro production release (official says &quot;as soon as possible&quot; – rumoured for early August)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So if you&apos;re using the DeepSeek App or web interface, you won&apos;t notice any difference today. Also, the old &lt;code&gt;deepseek-chat&lt;/code&gt; and &lt;code&gt;deepseek-reasoner&lt;/code&gt; model names were deprecated on July 24 – they now map to &lt;code&gt;deepseek-v4-flash&lt;/code&gt; in non‑thinking and thinking modes, respectively.&lt;/p&gt;
</content:encoded></item><item><title>More Technical Insights into the Maimai DX Cabinet – V2</title><link>https://blog.yufurry.cn/posts/00000019/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000019/</guid><description>A follow-up to my previous post about Maimai DX cabinets – this one fills in some details I missed the first time around (aka I had nothing else to write so here&apos;s a quick update lol).</description><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Previous Article&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;/posts/00000004/&quot;&gt;Original post&lt;/a&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Changes in Newer Batch Cabinets&lt;/h2&gt;
&lt;p&gt;If you look closely, you&apos;ll notice some hardware changes in newer batches. These include the removal of the player camera (which was useless for the Chinese server anyway), and an upgrade of the base board from HX2 to HX2.1.&lt;/p&gt;
&lt;p&gt;Removing the player camera is actually a good thing – the USB hub power supply issue that caused a chance of 3100 errors on boot becomes less likely. Instead of leaving it there as a useless decoration, it&apos;s better to just remove it. The downside is that the Chinese server will most likely never enable this feature again – and you also lose a spot to put stuff on :)&lt;/p&gt;
&lt;p&gt;The upgrade from ALLS HX2 to HX2.1 should bring some performance improvements, though exactly how much is unclear. It could also just be supply chain management at work :)&lt;/p&gt;
&lt;p&gt;Here&apos;s the comparison between HX2 and HX2.1:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;HX2&lt;/th&gt;
&lt;th&gt;HX2.1&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Motherboard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Gigabyte MCH31AM-S2 H310&lt;/td&gt;
&lt;td&gt;Gigabyte MCH31AM-S2 H310&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CPU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Intel Core i3-8100&lt;/td&gt;
&lt;td&gt;Intel Core i3-8100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RAM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2x4GB&lt;/td&gt;
&lt;td&gt;2x4GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GPU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;NVIDIA GeForce GTX1050 Ti&lt;/td&gt;
&lt;td&gt;NVIDIA GeForce GTX1650 Ti&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SSD&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;TDK GBDisk GS1 120GB&lt;/td&gt;
&lt;td&gt;TDK GBDisk GS1 120GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HDD&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;WD5000LUCT 500GB&lt;/td&gt;
&lt;td&gt;WD5000LUCT 500GB&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;As you can see, apart from the GPU, there&apos;s not much change – mainly because the GTX 1050 Ti was discontinued.&lt;/p&gt;
&lt;p&gt;I only know for sure that the Chinese server cabinets got this upgrade. Not sure if the Japanese or international versions have been updated – I haven&apos;t found any info on that.&lt;/p&gt;
&lt;p&gt;There&apos;s a cabinet near me that&apos;s already been upgraded to HX2.1, but honestly, I didn&apos;t notice any significant difference in my personal experience. Maybe the HX2 just wasn&apos;t cutting it anymore and that&apos;s why they upgraded 🙂&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Buttons, Screen, and Touch Panel&lt;/h2&gt;
&lt;h3&gt;1. Screen&lt;/h3&gt;
&lt;p&gt;In my previous article, I mentioned why Japanese cabinets don&apos;t need as much force to make the screen flash white. But after some testing and playing on &lt;em&gt;mysterious&lt;/em&gt; machines at &lt;em&gt;mysterious&lt;/em&gt; locations, I&apos;ve realised there might be more factors at play.&lt;/p&gt;
&lt;p&gt;Both international and Japanese cabinets give me a feeling that they&apos;re not as solidly built as the Chinese ones – they feel softer. And when I actually looked at them, the gap between the touch panel and the screen is actually pretty similar to the Chinese cabinets. Besides, the touch panel is still a piece of glass – no matter how much it deforms, it&apos;s unlikely to hit the screen directly. So my suspicion is that the metal frame holding the touch panel might have different thickness or build quality compared to the Chinese version. After all, the Chinese cabinets are built locally based on specs from Japan – and hey, &quot;Made in China&quot; quality is something else 🙂&lt;/p&gt;
&lt;p&gt;Apart from the metal frame, it could also be the wooden board that holds the frame and screen together – the materials might differ. International and Japanese cabinets also use different screens from the Chinese ones, so screen quality could be a factor too. When you hit the buttons or the screen, the force transmits through the metal frame to the wooden backboard. If that board flexes more, the screen might shift back and forth. And since the screen isn&apos;t directly bolted to the backplate – just held by a few screws and brackets – if the screen is more prone to deformation, the LCD panel could shift and hit the backlight, causing that white flash. The Chinese cabinets might use sturdier wood and screens, so the same force doesn&apos;t cause the flash. Again – Made in China 🙂&lt;/p&gt;
&lt;p&gt;Newer cabinets use BOE screens, model &lt;strong&gt;DV430FHM-NN1&lt;/strong&gt;, with a resolution of &lt;strong&gt;1920x1080&lt;/strong&gt;, &lt;strong&gt;16:9&lt;/strong&gt; aspect ratio, and &lt;strong&gt;60Hz&lt;/strong&gt; refresh rate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000019/p-00000019-2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000019/p-00000019-3.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2. Buttons and Touch Panel&lt;/h3&gt;
&lt;h4&gt;2.1 Buttons&lt;/h4&gt;
&lt;p&gt;Honestly, I personally prefer the feel of the original Japanese buttons over the Chinese ones. I like the softer feel of the Japanese buttons, and the click sound is crisp and satisfying – the Chinese buttons sound dull and feel less responsive.&lt;/p&gt;
&lt;p&gt;Once you&apos;ve tried the Japanese buttons, it&apos;s hard to go back – the sound is just so pleasant. But there are ways to optimise Chinese buttons to get closer to that Japanese feel.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For the feel:&lt;/strong&gt; The most direct method is to replace the spring leaves. Just search for the Japanese copper spring leaves – you can find them on various channels, or if you have the means, buy directly from SEGA in Japan. They&apos;re also available on second‑hand markets or Taobao.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For the sound:&lt;/strong&gt; The dull sound of Chinese buttons is mainly due to the EVA foam padding used as a dampener – it absorbs a lot of the impact and compresses significantly, creating a sticky, mushy feel. My solution for my own controller and my friends&apos; cabs is to buy official Wahlap buttons, remove the EVA foam pad, and replace it with a rubber pad (10mm wide, 1mm thick). This swaps out the EVA foam for rubber. However, rubber does get slightly sticky on the surface – especially in hot weather when it feels like it&apos;s &quot;sweating&quot; – so I recommend covering the rubber surface with a layer of tape, like PET tape.&lt;/p&gt;
&lt;p&gt;Of course, an even more direct solution is to just buy SEGA buttons outright. You can get them through various &lt;em&gt;mysterious&lt;/em&gt; channels or directly from SEGA Japan (though they&apos;re pretty hard to get in mainland China).&lt;/p&gt;
&lt;p&gt;(Wahlap official parts are pricey – spring leaves are 30 CNY each, optical sensors are 30 CNY each, button casings are 80 CNY each, decorative rings are 80 CNY each, and the mounting frame and base plate are also 80 CNY each. The touch sensor glass panel? A whopping 7,500 CNY.)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000019/p-00000019-4.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h4&gt;2.2 Touch Panel&lt;/h4&gt;
&lt;p&gt;A very common issue on older cabinets is the touch panel&apos;s metal frame rusting. After just one play session, white gloves turn yellow. Rather than spending a fortune on a replacement metal frame, a more common fix is to apply anti‑rust tape along the edges of the frame.&lt;/p&gt;
&lt;p&gt;Here&apos;s a solution shared by &lt;a href=&quot;https://www.bilibili.com/opus/966948621883801639&quot;&gt;菜子头Nanoko&lt;/a&gt; – check it out.&lt;/p&gt;
&lt;p&gt;The solution I use is a bit more hardcore. A while back, I was asked by an arcade in a certain region to service their Maimai and Chunithm machines, and I used this approach: use an angle grinder to remove the rust, then repaint with anti‑rust metal paint. The overall result was pretty good – though unfortunately, I didn&apos;t take any photos at the time so I can&apos;t show you. One important note: there are ABS plastic spacers on the inside that isolate the metal frame from the touch glass. Don&apos;t over‑grind those areas, or the spacers won&apos;t sit flush and the glass won&apos;t be properly secured.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000019/p-00000019-5.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Build Your Own QQ Chatbot with Napcat &amp; AstrBot!</title><link>https://blog.yufurry.cn/posts/00000018/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000018/</guid><description>This guide will walk you through deploying AstrBot and NapCat with Docker on a Linux server to build your very own QQ AI chatbot.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;WARNING!!!&lt;/h2&gt;
&lt;p&gt;Using a personal QQ account to run a bot is technically against Tencent&apos;s Terms of Service and may result in your account being flagged or restricted. Do not use this for any illegal purposes! If your account gets flagged, we take no responsibility!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;AI large language models have been evolving rapidly, and QQ bots are becoming increasingly common. I&apos;ve wanted to build my own QQ bot for a while, but most solutions are quite involved – setting up environments, configuring protocols, and often spending a lot of time without even getting it to run properly.&lt;/p&gt;
&lt;p&gt;Then I came across the &lt;strong&gt;AstrBot + NapCat&lt;/strong&gt; combination – it&apos;s surprisingly easy to set up. AstrBot handles the &quot;brain&quot; (integrating AI models and managing various features), while NapCat handles sending and receiving QQ messages. The two communicate via the OneBot protocol, and the entire setup can be deployed with a single Docker command.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;What are AstrBot and NapCat?&lt;/h2&gt;
&lt;p&gt;In simple terms, &lt;strong&gt;AstrBot&lt;/strong&gt; is a chatbot framework that supports various AI large language models (DeepSeek, OpenAI, Gemini, etc.), complete with a plugin system and a web management panel – it&apos;s very feature-rich.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NapCat&lt;/strong&gt; is a protocol adapter for QQ. It simulates QQ client login and message handling, acting as a bridge that connects QQ to AstrBot.&lt;/p&gt;
&lt;p&gt;The flow looks something like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;You send a QQ message → NapCat receives it → AstrBot processes it → Calls the AI model → AstrBot generates a reply → NapCat sends it back to QQ
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before we start, you&apos;ll need the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;A Linux server&lt;/strong&gt; (at least 2 vCPU and 2 GB RAM recommended, Ubuntu 20.04+ or CentOS 7+)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A QQ account&lt;/strong&gt; (to be used as the bot – an older, regularly active account is preferred, as new accounts are more likely to get flagged)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;An LLM API Key&lt;/strong&gt; (for DeepSeek, you can sign up at &lt;a href=&quot;https://platform.deepseek.com&quot;&gt;platform.deepseek.com&lt;/a&gt; – they give free credits upon registration)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker and Docker Compose installed&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Deployment&lt;/h2&gt;
&lt;h3&gt;1. Create the Project Directory&lt;/h3&gt;
&lt;p&gt;SSH into your server and create a directory for the configuration files:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p /opt/astrbot &amp;amp;&amp;amp; cd /opt/astrbot
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. Write docker-compose.yml&lt;/h3&gt;
&lt;p&gt;Create a &lt;code&gt;docker-compose.yml&lt;/code&gt; file in this directory with the following content:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3.8&quot;

services:
  astrbot:
    image: soulter/astrbot:latest
    container_name: astrbot
    ports:
      - &quot;6185:6185&quot;
    volumes:
      - ./data:/AstrBot/data
      - ./astra_db:/AstrBot/astra_db
    restart: always
    networks:
      - astrbot-net

  napcat:
    image: mlikiowa/napcat-docker:latest
    container_name: napcat
    ports:
      - &quot;6099:6099&quot;
      - &quot;6195:6195&quot;
      - &quot;6199:6199&quot;
    environment:
      - NAPCAT_UID=0
      - NAPCAT_GID=0
      - WS_ENABLE=true
      - WS_URL=ws://astrbot:6199/ws
    volumes:
      - ./napcat/config:/usr/src/app/napcat/config
      - ./napcat/QQ:/root/.config/QQ
    restart: always
    networks:
      - astrbot-net

networks:
  astrbot-net:
    driver: bridge
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A few important notes about this configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;WS_ENABLE=true&lt;/code&gt; enables NapCat&apos;s WebSocket client mode&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WS_URL=ws://astrbot:6199/ws&lt;/code&gt; is the key – it tells NapCat to connect to AstrBot&apos;s WebSocket service. Make sure to include &lt;code&gt;/ws&lt;/code&gt; at the end, otherwise the connection will fail&lt;/li&gt;
&lt;li&gt;Both containers communicate via the custom &lt;code&gt;astrbot-net&lt;/code&gt; network, so you don&apos;t need to worry about IP addresses&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If pulling Docker images is particularly slow for you, you can add a domestic mirror prefix to the image name, such as &lt;code&gt;m.daocloud.io/docker.io/soulter/astrbot:latest&lt;/code&gt;.&lt;/p&gt;
&lt;h3&gt;3. Start the Containers&lt;/h3&gt;
&lt;p&gt;Run the following command in the directory containing &lt;code&gt;docker-compose.yml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Wait about a minute, then check the status with &lt;code&gt;docker compose ps&lt;/code&gt;. Both containers should show &lt;code&gt;Up&lt;/code&gt; – that means they&apos;re running successfully.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Configuring NapCat (Logging into QQ)&lt;/h2&gt;
&lt;h3&gt;1. Get the WebUI Token&lt;/h3&gt;
&lt;p&gt;Run the following command to view NapCat&apos;s startup logs:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker logs napcat
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Look for a line containing something like &lt;code&gt;NapCat WebUI Login Token: xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&lt;/code&gt; and note down that Token.&lt;/p&gt;
&lt;h3&gt;2. Log into the WebUI&lt;/h3&gt;
&lt;p&gt;In your browser, visit &lt;code&gt;http://your_server_ip:6099&lt;/code&gt; and enter the Token you just retrieved to log in.&lt;/p&gt;
&lt;p&gt;Then follow the NapCat WebUI prompts to scan the QR code with your phone&apos;s QQ app to log in to your bot&apos;s QQ account.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Configuring AstrBot&lt;/h2&gt;
&lt;h3&gt;1. Access the Admin Dashboard&lt;/h3&gt;
&lt;p&gt;Open your browser and go to &lt;code&gt;http://your_server_ip:6185&lt;/code&gt;. The default username and password are both &lt;code&gt;astrbot&lt;/code&gt;. You&apos;ll be prompted to change the password on first login – after that, log back in.&lt;/p&gt;
&lt;h3&gt;2. Connect an AI Model&lt;/h3&gt;
&lt;p&gt;In the left sidebar, navigate to &lt;strong&gt;&quot;Model Providers&quot;&lt;/strong&gt; → &lt;strong&gt;&quot;Chat&quot;&lt;/strong&gt;, then click &lt;strong&gt;&quot;Add Provider&quot;&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Provider&lt;/strong&gt;: Select &lt;code&gt;DeepSeek/OpenAI API Compatible&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Address&lt;/strong&gt;: &lt;code&gt;https://api.deepseek.com/v1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API Key&lt;/strong&gt;: Paste the Key you obtained from DeepSeek&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Model&lt;/strong&gt;: Enter &lt;code&gt;deepseek-chat&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Create a Bot Instance&lt;/h3&gt;
&lt;p&gt;In the left sidebar, go to &lt;strong&gt;&quot;Bots&quot;&lt;/strong&gt; → &lt;strong&gt;&quot;Create Bot&quot;&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Platform Type&lt;/strong&gt;: Select &lt;code&gt;QQ Personal Account (OneBot v11)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WebSocket Address&lt;/strong&gt;: &lt;code&gt;0.0.0.0:6199&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reverse WebSocket Token&lt;/strong&gt;: Leave blank&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enabled&lt;/strong&gt;: Toggle on&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After saving, restart AstrBot and watch the logs. If you see a message like &lt;code&gt;[Info] Connected to OneBot v11 client&lt;/code&gt;, that means AstrBot and NapCat have successfully established a connection.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Verify It Works&lt;/h2&gt;
&lt;p&gt;Once all steps above are completed, send a message to your bot from another QQ account to test it. Under normal circumstances, the bot will call the DeepSeek API to generate a response.&lt;/p&gt;
&lt;p&gt;You can also customise the bot&apos;s response style by configuring the System Prompt (persona) in the AstrBot admin dashboard.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Common Issues&lt;/h2&gt;
&lt;h3&gt;1. Docker image pull is too slow?&lt;/h3&gt;
&lt;p&gt;Use a domestic mirror by prefixing the image name with &lt;code&gt;m.daocloud.io/docker.io/&lt;/code&gt;, for example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;image: m.daocloud.io/docker.io/soulter/astrbot:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. WebSocket connection fails?&lt;/h3&gt;
&lt;p&gt;Check these points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does &lt;code&gt;WS_URL&lt;/code&gt; end with &lt;code&gt;/ws&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Are both containers on the same Docker network?&lt;/li&gt;
&lt;li&gt;Is port &lt;code&gt;6199&lt;/code&gt; open in your cloud server&apos;s security group?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. QQ account got flagged/restricted?&lt;/h3&gt;
&lt;p&gt;Tencent&apos;s anti‑bot mechanisms are beyond our control. We recommend using an older, regularly active account, avoid frequently restarting containers (which causes repeated logins), and refrain from sending sensitive content.&lt;/p&gt;
&lt;h3&gt;4. How to update?&lt;/h3&gt;
&lt;p&gt;In the project directory, run:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose pull
docker compose down
docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5. How to back up?&lt;/h3&gt;
&lt;p&gt;Simply archive the &lt;code&gt;./data&lt;/code&gt;, &lt;code&gt;./napcat&lt;/code&gt;, and &lt;code&gt;./astra_db&lt;/code&gt; directories. To restore, extract the backup files back into place and restart the containers.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;With AstrBot + NapCat + Docker, you can go from zero to a fully functional QQ bot in about 10 minutes. And AstrBot offers much more than what&apos;s covered here – it also has a plugin system, MCP service extensions, multi‑platform support, and more. Feel free to explore on your own!&lt;/p&gt;
</content:encoded></item><item><title>Using UnityExplorer to Retrieve Three Encrypted Values from a Certain 8‑Button Rhythm Game&apos;s Chinese Server</title><link>https://blog.yufurry.cn/posts/00000017/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000017/</guid><description>This guide assumes you can already launch the game and have MelonLoader set up.</description><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;WARNING!!!&lt;/h2&gt;
&lt;p&gt;This article does not include any software programs. It is for reference and educational purposes only. Do not use for illegal activities!&lt;/p&gt;
&lt;p&gt;Due to its nature, this content may carry copyright/DMCA risks. If you believe this infringes upon the copyright of any software, please contact me and I will remove it.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Main Content&lt;/h2&gt;
&lt;h3&gt;1. Download and Install UnityExplorer&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/sinai-dev/UnityExplorer/releases&quot;&gt;https://github.com/sinai-dev/UnityExplorer/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;We need the &lt;strong&gt;UnityExplorer.MelonLoader.Mono.zip&lt;/strong&gt; version.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000017/p-00000017-2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After downloading, you&apos;ll get a zip file. Extract it and you&apos;ll see two folders: &lt;strong&gt;Mods&lt;/strong&gt; and &lt;strong&gt;UserLibs&lt;/strong&gt;. Copy these into the game&apos;s installation directory.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000017/p-00000017-3.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once copied, launch the game.&lt;/p&gt;
&lt;hr /&gt;
&lt;h3&gt;2. Retrieve AesKey, AesIV, and ObfuscateParam&lt;/h3&gt;
&lt;p&gt;After launching the game, press &lt;strong&gt;F7&lt;/strong&gt; in‑game to open UnityExplorer. Click the leftmost tab in the top menu – &lt;strong&gt;Object Explorer&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Select &lt;strong&gt;Object Search&lt;/strong&gt;, then under &lt;strong&gt;Searching for&lt;/strong&gt;, choose &lt;strong&gt;Class&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000017/p-00000017-4.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Next, enter &lt;strong&gt;Net.CipherAES&lt;/strong&gt; in the &lt;strong&gt;Class filter&lt;/strong&gt; field, then click the &lt;strong&gt;Search&lt;/strong&gt; button.&lt;/p&gt;
&lt;p&gt;In the search results, click on &lt;strong&gt;Net.CipherAES&lt;/strong&gt;. In the &lt;strong&gt;Inspector&lt;/strong&gt; window that appears, look for &lt;strong&gt;CipherAES.AesKey&lt;/strong&gt; and &lt;strong&gt;CipherAES.AesIV&lt;/strong&gt; – these are the AesKey and AesIV values we need.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000017/p-00000017-5.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The same process applies to &lt;strong&gt;ObfuscateParam&lt;/strong&gt;. Simply change the &lt;strong&gt;Class filter&lt;/strong&gt; to &lt;strong&gt;Net.Packet.Packet&lt;/strong&gt; and click &lt;strong&gt;Search&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In the Inspector window, &lt;strong&gt;Packet.ObfuscateParam&lt;/strong&gt; is the value we&apos;re after.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000017/p-00000017-6.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>How to Clean a Maimai DX Arcade Cabinet</title><link>https://blog.yufurry.cn/posts/00000016/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000016/</guid><description>A while ago I cleaned the dust out of a Maimai DX cabinet at the arcade. It&apos;s been some time but I figured I&apos;d write a post about it anyway~</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The most important thing before cleaning a cabinet is to &lt;strong&gt;get permission from the arcade&lt;/strong&gt;. Never disassemble the machine without authorization! We also do not encourage non‑professionals to perform this themselves.&lt;/p&gt;
&lt;p&gt;If possible, having two or more people is highly recommended – the components are quite heavy, and the disassembly process can be tricky. Two people make things much easier.&lt;/p&gt;
&lt;p&gt;This article focuses mainly on how to remove the touch panel assembly for screen cleaning. Button maintenance will not be covered here.&lt;/p&gt;
&lt;p&gt;If you prefer a video guide, we recommend this one ↓&lt;/p&gt;
&lt;p&gt;&amp;lt;iframe width=&quot;100%&quot; height=&quot;468&quot; src=&quot;//player.bilibili.com/player.html?bvid=BV1aP411X7XX&amp;amp;p=1&quot; scrolling=&quot;no&quot; border=&quot;0&quot; frameborder=&quot;no&quot; framespacing=&quot;0&quot; allowfullscreen=&quot;true&quot;&amp;gt; &amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;Some photos in this article reference that video since I didn&apos;t capture all angles myself.&lt;/p&gt;
&lt;h2&gt;Preparation&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Keys&lt;/strong&gt; – for the front service panel and rear inspection hatch. Ask the arcade tech or staff.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Screwdrivers&lt;/strong&gt; – a Phillips screwdriver and a hex key set. Electric ones are better if available. It&apos;s also helpful to have a shorter screwdriver for tight spaces.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Wrench&lt;/strong&gt; – if the cabinet is against the wall and needs to be moved out, you&apos;ll need a wrench to loosen the leveling feet. An adjustable wrench is best.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Small brush&lt;/strong&gt; – for dusting. Arcades usually have vacuum cleaners on hand, which are very convenient.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Two cloths&lt;/strong&gt; – one dry, one damp.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power off&lt;/strong&gt; – It&apos;s best to shut down the machine before disassembly. Use the key to open the central service panel, where you&apos;ll find the power switch, or locate the switch at the bottom behind the 1P side.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Disassembly Steps&lt;/h2&gt;
&lt;h3&gt;1. Remove the Light Box (Top Marquee)&lt;/h3&gt;
&lt;p&gt;First, remove the front light box. This is relatively simple – a total of seven hex screws per side (7 on each P side), as shown below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-3.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Keep the removed screws in a container so they don&apos;t get lost.&lt;/p&gt;
&lt;p&gt;Once the screws are out, you can lift the entire light box off. It&apos;s a bit heavy – two people are recommended. If you need to set it on the floor, place something soft underneath to avoid scratches.&lt;/p&gt;
&lt;p&gt;After removal, use a vacuum to suck out the accumulated dust – this area usually holds the most. Then wipe it clean with a damp cloth.&lt;/p&gt;
&lt;p&gt;For the transparent acrylic part of the top frame, if available, use some acrylic cleaner. If not, a regular cleaner with a cloth will work fine.&lt;/p&gt;
&lt;h3&gt;2. Remove the Touch Panel Assembly&lt;/h3&gt;
&lt;p&gt;This step requires you to get behind the machine, so if it&apos;s up against a wall, you&apos;ll need to pull it out. If you can&apos;t move it easily, use a wrench to loosen the leveling feet. Since it&apos;s so heavy, I had to ask the arcade tech for help on this one 😅&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-4.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Once the machine is pulled out, open the rear upper inspection hatch – the 1P side uses hex screws, while the 2P side requires the key.&lt;/p&gt;
&lt;p&gt;Inside, you&apos;ll need to unplug &lt;strong&gt;five cables&lt;/strong&gt;. When unplugging, gently wiggle them side‑to‑side. Always hold the connector, not the wires – pulling by the wires can damage them. See image below:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-5.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;After all cables are disconnected, remove the &lt;strong&gt;six screws&lt;/strong&gt; – these are Phillips, so switch to your cross‑head screwdriver.&lt;/p&gt;
&lt;p&gt;(Since I didn&apos;t have a complete photo, here&apos;s a diagram from the manual instead~)&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-6.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;With all screws removed, go to the front of the cabinet. Lift the entire touch panel assembly upward, then pull it backward to detach it. It&apos;s quite heavy, so two people are strongly recommended.&lt;/p&gt;
&lt;p&gt;Once removed, you can clean the inside of the touch panel assembly. We recommend gently wiping with a &lt;strong&gt;dry cloth&lt;/strong&gt; – do &lt;strong&gt;not&lt;/strong&gt; use alcohol or any corrosive liquids, and avoid using a damp cloth.&lt;/p&gt;
&lt;p&gt;You can also clean the display panel underneath, as well as any other dusty areas inside the cabinet – a vacuum and a cloth work well here.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-7.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;3. Reassembly&lt;/h3&gt;
&lt;p&gt;Reassembly is simply the reverse of disassembly. Keep these points in mind:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Make sure the touch panel assembly is fully seated against the frame and securely fastened.&lt;/li&gt;
&lt;li&gt;Prefer &lt;strong&gt;manual screwdrivers&lt;/strong&gt; when re‑installing. If using an electric screwdriver, set the torque to a low setting – high torque can crack the wooden frame or acrylic panels.&lt;/li&gt;
&lt;li&gt;It&apos;s recommended to test the machine &lt;strong&gt;before&lt;/strong&gt; re‑installing the front light box – ensure everything works, then put it back.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4. Testing&lt;/h3&gt;
&lt;p&gt;Once powered on and in game, open the central service panel and press the &lt;strong&gt;&quot;test&quot;&lt;/strong&gt; button.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Button 1 = Up&lt;/li&gt;
&lt;li&gt;Button 4 = Down&lt;/li&gt;
&lt;li&gt;Button 5 = Confirm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Navigate to &lt;strong&gt;Touch Sensor Test&lt;/strong&gt; and press Button 5. Use Button 1 or 4 to select either 1P or 2P, then press Button 5 to confirm.&lt;/p&gt;
&lt;p&gt;Wait for the self‑test to complete, then test the touch sensors. If the arcade has the official touch test hammer, it&apos;s recommended for more accurate results. If not, wearing gloves also works.&lt;/p&gt;
&lt;p&gt;Of course, you can also just play a round to test things out!&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;Cleaning isn&apos;t actually that difficult – but the end result is a fresh, clean machine that feels great to play on. And just like that, you&apos;ve got yourself a sparkling new Dilabra (Maimai DX)!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-8.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;div style=&quot;display:flex;gap:10px;&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-9.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/07/00000016/p-00000016-10.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
</content:encoded></item><item><title>Building a Simple API Proxy with Cloudflare Workers</title><link>https://blog.yufurry.cn/posts/00000015/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000015/</guid><description>A couple of days ago, while integrating GitHub OAuth login into my website, I ran into a problem – mainland China servers can&apos;t directly access the GitHub API. So I decided to build a simple proxy using Cloudflare Workers.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;A couple of days ago, while integrating GitHub OAuth login into my website, I ran into a problem – mainland China servers can&apos;t directly access the GitHub API. I&apos;m sure many developers have encountered this issue, as GitHub&apos;s API is often unstable or times out when accessed from within China.&lt;/p&gt;
&lt;p&gt;There are several solutions: buying an overseas server to set up a proxy, using a VPN, using a third‑party proxy service, etc. Considering cost and stability, I ultimately chose to use Cloudflare Workers to build a simple API proxy.&lt;/p&gt;
&lt;h2&gt;Why Cloudflare Workers?&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Generous free tier&lt;/strong&gt; – 100,000 free requests per month, which is more than enough for personal projects&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Global CDN acceleration&lt;/strong&gt; – Cloudflare has nodes worldwide, providing fast access&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simple deployment&lt;/strong&gt; – Just a few lines of code, deployable directly from the Dashboard&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No server management&lt;/strong&gt; – Zero infrastructure to maintain&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As for the other options, here&apos;s why I didn&apos;t choose them:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Buying an overseas server&lt;/strong&gt; – Too expensive; I wanted a near‑zero‑cost solution&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using a VPN&lt;/strong&gt; – Essentially circumventing the firewall, which is illegal; using a proxy avoids this issue&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Third‑party proxy services&lt;/strong&gt; – Stability and security are questionable compared to a self‑hosted solution&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Implementation&lt;/h2&gt;
&lt;p&gt;The Cloudflare Workers code is very simple, written in JavaScript/TypeScript. The core idea is to forward requests to the GitHub API and return the response to the client.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export default {
  async fetch(request, env, ctx) {
    // Handle OPTIONS preflight requests
    if (request.method === &quot;OPTIONS&quot;) {
      return new Response(null, {
        headers: {
          &quot;Access-Control-Allow-Origin&quot;: &quot;*&quot;,
          &quot;Access-Control-Allow-Methods&quot;: &quot;GET,POST,OPTIONS&quot;,
          &quot;Access-Control-Allow-Headers&quot;: &quot;Content-Type&quot;
        }
      });
    }

    const reqUrl = new URL(request.url);
    let targetUrl;
    
    // /login path proxies to github.com, all others to api.github.com
    if (reqUrl.pathname.startsWith(&quot;/login&quot;)) {
      targetUrl = `https://github.com${reqUrl.pathname}${reqUrl.search}`;
    } else {
      targetUrl = `https://api.github.com${reqUrl.pathname}${reqUrl.search}`;
    }

    // Forward the request
    const forwardReq = new Request(targetUrl, {
      method: request.method,
      headers: request.headers,
      body: request.body
    });

    const resp = await fetch(forwardReq);
    const newResp = new Response(resp.body, resp);
    newResp.headers.set(&quot;Access-Control-Allow-Origin&quot;, &quot;*&quot;);
    
    return newResp;
  }
};
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Deployment Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sign up for Cloudflare&lt;/strong&gt; – Visit &lt;a href=&quot;https://dash.cloudflare.com/&quot;&gt;Cloudflare&lt;/a&gt; and create a free account&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Create a Worker&lt;/strong&gt; – In the Dashboard, expand &quot;Compute&quot; in the left navigation, click &quot;Workers &amp;amp; Pages&quot;, then click &quot;Create Application&quot; in the top right. Choose &quot;Start from Hello World&quot;, give it a name (e.g., &quot;github-api-proxy&quot;), and click &quot;Deploy&quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Paste the code&lt;/strong&gt; – Navigate to your project page, click &quot;Edit Code&quot; in the top right, and paste the code above into the editor&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set up a route (optional)&lt;/strong&gt; – If you have your own domain, you can set up custom routes in Workers &amp;amp; Pages → Routes. I strongly recommend binding your own domain&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deploy&lt;/strong&gt; – Click &quot;Deploy&quot; and your proxy is live&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After deployment, you&apos;ll have your own GitHub API proxy, accessible at something like: &lt;code&gt;https://your-worker.your-subdomain.workers.dev/&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Usage Example&lt;/h2&gt;
&lt;p&gt;Where you previously called the GitHub API directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://api.github.com/user
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now change it to:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://your-worker.your-subdomain.workers.dev/user
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Important Notes&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rate limiting&lt;/strong&gt; – The GitHub API has rate limits. Since your proxy still uses a single IP to make requests, be mindful of request frequency&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;HTTPS&lt;/strong&gt; – Cloudflare Workers provide HTTPS automatically – no extra configuration needed&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt; – The sample code above only ensures the service runs. In production, you should modify the code to add authentication, rate limiting, etc. – all easily achievable with a few code changes&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;WARNING&lt;/h2&gt;
&lt;p&gt;Using Cloudflare Workers to proxy GitHub may violate Cloudflare&apos;s Terms of Service and could result in your account being banned. Please take necessary precautions – limit request frequency, add authentication, etc. Most account bans are caused by excessive request rates or the proxy endpoint being leaked without authentication, leading to abuse by malicious parties. We recommend using this solution &lt;strong&gt;only in test environments&lt;/strong&gt;. For production use, proceed with caution and ensure proper security measures are in place. If possible, self‑host your own proxy server. This article is for learning and reference purposes only – we take no responsibility for any account bans or other issues arising from use of this solution.&lt;/p&gt;
</content:encoded></item><item><title>The Complete Guide to FRP (Fast Reverse Proxy) – Internal Network Penetration</title><link>https://blog.yufurry.cn/posts/00000013/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000013/</guid><description>A detailed guide on the principles, use cases, and complete setup of FRP (Fast Reverse Proxy) for exposing internal network services to the public internet securely.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Have you ever run into any of these frustrating situations?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You set up a NAS or home media server at home, but can&apos;t access it from outside&lt;/li&gt;
&lt;li&gt;You developed a web app that only works on your local network, and you can&apos;t share it with friends over the internet&lt;/li&gt;
&lt;li&gt;You have a Raspberry Pi or an internal server, but you can&apos;t remotely control it because you don&apos;t have a public IP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these problems can be solved with &lt;strong&gt;FRP (Fast Reverse Proxy)&lt;/strong&gt;. This article will walk you through the principles, use cases, and a complete step‑by‑step setup guide for FRP.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;1. What is FRP and What Can It Do?&lt;/h2&gt;
&lt;h3&gt;1.1 What is FRP?&lt;/h3&gt;
&lt;p&gt;FRP (Fast Reverse Proxy) is a high‑performance &lt;strong&gt;reverse proxy&lt;/strong&gt; application focused on &lt;strong&gt;internal network penetration&lt;/strong&gt;. It is written in Go and supports TCP, UDP, HTTP, HTTPS, and many other protocols. It can expose internal services to the public internet securely and conveniently via a node with a public IP address.&lt;/p&gt;
&lt;p&gt;Official GitHub repository: &lt;a href=&quot;https://github.com/fatedier/frp&quot;&gt;https://github.com/fatedier/frp&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;1.2 What Can FRP Do?&lt;/h3&gt;
&lt;p&gt;FRP has a wide range of use cases:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remote access to home NAS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Access your home NAS from outside to view files or stream media&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remote development &amp;amp; debugging&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Expose your local development service to the internet for third‑party testing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Build a private VPN&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Combine FRP with SSH for secure remote access&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Access LAN devices&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Such as IP cameras, printers, smart home devices, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WeChat/Alipay webhook development&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Receive external callbacks to your local service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Game servers / multiplayer hosting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Such as hosting a Minecraft server for friends&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h2&gt;2. Why Do We Need FRP?&lt;/h2&gt;
&lt;h3&gt;2.1 The Problem with Internal Network Devices&lt;/h3&gt;
&lt;p&gt;For hosts on the internet to communicate with each other, they need to know each other&apos;s public IP addresses. But in reality:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;IPv4 address exhaustion&lt;/strong&gt; – Global IPv4 addresses have long run out, making it difficult for regular users to obtain a public IP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NAT (Network Address Translation)&lt;/strong&gt; – Most users are behind a network topology like this:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;User Device → Home Router → ISP NAT → Internet
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Your home router assigns a private IP (192.168.x.x, 172.16.x.x, or 10.x.x.x), and your ISP may further use CGNAT (Carrier‑Grade NAT), sharing a small pool of public IPs among many users.&lt;/p&gt;
&lt;p&gt;The result is: &lt;strong&gt;the outside world cannot initiate a connection to any of your devices&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;2.2 Comparison of Common Solutions&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Solution&lt;/th&gt;
&lt;th&gt;Pros&lt;/th&gt;
&lt;th&gt;Cons&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commercial tools (like Ngrok, Hamachi)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Works out of the box&lt;/td&gt;
&lt;td&gt;Free tiers are rate‑limited/throttled, contain ads, require payment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IPv6&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Direct addressing&lt;/td&gt;
&lt;td&gt;Some ISPs restrict it, older devices don&apos;t support it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Apply for a public IP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Truly public access&lt;/td&gt;
&lt;td&gt;Some ISPs (e.g., China Telecom) may offer it; others (China Mobile/Unicom) generally don&apos;t&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;FRP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fully self‑controlled, supports multiple protocols&lt;/td&gt;
&lt;td&gt;Requires a cloud server (VPS)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;2.3 Advantages of FRP&lt;/h3&gt;
&lt;p&gt;Compared to other solutions, FRP offers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Full control&lt;/strong&gt; – Only a cheap cloud server (VPS) is needed, costing around $3‑5/month&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi‑protocol support&lt;/strong&gt; – TCP, UDP, HTTP, HTTPS, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;High performance&lt;/strong&gt; – Uses TCP connection multiplexing to save resources&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt; – Supports TLS encryption and authentication&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cross‑platform&lt;/strong&gt; – Works on Linux, Windows, macOS, Raspberry Pi, and more&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;3. How FRP Works – Detailed Explanation&lt;/h2&gt;
&lt;h3&gt;3.1 Core Components&lt;/h3&gt;
&lt;p&gt;FRP uses a &lt;strong&gt;C/S (Client/Server) architecture&lt;/strong&gt; with two core programs:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Runs On&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;frps&lt;/strong&gt; (Server)&lt;/td&gt;
&lt;td&gt;Public server (VPS)&lt;/td&gt;
&lt;td&gt;Receives external requests and forwards them to the internal client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;frpc&lt;/strong&gt; (Client)&lt;/td&gt;
&lt;td&gt;Internal device (PC/NAS/RPi)&lt;/td&gt;
&lt;td&gt;Actively connects to frps and registers local services&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;3.2 Workflow&lt;/h3&gt;
&lt;p&gt;FRP works as follows:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│                    Public Server (frps)                     │
│  ┌─────────┐                                                │
│  │  frps   │◄────── Control connection (TCP long‑live) ────► frpc │
│  │         │                                                │
│  │   Port  │◄──────── Data forwarding ────────────────── Internal Service │
│  │   Mapped │                                                │
│  └─────────┘                                                │
└─────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Outbound connection from internal network&lt;/strong&gt;: When frpc starts, it actively connects to frps&apos;s listening port (default 7000) and establishes a persistent TCP long connection&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Service registration&lt;/strong&gt;: frpc tells frps: &quot;I can proxy the local HTTP service at 127.0.0.1:8080&quot;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;External request arrives&lt;/strong&gt;: A user visits &lt;code&gt;http://public_ip:port&lt;/code&gt; or &lt;code&gt;http://domain&lt;/code&gt;, and DNS resolves to the frps server&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Smart routing&lt;/strong&gt;: frps finds the corresponding frpc based on the port number or HTTP Host header&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Data forwarding&lt;/strong&gt;: frps notifies frpc via the existing connection, the two establish a data channel, and all subsequent traffic is forwarded bidirectionally&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3.3 Supported Proxy Types&lt;/h3&gt;
&lt;p&gt;FRP supports multiple proxy types for different use cases:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Proxy Type&lt;/th&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Features&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;General port mapping&lt;/td&gt;
&lt;td&gt;SSH, RDP, game servers, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UDP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;UDP port mapping&lt;/td&gt;
&lt;td&gt;DNS, video streaming, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HTTP/HTTPS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web services&lt;/td&gt;
&lt;td&gt;Supports virtual hosting, automatic Host header handling&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;STCP/SUDP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Secure internal proxies&lt;/td&gt;
&lt;td&gt;No public port exposure; requires frpc on both ends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;XTCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;P2P direct connection&lt;/td&gt;
&lt;td&gt;After hole punching, traffic bypasses the server to save bandwidth&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h2&gt;4. FRP Setup – Step by Step&lt;/h2&gt;
&lt;h3&gt;4.1 Prerequisites&lt;/h3&gt;
&lt;p&gt;Before you start, you&apos;ll need:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;Linux public server&lt;/strong&gt; (VPS) – Ubuntu or CentOS recommended, minimum 1 vCPU 1 GB RAM&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;internal device&lt;/strong&gt; (Windows/Linux/macOS/Raspberry Pi)&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;domain name&lt;/strong&gt; (optional, but required for HTTP/HTTPS mode)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 Download FRP&lt;/h3&gt;
&lt;p&gt;Download the latest binary from the GitHub Releases page:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Download (choose the version for your system architecture)
wget https://github.com/fatedier/frp/releases/download/v0.62.0/frp_0.62.0_linux_amd64.tar.gz

# Extract
tar -xzf frp_0.62.0_linux_amd64.tar.gz
cd frp_0.62.0_linux_amd64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After extraction, you&apos;ll see the following files:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.
├── frpc          # Client binary
├── frpc.toml     # Client configuration
├── frps          # Server binary
├── frps.toml     # Server configuration
└── LICENSE
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The server and client use the same binary – just different config files. Let&apos;s separate them:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Create directories for server and client
mkdir -p /opt/frp/server
mkdir -p /opt/frp/client

# Server gets frps and frps.toml
mv frps frps.toml /opt/frp/server/

# Client gets frpc and frpc.toml
mv frpc frpc.toml /opt/frp/client/
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.3 Configure the Server (frps)&lt;/h3&gt;
&lt;p&gt;Edit the server config file &lt;code&gt;/opt/frp/server/frps.toml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[common]
# Server listening port – clients connect here
bindPort = 7000

# HTTP entry port (if using HTTP proxies)
vhostHttpPort = 8080

# HTTPS entry port (if using HTTPS proxies)
# vhostHttpsPort = 8443

# Authentication
auth.method = &quot;token&quot;
auth.token = &quot;your_strong_token_here&quot;  # Use a strong password

# Dashboard config (web admin interface)
webServer.addr = &quot;0.0.0.0&quot;
webServer.port = 7500
webServer.user = &quot;admin&quot;
webServer.password = &quot;your_dashboard_password&quot;

# Logging
log.to = &quot;/var/log/frp/frps.log&quot;
log.level = &quot;info&quot;
log.maxDays = 7

# Enable Prometheus metrics (optional)
enablePrometheus = true
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Remember to open ports &lt;code&gt;7000&lt;/code&gt;, &lt;code&gt;7500&lt;/code&gt;, &lt;code&gt;8080&lt;/code&gt;, etc., in your cloud server&apos;s security group.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Start the server:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Run in foreground (for testing)
./frps -c ./frps.toml

# Run in background
nohup ./frps -c ./frps.toml &amp;amp;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Using systemd (recommended):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# /etc/systemd/system/frps.service
[Unit]
Description = frp server
After = network.target

[Service]
Type = simple
ExecStart = /opt/frp/server/frps -c /opt/frp/server/frps.toml
Restart = always
RestartSec = 5

[Install]
WantedBy = multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Visit &lt;code&gt;http://your_server_ip:7500&lt;/code&gt;, enter the Dashboard username and password, and you&apos;ll see the admin interface.&lt;/p&gt;
&lt;h3&gt;4.4 Configure the Client (frpc)&lt;/h3&gt;
&lt;p&gt;Edit the client config file &lt;code&gt;/opt/frp/client/frpc.toml&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[common]
# Server address and port
serverAddr = &quot;your_server_ip&quot;
serverPort = 7000

# Authentication – must match the server
auth.method = &quot;token&quot;
auth.token = &quot;your_strong_token_here&quot;

# Logging
log.to = &quot;./frpc.log&quot;
log.level = &quot;info&quot;
log.maxDays = 7

# ==== TCP Proxy Example ====
# Map local port 22 to server port 6000
[[proxies]]
name = &quot;ssh&quot;
type = &quot;tcp&quot;
localIP = &quot;127.0.0.1&quot;
localPort = 22
remotePort = 6000

# ==== HTTP Proxy Example ====
# Map local web service at port 8080 to the server
[[proxies]]
name = &quot;web&quot;
type = &quot;http&quot;
localIP = &quot;127.0.0.1&quot;
localPort = 8080
customDomains = [&quot;your-domain.com&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Start the client:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Run in foreground
./frpc -c ./frpc.toml

# Run in background
nohup ./frpc -c ./frpc.toml &amp;amp;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4.5 Advanced: Access via Domain Name&lt;/h3&gt;
&lt;p&gt;If you have a domain, you can configure HTTP/HTTPS proxies to access internal services via the domain.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Additional server config&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# In frps.toml, make sure this is set
vhostHttpPort = 8080
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Client config&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[[proxies]]
name = &quot;web&quot;
type = &quot;http&quot;
localIP = &quot;127.0.0.1&quot;
localPort = 8080
customDomains = [&quot;web.your-domain.com&quot;]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then add a DNS record at your domain registrar:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;web.your-domain.com  →  your_server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now visiting &lt;code&gt;http://web.your-domain.com:8080&lt;/code&gt; will automatically forward to your internal service.&lt;/p&gt;
&lt;h3&gt;4.6 Advanced: Load Balancing&lt;/h3&gt;
&lt;p&gt;FRP supports load balancing across proxy groups, which is great for multi‑instance deployments:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[[proxy groups]]
name = &quot;web_group&quot;
type = &quot;load-balance&quot;
selector = &quot;round-robin&quot;
servers = [
    { name = &quot;web1&quot;, localIP = &quot;192.168.1.100&quot;, localPort = 8080 },
    { name = &quot;web2&quot;, localIP = &quot;192.168.1.101&quot;, localPort = 8080 },
]
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;5. Security Hardening Recommendations&lt;/h2&gt;
&lt;p&gt;FRP is powerful, but misconfiguration can introduce security risks. Here are some hardening tips:&lt;/p&gt;
&lt;h3&gt;5.1 Mandatory Security Measures&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Use a strong token&lt;/strong&gt; – Don&apos;t use simple passwords; generate a random, strong one&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Restrict Dashboard access&lt;/strong&gt; – Use firewall rules to allow only specific IPs to access port 7500&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enable TLS encryption&lt;/strong&gt; – Add &lt;code&gt;transport.tls.tlsCertFile&lt;/code&gt; and &lt;code&gt;transport.tls.tlsKeyFile&lt;/code&gt; in the &lt;code&gt;[common]&lt;/code&gt; section&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Avoid running as root&lt;/strong&gt; – Create a dedicated frp user&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;5.2 TLS Encryption Example&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# Server frps.toml
[common]
transport.tls.tlsCertFile = &quot;/path/to/cert.pem&quot;
transport.tls.tlsKeyFile = &quot;/path/to/key.pem&quot;
transport.tls.force = true

# Client frpc.toml
[common]
transport.tls.tlsCertFile = &quot;/path/to/cert.pem&quot;
transport.tls.tlsKeyFile = &quot;/path/to/key.pem&quot;
transport.tls.force = true
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2&gt;6. Common Issues&lt;/h2&gt;
&lt;h3&gt;Q1: Connection fails with &quot;login to server failed&quot;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Check that the server is running properly&lt;/li&gt;
&lt;li&gt;Verify that &lt;code&gt;serverAddr&lt;/code&gt;, &lt;code&gt;serverPort&lt;/code&gt;, and &lt;code&gt;auth.token&lt;/code&gt; match the server config&lt;/li&gt;
&lt;li&gt;Check firewall and security group rules to ensure the ports are open&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Q2: HTTP service is not accessible&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Confirm that &lt;code&gt;vhostHttpPort&lt;/code&gt; is set correctly on the server&lt;/li&gt;
&lt;li&gt;Check that the &lt;code&gt;customDomains&lt;/code&gt; in the client config resolves to the server IP&lt;/li&gt;
&lt;li&gt;Confirm DNS records have propagated&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Q3: How do I check connection status?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Visit the Dashboard (default &lt;code&gt;http://server_ip:7500&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Check the log files&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;sudo systemctl status frps&lt;/code&gt; to see the service status&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;7. Summary&lt;/h2&gt;
&lt;p&gt;FRP is a powerful and flexible internal network penetration tool. Through this article, you should now understand:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The basic concepts and use cases of FRP&lt;/li&gt;
&lt;li&gt;How FRP works under the hood&lt;/li&gt;
&lt;li&gt;Complete configuration for both the server and client&lt;/li&gt;
&lt;li&gt;Common security hardening measures&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Compared to commercial internal‑penetration tools, FRP offers greater control and flexibility – and it&apos;s completely open‑source and free. We hope this guide helps you better understand and use FRP.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;FRP Official GitHub: &lt;a href=&quot;https://github.com/fatedier/frp&quot;&gt;https://github.com/fatedier/frp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;FRP Official Documentation: &lt;a href=&quot;https://gofrp.org/en/docs/&quot;&gt;https://gofrp.org/en/docs/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Complete New Laptop Inspection Guide – From Unboxing to Stress Testing</title><link>https://blog.yufurry.cn/posts/00000011/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000011/</guid><description>A comprehensive walkthrough of the complete inspection process for a new laptop – from unboxing video recording, physical checks, activation status verification, skipping network setup, to stress testing and more.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;After purchasing a new laptop, a proper inspection process is critical. It not only ensures that you&apos;ve received a brand‑new, genuine product, but also helps you protect your rights if any issues are found. This guide starts from the unboxing and walks you through every step of the inspection, helping you thoroughly check your new machine.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 1: Unboxing – Record Everything&lt;/h2&gt;
&lt;h3&gt;Preparation&lt;/h3&gt;
&lt;p&gt;Before unsealing, prepare the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A phone or camera (make sure you have enough storage space)&lt;/li&gt;
&lt;li&gt;A well‑lit, stable filming environment&lt;/li&gt;
&lt;li&gt;A tripod or fixed mount (optional, but recommended)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Key Filming Points&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Show the outer shipping box&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Capture the tracking number clearly on camera&lt;/li&gt;
&lt;li&gt;Record the condition of the shipping box – any damage, crushing, or compression marks&lt;/li&gt;
&lt;li&gt;Film all angles of the package&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The unsealing process&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Record continuously from the moment you open the outer box&lt;/li&gt;
&lt;li&gt;Film the product box&apos;s seals and stickers – check if they are intact&lt;/li&gt;
&lt;li&gt;Note the location of the serial number label for later verification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unboxing details&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take out each accessory one by one and show them on camera&lt;/li&gt;
&lt;li&gt;Film the laptop, power adapter, manuals, warranty card, etc.&lt;/li&gt;
&lt;li&gt;Verify that the accessory list matches the official specifications&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pay special attention to the screen protective film and keyboard spacer paper:&lt;/strong&gt; New laptops usually have a paper spacer between the screen and keyboard to prevent the keyboard from leaving marks on the screen during shipping. This paper should be flat and undamaged – any missing or damaged spacer is a red flag&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Keep the recording uninterrupted from start to finish. If any problems are found, this video will be critical evidence for after‑sales support.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 2: Physical Inspection&lt;/h2&gt;
&lt;h3&gt;External Chassis Inspection&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check the casing&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Carefully inspect the A‑cover (lid), C‑cover (keyboard deck), and D‑cover (bottom panel) for scratches, dents, or scuffs&lt;/li&gt;
&lt;li&gt;Check corners for wear or deformation&lt;/li&gt;
&lt;li&gt;Look for uneven coating, bubbles, or peeling&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Screen inspection&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the screen surface for scratches, fingerprints, or dust&lt;/li&gt;
&lt;li&gt;Check if the screen bezel is evenly aligned and if there&apos;s any separation&lt;/li&gt;
&lt;li&gt;Test the hinge – it should open and close smoothly without any unusual noises&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check the screen protective film:&lt;/strong&gt; New screens usually have a film with branding or warning labels – confirm it&apos;s intact and free of bubbles&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check for keyboard imprints:&lt;/strong&gt; Look closely at the screen surface for any marks or imprints left by the keyboard keys – this is a key indicator of a used or refurbished unit&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Port inspection&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check all USB, HDMI, Type‑C, and other ports for signs of use&lt;/li&gt;
&lt;li&gt;Look inside the ports – they should be clean, with no oxidation or debris&lt;/li&gt;
&lt;li&gt;Confirm that the ports are properly aligned and not loose&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bottom panel inspection&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the bottom screws for any signs of tampering (paint chipping, scratches)&lt;/li&gt;
&lt;li&gt;Verify that the rubber feet are intact and complete&lt;/li&gt;
&lt;li&gt;Cross‑check the model and serial number on the bottom label against the box&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Keyboard and Touchpad Inspection&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Keyboard&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check that all keycaps are level – no crooked or missing keys&lt;/li&gt;
&lt;li&gt;Press every key – feel for normal tactile feedback, no sticking or unresponsive keys&lt;/li&gt;
&lt;li&gt;Test the backlight (if available) – it should be uniform, with no dead LEDs or uneven brightness&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pay special attention to common keys:&lt;/strong&gt; WASD, Space, Enter, etc. – check for visible wear or shine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Check keyboard cleanliness:&lt;/strong&gt; There should be no dust, hair, or debris between the keycaps&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Touchpad&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The surface should be smooth – no scratches or indentations&lt;/li&gt;
&lt;li&gt;Test multi‑touch gestures – two‑finger scrolling, pinch‑to‑zoom, etc. should be responsive&lt;/li&gt;
&lt;li&gt;Click feel should be crisp – left and right buttons should work properly&lt;/li&gt;
&lt;li&gt;Test edge gestures (e.g., three‑finger swipe to switch tasks)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 3: Critical Pre‑Power‑On Checks&lt;/h2&gt;
&lt;h3&gt;Power Adapter Check (Extremely Important)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;This is one of the most crucial ways to determine if the laptop has ever been activated:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Try to power on without plugging in the adapter&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New laptops ship with the battery in a protective state – charge is extremely low or completely drained&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A brand‑new laptop should NOT power on without the AC adapter connected&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;If it turns on without being plugged in, the laptop has been previously activated and used&lt;/li&gt;
&lt;li&gt;This is a strong indication of a display unit, a return, or a used machine – contact the seller immediately&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Connect the power adapter&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plug in the adapter first, then press the power button&lt;/li&gt;
&lt;li&gt;Check that the charging indicator lights up&lt;/li&gt;
&lt;li&gt;Some models may take a while to charge enough to boot for the first time – be patient&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Inspect the power adapter&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check for wear, scratches, or scuffs on the adapter body&lt;/li&gt;
&lt;li&gt;Inspect the power cord for kinks or signs of use&lt;/li&gt;
&lt;li&gt;Confirm that the model and wattage match the official specifications&lt;/li&gt;
&lt;li&gt;Check the plug for insertion marks (the metal contacts should be bright and free of oxidation)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Before Powering On&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Do NOT connect to the internet!&lt;/strong&gt; This is the most critical step. Windows will automatically activate once it goes online, and activation will affect your return/exchange rights.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What to expect on first boot:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;After connecting power and pressing the power button&lt;/li&gt;
&lt;li&gt;The screen lights up and the brand logo appears&lt;/li&gt;
&lt;li&gt;The Windows initial setup screen (OOBE – Out‑of‑Box Experience) appears&lt;/li&gt;
&lt;li&gt;If the system boots directly to the desktop or shows an existing user account, the device has been used before&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to Skip Network Activation&lt;/h3&gt;
&lt;h4&gt;Windows 11&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Method 1: Use a command to bypass&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When you reach the &quot;Let&apos;s connect you to a network&quot; screen, press &lt;code&gt;Shift + F10&lt;/code&gt; (on some models, &lt;code&gt;Shift + Fn + F10&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;In the command prompt that appears, type: &lt;code&gt;OOBE\BYPASSNRO&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The system will restart and return to the setup screen&lt;/li&gt;
&lt;li&gt;You will now see the option &quot;I don&apos;t have internet&quot; – select it&lt;/li&gt;
&lt;li&gt;Click &quot;Continue with limited setup&quot; to complete the offline setup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Method 2: End the process via Task Manager&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;At the network connection screen, press &lt;code&gt;Shift + F10&lt;/code&gt; to open Command Prompt&lt;/li&gt;
&lt;li&gt;Type &lt;code&gt;taskmgr&lt;/code&gt; to open Task Manager&lt;/li&gt;
&lt;li&gt;Find the &quot;Network Connection Flow&quot; process (or similar)&lt;/li&gt;
&lt;li&gt;Right‑click and select &quot;End Task&quot; – this will skip the network setup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Windows 10&lt;/h4&gt;
&lt;p&gt;Windows 10 usually offers the option &quot;I don&apos;t have internet&quot; directly. If not, the Windows 11 method (using the command) also works.&lt;/p&gt;
&lt;h3&gt;Initial System Checks&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;System information verification&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Right‑click &quot;This PC&quot; → &quot;Properties&quot; – check processor, RAM, and system type&lt;/li&gt;
&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt;, type &lt;code&gt;msinfo32&lt;/code&gt; – check detailed system information&lt;/li&gt;
&lt;li&gt;Confirm that the CPU model and RAM size match your purchase configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Disk check&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Right‑click the Start menu → &quot;Disk Management&quot;&lt;/li&gt;
&lt;li&gt;Check the partition layout and confirm that the total capacity matches the advertised size&lt;/li&gt;
&lt;li&gt;Note: The advertised capacity and the actual usable capacity will differ (due to different calculation methods) – this is normal&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Battery information&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;Win + X&lt;/code&gt; and select &quot;Windows PowerShell (Admin)&quot; or &quot;Terminal (Admin)&quot;&lt;/li&gt;
&lt;li&gt;Enter the command: &lt;code&gt;powercfg /batteryreport&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The system will generate a battery report, usually saved as &lt;code&gt;C:\Users\[username]\battery‑report.html&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Open the report and check the following key metrics:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&quot;Design Capacity&quot;&lt;/strong&gt; – the battery&apos;s rated capacity&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&quot;Full Charge Capacity&quot;&lt;/strong&gt; – the current maximum charge the battery can hold&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&quot;Cycle Count&quot;&lt;/strong&gt; – the number of charge/discharge cycles&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What to expect for a new laptop:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Design Capacity and Full Charge Capacity should be very close (within 5% difference)&lt;/li&gt;
&lt;li&gt;Cycle Count should be 0 or a single digit (1‑5 cycles is within normal factory testing range)&lt;/li&gt;
&lt;li&gt;If Cycle Count exceeds 10, or there is a significant capacity difference, it may be a display unit or a return&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;BIOS/UEFI Check&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restart the laptop and press the designated key to enter BIOS (common keys: F2, F10, Del, Esc – varies by brand)&lt;/li&gt;
&lt;li&gt;Check the system information in BIOS:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Serial Number&lt;/strong&gt; – should match the label on the chassis and the box&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BIOS Version&lt;/strong&gt; – confirm it&apos;s the latest version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hardware Configuration&lt;/strong&gt; – CPU, RAM, HDD/SSD info should match your configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Check the system time – it may be inaccurate on a new unit (this is normal)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Important:&lt;/strong&gt; Do not change any BIOS settings – just review and exit&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 4: Hardware Testing&lt;/h2&gt;
&lt;h3&gt;Screen Testing&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Dead/bright pixel test&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit online screen test websites (such as testufo.com, eizo.cn/monitor‑test, or screen.burnin.test)&lt;/li&gt;
&lt;li&gt;Cycle through solid‑color screens: white, black, red, green, blue, grey, etc.&lt;/li&gt;
&lt;li&gt;Carefully look for bright dots, dark dots, or colour anomalies&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test method:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;White screen: check for dark spots and colour deviations&lt;/li&gt;
&lt;li&gt;Black screen: check for bright spots and light bleed&lt;/li&gt;
&lt;li&gt;Colour screens: check for colour anomalies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Industry standard:&lt;/strong&gt; Grade‑A panels allow up to 3 defective pixels, but it&apos;s reasonable to expect a perfect screen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note:&lt;/strong&gt; Different brands have different dead‑pixel policies – understand them before purchasing&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Backlight bleed test&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Display a solid black screen in a dark room&lt;/li&gt;
&lt;li&gt;Inspect the edges of the screen from different angles for obvious light bleeding&lt;/li&gt;
&lt;li&gt;Some light bleed is normal on IPS panels, but it should not be excessive&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Colour and brightness&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check colour gradients – they should be smooth with no banding&lt;/li&gt;
&lt;li&gt;Adjust brightness – the backlight should respond smoothly with no flickering across the range&lt;/li&gt;
&lt;li&gt;Check for uneven colour temperature (yellow or blue tinting on one side)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Viewing angle test:&lt;/strong&gt; Tilt the screen up/down/left/right to check colour shift&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Refresh rate check:&lt;/strong&gt; Right‑click desktop → Display settings → Advanced display settings – confirm the available refresh rate matches the advertised specification&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Recommended Diagnostic Tools&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;CPU‑Z&lt;/strong&gt; – Detailed processor information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU‑Z&lt;/strong&gt; – Detailed graphics card information&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CrystalDiskInfo&lt;/strong&gt; – Hard drive health and power‑on time&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tuba Toolbox (图吧工具箱)&lt;/strong&gt; – An all‑in‑one toolkit bundling many diagnostic utilities&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Hard Drive Power‑On Time Check&lt;/h3&gt;
&lt;p&gt;Using CrystalDiskInfo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;strong&gt;&quot;Power On Count&quot;&lt;/strong&gt; and &lt;strong&gt;&quot;Power On Hours&quot;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;A brand‑new drive should have power‑on time under 10 hours (factory testing)&lt;/li&gt;
&lt;li&gt;Power‑on count should typically be under 50&lt;/li&gt;
&lt;li&gt;If the numbers are significantly higher, the unit may be a display model or a return&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 5: Stress Testing (Burn‑In)&lt;/h2&gt;
&lt;p&gt;The purpose of stress testing is to verify the laptop&apos;s stability and cooling performance under high load. The recommended test duration is 30 minutes to 1 hour.&lt;/p&gt;
&lt;h3&gt;Preparation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install necessary software&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AIDA64&lt;/strong&gt; – system stability test&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FurMark&lt;/strong&gt; – GPU stress test&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HWMonitor&lt;/strong&gt; or &lt;strong&gt;HWiNFO&lt;/strong&gt; – real‑time temperature and frequency monitoring&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Test environment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keep the room well‑ventilated&lt;/li&gt;
&lt;li&gt;Place the laptop on a hard, flat surface to ensure bottom air intakes are unobstructed&lt;/li&gt;
&lt;li&gt;Close unnecessary background applications&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;CPU Stress Test&lt;/h3&gt;
&lt;p&gt;Use AIDA64&apos;s FPU stress test:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open AIDA64, click &quot;Tools&quot; → &quot;System Stability Test&quot;&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;&quot;Stress FPU&quot;&lt;/strong&gt; (leave other options unchecked to test only the CPU)&lt;/li&gt;
&lt;li&gt;Click &quot;Start&quot; to begin the test&lt;/li&gt;
&lt;li&gt;Monitor the following:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CPU Temperature:&lt;/strong&gt; Should generally stay below 95°C. Ultra‑portables may reach 90‑100°C, while gaming laptops should be in the 85‑95°C range&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPU Frequency:&lt;/strong&gt; Should remain stable without significant throttling&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power Consumption:&lt;/strong&gt; Check if the CPU reaches its rated TDP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Stability:&lt;/strong&gt; Any blue screens, freezes, reboots, or application crashes?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test duration:&lt;/strong&gt; At least 15‑30 minutes to allow temperatures to stabilise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Record data:&lt;/strong&gt; Take screenshots of temperature and frequency curves for comparison&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;GPU Stress Test&lt;/h3&gt;
&lt;p&gt;Using FurMark:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open FurMark, select an appropriate resolution (1080p recommended) and anti‑aliasing level&lt;/li&gt;
&lt;li&gt;Click &quot;GPU stress test&quot; to begin&lt;/li&gt;
&lt;li&gt;Monitor the following:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GPU Temperature:&lt;/strong&gt; Should generally stay under 85°C, and should never exceed 90°C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FPS (Frames Per Second):&lt;/strong&gt; Should remain stable with no wild fluctuations&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visual Quality:&lt;/strong&gt; Any artifacts, screen tearing, flickering, or graphical corruption?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Power Consumption:&lt;/strong&gt; Check if the GPU reaches its rated TGP/TDP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Stability:&lt;/strong&gt; Any crashes, driver resets, or blue screens?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test duration:&lt;/strong&gt; 15‑30 minutes recommended&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Important:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;FurMark imposes a very high load and may cause temperatures to rise quickly – this is normal&lt;/li&gt;
&lt;li&gt;If the temperature exceeds 90°C and continues to rise, stop the test immediately&lt;/li&gt;
&lt;li&gt;On laptops with a MUX switch, ensure the dedicated GPU is being used for the test&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Combined Stress Test (Advanced)&lt;/h3&gt;
&lt;p&gt;Run AIDA64 FPU and FurMark simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This pushes the cooling system to its absolute limit, simulating the worst‑case scenario&lt;/li&gt;
&lt;li&gt;Test for 15‑30 minutes – no need to go longer&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Key observations:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;CPU and GPU temperature curves&lt;/li&gt;
&lt;li&gt;Whether severe throttling occurs (frequency drops significantly)&lt;/li&gt;
&lt;li&gt;Whether total power consumption reaches the system&apos;s thermal design limit&lt;/li&gt;
&lt;li&gt;If the system shuts down due to overheating or blue‑screens, there is a serious cooling problem&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expected behaviour:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Gaming laptops: CPU 85‑95°C, GPU 80‑85°C, with full performance delivery&lt;/li&gt;
&lt;li&gt;Ultra‑portables: CPU 90‑100°C with noticeable throttling – this is typical&lt;/li&gt;
&lt;li&gt;Fan speeds should reach maximum with noticeable noise, but it should be steady without any rattling&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Keyboard Surface Temperature Test&lt;/h3&gt;
&lt;p&gt;During and after the stress test:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Touch the keyboard area with your hand, especially the WASD keys, arrow keys, and the centre‑upper section&lt;/li&gt;
&lt;li&gt;Feel if any area is uncomfortable to touch (above 45°C becomes noticeably hot)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Normal:&lt;/strong&gt; Warm to the touch (35‑42°C) – should not affect normal use&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abnormal:&lt;/strong&gt; If any area is too hot to touch, it may indicate a cooling or heat‑pipe issue&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; Use a thermometer or infrared thermometer for more accurate temperature readings&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Fan Noise Test&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Pay attention to the fan sound during stress testing&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Normal:&lt;/strong&gt; A steady whooshing sound that increases with temperature&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Abnormal:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Grinding, squealing, or clicking sounds – may indicate bearing issues or debris&lt;/li&gt;
&lt;li&gt;Surging – the fan speed ramps up and down erratically&lt;/li&gt;
&lt;li&gt;Rattling accompanied by vibration – the fan may be loose or damaged&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Idle noise:&lt;/strong&gt; At low load, the fan should be nearly silent or completely off (on models with zero‑fan/stop‑start technology)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 6: Functional Testing&lt;/h2&gt;
&lt;h3&gt;Port Testing&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;USB ports&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect a USB drive or external hard drive – test data transfer&lt;/li&gt;
&lt;li&gt;Test each USB port individually – all should recognise devices&lt;/li&gt;
&lt;li&gt;Test the speed difference between USB 2.0 and 3.0/3.1/3.2 ports&lt;/li&gt;
&lt;li&gt;Test hot‑plug functionality – remove and re‑insert to see if the device is re‑recognised&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Audio jacks&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Plug in headphones and test left/right channel separation&lt;/li&gt;
&lt;li&gt;Play stereo music to confirm proper channel balance&lt;/li&gt;
&lt;li&gt;Test the microphone input – record and play back to check quality&lt;/li&gt;
&lt;li&gt;If there are multiple audio jacks, test each one&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Video output&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If available (HDMI, DisplayPort, Type‑C with video out), connect to an external monitor or projector&lt;/li&gt;
&lt;li&gt;Confirm external display works and resolution/refresh rates are adjustable&lt;/li&gt;
&lt;li&gt;Test extended and mirrored display modes&lt;/li&gt;
&lt;li&gt;If a Thunderbolt port is available, test both data transfer and video output&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Card reader&lt;/strong&gt; (if available)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Insert an SD or TF card and test reading functionality&lt;/li&gt;
&lt;li&gt;Copy files to check read/write speeds&lt;/li&gt;
&lt;li&gt;Confirm supported card types (SD/SDHC/SDXC, etc.)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Ethernet port&lt;/strong&gt; (if available)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect a network cable and test wired connectivity&lt;/li&gt;
&lt;li&gt;Confirm the link indicator lights are blinking correctly&lt;/li&gt;
&lt;li&gt;Test network speed and stability&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Wireless Network Testing&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Wi‑Fi test&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Connect to Wi‑Fi and test network speed (use speedtest.net)&lt;/li&gt;
&lt;li&gt;Test signal strength – move to different locations and check signal variation&lt;/li&gt;
&lt;li&gt;Test both 2.4GHz and 5GHz bands (if supported)&lt;/li&gt;
&lt;li&gt;Test Wi‑Fi 6/6E/7 features (if your router supports them)&lt;/li&gt;
&lt;li&gt;Test network stability – download a large file to check for disconnections&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Bluetooth test&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pair Bluetooth devices (mouse, keyboard, headphones, speakers, etc.)&lt;/li&gt;
&lt;li&gt;Test connection stability and effective range&lt;/li&gt;
&lt;li&gt;Test audio quality and latency with Bluetooth audio devices&lt;/li&gt;
&lt;li&gt;Test simultaneous connection of multiple devices&lt;/li&gt;
&lt;li&gt;Check the Bluetooth version matches the advertised spec (view in Device Manager)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Camera and Microphone&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Camera&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open the Camera app and test the front‑facing camera (some models also have rear‑facing)&lt;/li&gt;
&lt;li&gt;Check image clarity and colour accuracy&lt;/li&gt;
&lt;li&gt;Test auto‑focus (if supported)&lt;/li&gt;
&lt;li&gt;Check low‑light performance&lt;/li&gt;
&lt;li&gt;Test any privacy shutter or physical cover (if available)&lt;/li&gt;
&lt;li&gt;Confirm the camera resolution matches the advertised spec (check in Camera settings)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Microphone&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the Voice Recorder app to record audio&lt;/li&gt;
&lt;li&gt;Play back to check quality, volume, and clarity&lt;/li&gt;
&lt;li&gt;Test noise cancellation (if supported)&lt;/li&gt;
&lt;li&gt;If there are multiple microphones, test the array pickup quality&lt;/li&gt;
&lt;li&gt;Test in a video call for real‑world performance&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Speaker Test&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Play different music genres (pop, classical, rock, etc.)&lt;/li&gt;
&lt;li&gt;Test left/right channel balance and stereo imaging&lt;/li&gt;
&lt;li&gt;Check for distortion, rattling, or buzzing at maximum volume&lt;/li&gt;
&lt;li&gt;Test bass and treble response&lt;/li&gt;
&lt;li&gt;If there are audio enhancements (Dolby Atmos, DTS, etc.), test the difference with them on/off&lt;/li&gt;
&lt;li&gt;Test at different volume levels to ensure no noticeable background hiss&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Other Feature Testing&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fingerprint reader&lt;/strong&gt; (if available)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enrol a fingerprint and test recognition speed and accuracy&lt;/li&gt;
&lt;li&gt;Test with wet or dirty fingers – see how it handles real‑world conditions&lt;/li&gt;
&lt;li&gt;Test Windows Hello login functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Face recognition&lt;/strong&gt; (if available)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set up Windows Hello face recognition&lt;/li&gt;
&lt;li&gt;Test recognition under different lighting conditions&lt;/li&gt;
&lt;li&gt;Test with glasses, hats, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Backlit keyboard&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Test brightness adjustment (if multiple levels are available)&lt;/li&gt;
&lt;li&gt;Check backlight uniformity – any dark spots?&lt;/li&gt;
&lt;li&gt;Test automatic backlight timeout&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Sensor testing&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gyroscope/Accelerometer:&lt;/strong&gt; Rotate the screen to test auto‑rotation (on 2‑in‑1s or tablets)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ambient light sensor:&lt;/strong&gt; Test automatic brightness adjustment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hall sensor:&lt;/strong&gt; Close the lid to check if the system goes to sleep&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Extended features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If there&apos;s a numeric keypad, test all keys&lt;/li&gt;
&lt;li&gt;If there are dedicated function keys, test media controls, airplane mode, etc.&lt;/li&gt;
&lt;li&gt;Test fingerprint‑power‑button combo (if supported)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 7: Software Activation &amp;amp; Driver Updates&lt;/h2&gt;
&lt;h3&gt;Activate Windows After Confirmation&lt;/h3&gt;
&lt;p&gt;Once all tests above are complete and no issues are found, you can connect to the internet and activate Windows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Connect to Wi‑Fi or wired network&lt;/li&gt;
&lt;li&gt;Windows will activate automatically, or you can manually enter your product key&lt;/li&gt;
&lt;li&gt;Sign in with your Microsoft account to sync settings&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Office Activation (if included)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Open any Office application (Word, Excel, etc.)&lt;/li&gt;
&lt;li&gt;Sign in with your Microsoft account&lt;/li&gt;
&lt;li&gt;Follow the prompts to activate the pre‑installed Office&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Driver Updates&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Official channels first&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit the laptop brand&apos;s official support website&lt;/li&gt;
&lt;li&gt;Download the latest drivers for your specific model&lt;/li&gt;
&lt;li&gt;Prioritise updates for: chipset, graphics, audio, and network drivers&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Windows Update&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run Windows Update and install recommended driver updates&lt;/li&gt;
&lt;li&gt;Note: Some drivers offered via Windows Update may not be the latest versions&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Avoid third‑party driver tools&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Do not use tools like Driver Booster, Driver Easy, or similar third‑party software&lt;/li&gt;
&lt;li&gt;They often bundle adware or install unnecessary content&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Common Issues &amp;amp; Important Notes&lt;/h2&gt;
&lt;h3&gt;About Returns and Exchanges&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;7‑day no‑questions‑asked return policy&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An unactivated system can be returned under the 7‑day policy&lt;/li&gt;
&lt;li&gt;Once activated, returns are generally not accepted unless there is a quality defect&lt;/li&gt;
&lt;li&gt;Keep the packaging and all accessories&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Quality defect criteria&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Screen pixel defects exceeding industry standards&lt;/li&gt;
&lt;li&gt;Hardware failures (unable to boot, frequent blue screens, etc.)&lt;/li&gt;
&lt;li&gt;Cosmetic defects (severe scratches, dents)&lt;/li&gt;
&lt;li&gt;Configuration does not match the advertised specifications&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;About Warranty&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Warranty start date&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usually based on the invoice date or the system activation date&lt;/li&gt;
&lt;li&gt;Keep your proof of purchase&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Warranty coverage&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Understand the official warranty policy&lt;/li&gt;
&lt;li&gt;Note that accidental damage is typically not covered&lt;/li&gt;
&lt;li&gt;Some brands offer accidental damage protection (ADP) as an add‑on&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Inspection Timeline&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Day 1:&lt;/strong&gt; Physical inspection, basic functional tests&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Within 1 week:&lt;/strong&gt; Stress testing, daily‑use experience&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ongoing:&lt;/strong&gt; Battery life monitoring, long‑term stability&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;While the full inspection process may seem lengthy, it&apos;s the most effective way to protect your rights. Here are the key takeaways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Record the entire unboxing process on video as evidence&lt;/li&gt;
&lt;li&gt;Scrutinise the physical condition – don&apos;t overlook any detail&lt;/li&gt;
&lt;li&gt;Complete all hardware checks before connecting to the internet&lt;/li&gt;
&lt;li&gt;Skip network activation to preserve your return rights&lt;/li&gt;
&lt;li&gt;Run thorough stress tests to verify cooling and stability&lt;/li&gt;
&lt;li&gt;Test every feature to ensure full functionality&lt;/li&gt;
&lt;li&gt;Only activate your software after confirming everything is fine&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;We hope this guide helps you complete your new laptop inspection smoothly and enjoy a worry‑free experience. If you discover any issues, contact your seller or brand support promptly.&lt;/p&gt;
</content:encoded></item><item><title>Complete Guide to Building a Website on Linux Using aaPanel (BT Panel)</title><link>https://blog.yufurry.cn/posts/00000010/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000010/</guid><description>A detailed guide on installing the aaPanel (BT Panel) on a Linux server and building a website from scratch.</description><pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;:::warning Important Note
The content of this article may differ from the actual situation due to aaPanel version updates. This guide is for reference and learning purposes only. For actual operations, please refer to the latest tutorials and documentation provided on the &lt;a href=&quot;https://www.bt.cn&quot;&gt;official aaPanel website&lt;/a&gt;.
:::&lt;/p&gt;
&lt;p&gt;For developers or webmasters who want to set up their own websites, traditional command-line operations can be complex and error-prone. aaPanel (formerly known as BT Panel) is an excellent server management tool that greatly simplifies the website deployment process. This article will walk you through installing aaPanel on a Linux server and using it to build a complete website.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;h3&gt;Server Requirements&lt;/h3&gt;
&lt;p&gt;Before you begin, you&apos;ll need the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A Linux server (CentOS 7.x, Ubuntu 18.04+, or Debian 9+ recommended)&lt;/li&gt;
&lt;li&gt;Root or sudo access to the server&lt;/li&gt;
&lt;li&gt;A stable internet connection&lt;/li&gt;
&lt;li&gt;Recommended specs: 1 CPU core, 1 GB RAM, 20 GB+ disk space&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Domain Name (Optional)&lt;/h3&gt;
&lt;p&gt;While you can access your site via IP address, a domain name provides a better user experience. You can purchase one from providers like Alibaba Cloud, Tencent Cloud, or any domain registrar.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Installing aaPanel&lt;/h2&gt;
&lt;h3&gt;Connect to Your Server&lt;/h3&gt;
&lt;p&gt;First, connect to your Linux server via SSH:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh root@your_server_ip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enter your password to log in.&lt;/p&gt;
&lt;h3&gt;Run the Installation Command&lt;/h3&gt;
&lt;p&gt;:::tip Note
The security entry parameter in the installation command below (e.g., &lt;code&gt;ed8484bec&lt;/code&gt;) is just an example. The system will generate a random security entry automatically during actual installation. Always use the latest official installation command from the aaPanel website.
:::&lt;/p&gt;
&lt;p&gt;Choose the appropriate installation command for your operating system:&lt;/p&gt;
&lt;h4&gt;CentOS / AlmaLinux / Rocky Linux&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;yum install -y wget &amp;amp;&amp;amp; wget -O install.sh https://download.bt.cn/install/install_6.0.sh &amp;amp;&amp;amp; sh install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Ubuntu / Debian&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh &amp;amp;&amp;amp; sudo bash install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Other Linux Distributions&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;wget -O install.sh https://download.bt.cn/install/install_6.0.sh &amp;amp;&amp;amp; bash install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::info Getting the Latest Command
Visit the &lt;a href=&quot;https://www.bt.cn&quot;&gt;official aaPanel website&lt;/a&gt; homepage to get the latest installation command for your specific operating system.
:::&lt;/p&gt;
&lt;h3&gt;Installation Process&lt;/h3&gt;
&lt;p&gt;After running the installation command, you&apos;ll be prompted to confirm. Type &lt;code&gt;y&lt;/code&gt; and press Enter to proceed. The installation typically takes 5–15 minutes, depending on your server&apos;s performance and network speed.&lt;/p&gt;
&lt;p&gt;Once completed, the terminal will display something like:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;==================================================================
Congratulations! Installed successfully!
==================================================================
External Panel URL: http://your_server_ip:random_port/random_security_entry
Internal Panel URL: http://your_local_ip:random_port/random_security_entry
username: random_username
password: random_password
Warning:
If you cannot access the panel,
release the following port (panel_port|80|443|20|21) in the security group
==================================================================
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;:::warning Important
Newer versions of aaPanel use random ports and random security entries by default, rather than the fixed 8888 port. Please carefully record the full access URL, username, and password displayed after installation.
:::&lt;/p&gt;
&lt;p&gt;Save this information somewhere safe – especially the access URL, username, and password.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Logging Into aaPanel&lt;/h2&gt;
&lt;h3&gt;Open Required Ports&lt;/h3&gt;
&lt;p&gt;Before logging in for the first time, ensure your server&apos;s security group has the necessary ports open:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;aaPanel Port:&lt;/strong&gt; The random port displayed after installation (not fixed at 8888)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;80:&lt;/strong&gt; HTTP&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;443:&lt;/strong&gt; HTTPS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;20/21:&lt;/strong&gt; FTP (if you need FTP access)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;3306:&lt;/strong&gt; MySQL (only if remote database access is required)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;:::tip Port Notes
Newer aaPanel versions use random ports for improved security. Check the installation output for your specific port number. If you&apos;re using a cloud server (e.g., Alibaba Cloud, Tencent Cloud), you&apos;ll need to open these ports in the cloud console&apos;s security group settings.
:::&lt;/p&gt;
&lt;h3&gt;Access the Panel&lt;/h3&gt;
&lt;p&gt;In your browser, enter the External Panel URL displayed after installation, for example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://your_server_ip:random_port/random_security_entry
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enter the username and password you recorded earlier to log in.&lt;/p&gt;
&lt;p&gt;:::warning Important
If you can&apos;t access the panel, check:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whether the server firewall has opened the panel port&lt;/li&gt;
&lt;li&gt;Whether the cloud security group has opened the panel port&lt;/li&gt;
&lt;li&gt;Whether the access URL is correct (including port number and security entry)
:::&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Initial Configuration&lt;/h3&gt;
&lt;p&gt;On first login, aaPanel will recommend installing a set of common software packages. For website hosting, we recommend the &lt;strong&gt;LNMP&lt;/strong&gt; stack:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nginx&lt;/strong&gt; – Web server&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MySQL&lt;/strong&gt; – Database&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP&lt;/strong&gt; – Scripting language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;phpMyAdmin&lt;/strong&gt; – Database management tool&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Choose the appropriate versions based on your needs, then click &quot;One‑Click Install&quot;. The installation may take some time, so please be patient.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Creating a Website&lt;/h2&gt;
&lt;h3&gt;Add a Site&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Website&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;&quot;Add Site&quot;&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Fill in the required information:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domain:&lt;/strong&gt; Enter your domain name (or use your IP address if you don&apos;t have a domain yet)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Root Directory:&lt;/strong&gt; The path for your website files – the default is fine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Database:&lt;/strong&gt; Choose whether to create a database and its type&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PHP Version:&lt;/strong&gt; Select the appropriate PHP version&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remark:&lt;/strong&gt; Optional – for identifying the site&apos;s purpose&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Submit&quot;&lt;/strong&gt; to create the site&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Upload Website Files&lt;/h3&gt;
&lt;h4&gt;Method 1: Upload via File Manager&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Files&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;Navigate to the site root directory (usually &lt;code&gt;/www/wwwroot/your_domain&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;&quot;Upload&quot;&lt;/strong&gt; button and select your local website files&lt;/li&gt;
&lt;li&gt;Wait for the upload to complete&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Method 2: Upload via FTP&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;FTP&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;View the FTP account details&lt;/li&gt;
&lt;li&gt;Connect to the server using an FTP client (e.g., FileZilla)&lt;/li&gt;
&lt;li&gt;Upload your files to the corresponding directory&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Method 3: Clone via Git&lt;/h4&gt;
&lt;p&gt;If your project is hosted on GitHub or another Git platform:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open a terminal in your site root directory&lt;/li&gt;
&lt;li&gt;Run the git clone command:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;cd /www/wwwroot/your_domain
git clone https://github.com/username/repo.git .
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Configure Your Site&lt;/h3&gt;
&lt;h4&gt;Basic Settings&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Settings&quot;&lt;/strong&gt; next to your site in the list&lt;/li&gt;
&lt;li&gt;You can modify the following:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Domain Management:&lt;/strong&gt; Add or remove domains&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Directory Binding:&lt;/strong&gt; Change the site root directory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traffic Limiting:&lt;/strong&gt; Set bandwidth limits&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rewrite Rules:&lt;/strong&gt; Configure URL rewrite rules (pseudo‑static)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;SSL Certificate Configuration&lt;/h4&gt;
&lt;p&gt;To enable HTTPS access for your site:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the site settings, click &lt;strong&gt;&quot;SSL&quot;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;&quot;Let&apos;s Encrypt&quot;&lt;/strong&gt; for a free certificate&lt;/li&gt;
&lt;li&gt;Check the domains you want to secure&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;&quot;Apply&quot;&lt;/strong&gt; button&lt;/li&gt;
&lt;li&gt;Once issued, enable &lt;strong&gt;&quot;Force HTTPS&quot;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Domain Name Resolution&lt;/h2&gt;
&lt;h3&gt;Get Your Server IP Address&lt;/h3&gt;
&lt;p&gt;You can find your public IP address on the aaPanel dashboard or in your server information.&lt;/p&gt;
&lt;h3&gt;Configure DNS Resolution&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Log in to your domain registrar&apos;s control panel (e.g., Alibaba Cloud, Tencent Cloud)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Find the DNS resolution settings&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add an &lt;strong&gt;A record&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Host Record:&lt;/strong&gt; &lt;code&gt;@&lt;/code&gt; (for the root domain) or &lt;code&gt;www&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Record Value:&lt;/strong&gt; Your server&apos;s IP address&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TTL:&lt;/strong&gt; Default is fine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wait for DNS propagation (typically takes anywhere from a few minutes to a few hours)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Verify Resolution&lt;/h3&gt;
&lt;p&gt;Use the &lt;code&gt;ping&lt;/code&gt; command to check if the domain resolves correctly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ping your_domain.com
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If it returns your server&apos;s IP address, the resolution is successful.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Security Optimisation&lt;/h2&gt;
&lt;h3&gt;Change the Panel Port&lt;/h3&gt;
&lt;p&gt;To improve security, it&apos;s recommended to periodically change the aaPanel access port:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;After logging in, click &lt;strong&gt;&quot;Panel Settings&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;Find the &lt;strong&gt;&quot;Panel Port&quot;&lt;/strong&gt; option&lt;/li&gt;
&lt;li&gt;Change it to an uncommon high port (e.g., between 10000‑65535)&lt;/li&gt;
&lt;li&gt;Save the settings and restart the panel service&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;:::warning Important
After changing the port, make sure to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the new port in your cloud security group&lt;/li&gt;
&lt;li&gt;Close the old port&apos;s security group rules&lt;/li&gt;
&lt;li&gt;Access the panel using the new port address
:::&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Set a Strong Password&lt;/h3&gt;
&lt;p&gt;Ensure your password is complex – include uppercase and lowercase letters, numbers, and special characters.&lt;/p&gt;
&lt;h3&gt;Enable the Firewall&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Security&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;Enable the system firewall&lt;/li&gt;
&lt;li&gt;Only open necessary ports&lt;/li&gt;
&lt;li&gt;Consider setting up IP whitelists to restrict access&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Keep Everything Updated&lt;/h3&gt;
&lt;p&gt;Regularly update aaPanel and all installed software:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Update&quot;&lt;/strong&gt; on the dashboard to check for the latest version&lt;/li&gt;
&lt;li&gt;Apply security patches promptly&lt;/li&gt;
&lt;li&gt;Update web servers, databases, and other components&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Backup Strategy&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Scheduled Tasks&quot;&lt;/strong&gt; in the left sidebar&lt;/li&gt;
&lt;li&gt;Add regular backup tasks:
&lt;ul&gt;
&lt;li&gt;Back up website files&lt;/li&gt;
&lt;li&gt;Back up databases&lt;/li&gt;
&lt;li&gt;Set retention periods&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;You can choose to back up locally or to remote storage&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Performance Optimisation&lt;/h2&gt;
&lt;h3&gt;Nginx Optimisation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Find Nginx in the App Store&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Settings&quot;&lt;/strong&gt; to optimise:
&lt;ul&gt;
&lt;li&gt;Enable gzip compression&lt;/li&gt;
&lt;li&gt;Adjust &lt;code&gt;worker_processes&lt;/code&gt; to match your CPU cores&lt;/li&gt;
&lt;li&gt;Configure caching strategies&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;PHP Optimisation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Adjust PHP settings:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;memory_limit&lt;/code&gt; – increase appropriately&lt;/li&gt;
&lt;li&gt;&lt;code&gt;max_execution_time&lt;/code&gt; – set a reasonable value&lt;/li&gt;
&lt;li&gt;&lt;code&gt;opcache&lt;/code&gt; – enable OPcache for speed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Database Optimisation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In MySQL settings:
&lt;ul&gt;
&lt;li&gt;Adjust &lt;code&gt;innodb_buffer_pool_size&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enable query caching&lt;/li&gt;
&lt;li&gt;Regularly optimise table structures&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Enable CDN (Optional)&lt;/h3&gt;
&lt;p&gt;For high‑traffic websites, consider using a CDN:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sign up for a CDN provider (e.g., Alibaba Cloud CDN, Tencent Cloud CDN)&lt;/li&gt;
&lt;li&gt;Point your domain&apos;s CNAME to the CDN‑provided address&lt;/li&gt;
&lt;li&gt;Configure your origin server settings in the CDN console&lt;/li&gt;
&lt;li&gt;Set caching policies and HTTPS certificates&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A CDN effectively reduces server load and improves user access speed, especially for static content delivery.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Monitoring &amp;amp; Maintenance&lt;/h2&gt;
&lt;h3&gt;Monitor Server Status&lt;/h3&gt;
&lt;p&gt;aaPanel provides comprehensive monitoring features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU usage&lt;/li&gt;
&lt;li&gt;Memory usage&lt;/li&gt;
&lt;li&gt;Disk space&lt;/li&gt;
&lt;li&gt;Network traffic&lt;/li&gt;
&lt;li&gt;System load&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Regularly check these metrics to catch potential issues early.&lt;/p&gt;
&lt;h3&gt;Log Management&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;View access logs and error logs in your site settings&lt;/li&gt;
&lt;li&gt;Analyse logs to identify problems&lt;/li&gt;
&lt;li&gt;Periodically clean old logs to free up space&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Common Issues &amp;amp; Fixes&lt;/h3&gt;
&lt;h4&gt;Website Not Accessible&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Check if the server is running&lt;/li&gt;
&lt;li&gt;Confirm the security group ports are open&lt;/li&gt;
&lt;li&gt;Verify domain resolution is correct&lt;/li&gt;
&lt;li&gt;Check Nginx/Apache error logs&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Database Connection Failed&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Confirm the database service is running&lt;/li&gt;
&lt;li&gt;Check database username and password&lt;/li&gt;
&lt;li&gt;Verify database permissions&lt;/li&gt;
&lt;li&gt;Check database error logs&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Pages Loading Slowly&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Check server resource usage&lt;/li&gt;
&lt;li&gt;Optimise website code and assets&lt;/li&gt;
&lt;li&gt;Enable caching mechanisms&lt;/li&gt;
&lt;li&gt;Consider upgrading server configuration&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Advanced Features&lt;/h2&gt;
&lt;h3&gt;Scheduled Tasks&lt;/h3&gt;
&lt;p&gt;Use aaPanel&apos;s scheduled tasks feature to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Periodically clean temporary files&lt;/li&gt;
&lt;li&gt;Automate backups&lt;/li&gt;
&lt;li&gt;Schedule service restarts&lt;/li&gt;
&lt;li&gt;Run custom scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Multi‑Site Management&lt;/h3&gt;
&lt;p&gt;aaPanel supports hosting multiple websites on a single server:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Each site has independent configuration&lt;/li&gt;
&lt;li&gt;Different domains can point to different directories&lt;/li&gt;
&lt;li&gt;Assign different PHP versions per site&lt;/li&gt;
&lt;li&gt;Separate databases and FTP accounts for each site&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Docker Support&lt;/h3&gt;
&lt;p&gt;aaPanel also includes Docker container management:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install Docker from the App Store&lt;/li&gt;
&lt;li&gt;Easily deploy various containerised applications&lt;/li&gt;
&lt;li&gt;Manage images and containers&lt;/li&gt;
&lt;li&gt;Configure container networking and storage&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;By following this guide, you should now have a solid understanding of the complete workflow for using aaPanel to build a website on a Linux server – from installation and site creation to domain configuration, security, and performance optimisation. aaPanel&apos;s intuitive graphical interface significantly lowers the barrier to website deployment.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key takeaways:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ensure your server meets the basic requirements before installation&lt;/li&gt;
&lt;li&gt;After first installation, promptly change default settings to improve security&lt;/li&gt;
&lt;li&gt;Configure your website parameters properly for optimal performance&lt;/li&gt;
&lt;li&gt;Establish regular backup and maintenance habits&lt;/li&gt;
&lt;li&gt;Choose the right optimisation strategies based on your actual needs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As you become more familiar with aaPanel, you can explore advanced features like load balancing and cluster deployment. We hope this tutorial helps you successfully launch your own website!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Further Reading&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bt.cn&quot;&gt;aaPanel Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.bt.cn/bbs/&quot;&gt;aaPanel Official Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nginx.org/en/docs/&quot;&gt;Nginx Performance Optimisation Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.mysql.com/doc/&quot;&gt;MySQL Optimisation Best Practices&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cyberciti.biz/tips/linux-security.html&quot;&gt;Linux Server Security Hardening&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Ultimate Windows Guide to Hosting a Minecraft Bedrock Server</title><link>https://blog.yufurry.cn/posts/00000009/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000009/</guid><description>A complete step‑by‑step guide to setting up a Minecraft Bedrock Edition server on Windows – supporting cross‑platform play across PC, mobile, consoles, and more.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;The Ultimate Windows Guide to Hosting a Minecraft Bedrock Server&lt;/h1&gt;
&lt;p&gt;Hey everyone! Following up on the Java Edition server guide, today we&apos;re covering &lt;strong&gt;Minecraft Bedrock Edition&lt;/strong&gt; server hosting. Bedrock&apos;s biggest advantage is &lt;strong&gt;cross‑platform play&lt;/strong&gt; – it lets players on Windows 10/11, mobile (iOS/Android), tablets, Xbox, Switch, and more all play together on the same server!&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Bedrock vs Java – What&apos;s the Difference?&lt;/h2&gt;
&lt;p&gt;Before we start, here&apos;s a quick comparison:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Java Edition&lt;/th&gt;
&lt;th&gt;Bedrock Edition&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Platforms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PC only (Windows/Mac/Linux)&lt;/td&gt;
&lt;td&gt;Multi‑platform (PC/mobile/consoles)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Language&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Java&lt;/td&gt;
&lt;td&gt;C++&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mod Support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rich (Forge/Fabric)&lt;/td&gt;
&lt;td&gt;Limited (plugins/Add‑ons)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Java‑dependent optimisation&lt;/td&gt;
&lt;td&gt;Native, better performance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Redstone&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Original mechanics&lt;/td&gt;
&lt;td&gt;Slightly different&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commands&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Traditional syntax&lt;/td&gt;
&lt;td&gt;Newer syntax&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best For&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;PC players, mod enthusiasts&lt;/td&gt;
&lt;td&gt;Cross‑platform, casual players&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which one should you choose?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you have friends on mobile or consoles → &lt;strong&gt;Bedrock&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;If you want lots of mods → &lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;If everyone is on PC and loves technical gameplay → &lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;h3&gt;1. System Requirements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OS:&lt;/strong&gt; Windows 10 or Windows 11 (64‑bit)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM:&lt;/strong&gt; At least 4 GB total (Bedrock is lighter than Java)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; Minimum 5 GB free space&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network:&lt;/strong&gt; Stable internet connection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Account:&lt;/strong&gt; Required for authentication&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Software You&apos;ll Need&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Minecraft Bedrock Dedicated Server&lt;/strong&gt; (official)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Text editor&lt;/strong&gt; (Notepad++ or VS Code recommended)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optional:&lt;/strong&gt; Port forwarding tools (for online play)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Bedrock servers &lt;strong&gt;do NOT require Java&lt;/strong&gt; – that&apos;s the biggest difference from Java Edition!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 1: Download the Bedrock Server&lt;/h2&gt;
&lt;h3&gt;Option A: Official Bedrock Dedicated Server (Recommended)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Visit the official download page&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.minecraft.net/en-us/download/server/bedrock&quot;&gt;https://www.minecraft.net/en-us/download/server/bedrock&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Choose the Windows version&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Look for &quot;Bedrock Dedicated Server for Windows&quot;&lt;/li&gt;
&lt;li&gt;Click the &quot;Download&quot; button – you&apos;ll get a .zip file&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Extract the files&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a folder on D: or E: drive, e.g., &lt;code&gt;D:\MC_Bedrock_Server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Right‑click the .zip → Extract Here&lt;/li&gt;
&lt;li&gt;Copy all files into &lt;code&gt;D:\MC_Bedrock_Server&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;File structure&lt;/strong&gt; – after extraction, you should see:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;D:\MC_Bedrock_Server\
├── bedrock_server.exe          # Main executable
├── bedrock_server_how_to.html  # Instructions
├── permissions.json            # Permission config
├── server.properties           # Server config
├── whitelist.json              # Whitelist
├── worlds\                     # World folder
└── ... other files
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Option B: Third‑Party Server Software (More Features)&lt;/h3&gt;
&lt;p&gt;If you want plugins or extra features, try these:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Popular alternatives:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PocketMine‑MP:&lt;/strong&gt; &lt;a href=&quot;https://pmmp.io/&quot;&gt;https://pmmp.io/&lt;/a&gt; (plugin‑supported)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nukkit:&lt;/strong&gt; &lt;a href=&quot;https://cloudburstmc.org/&quot;&gt;https://cloudburstmc.org/&lt;/a&gt; (Java‑based, cross‑platform)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LeviLamina:&lt;/strong&gt; &lt;a href=&quot;https://lamina.levimc.org/&quot;&gt;https://lamina.levimc.org/&lt;/a&gt; (lightweight)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;For beginners:&lt;/strong&gt; Start with the &lt;strong&gt;official server&lt;/strong&gt; – it&apos;s the simplest and most stable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 2: First Server Launch&lt;/h2&gt;
&lt;h3&gt;1. Direct Launch (Easiest)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to &lt;code&gt;D:\MC_Bedrock_Server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Double‑click &lt;code&gt;bedrock_server.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;A command prompt window will open&lt;/li&gt;
&lt;li&gt;Wait until you see something like:&lt;pre&gt;&lt;code&gt;Server started.
IPv4 supported, port: 19132
IPv6 supported, port: 19133
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Your server is running!&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The first launch generates a default world – this may take a minute or two.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2. Create a Startup Script (Recommended)&lt;/h3&gt;
&lt;p&gt;For easier management, create a &lt;code&gt;start.bat&lt;/code&gt; file:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In the server folder, right‑click → New → Text Document&lt;/li&gt;
&lt;li&gt;Rename it to &lt;code&gt;start.bat&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Right‑click and edit with Notepad, paste this:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;@echo off
title Minecraft Bedrock Server
echo Starting Minecraft Bedrock server...
echo.
bedrock_server.exe
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Save it – from now on, just double‑click &lt;code&gt;start.bat&lt;/code&gt; to launch.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. Firewall Configuration&lt;/h3&gt;
&lt;p&gt;On first launch, Windows Firewall may pop up:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;You&apos;ll see a &quot;Windows Security Alert&quot; window&lt;/li&gt;
&lt;li&gt;Check both &lt;strong&gt;&quot;Private&quot;&lt;/strong&gt; and &lt;strong&gt;&quot;Public&quot;&lt;/strong&gt; networks&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&quot;Allow access&quot;&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you missed the popup, set it manually:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Control Panel → Windows Defender Firewall → Advanced Settings&lt;/li&gt;
&lt;li&gt;Inbound Rules → New Rule&lt;/li&gt;
&lt;li&gt;Port → UDP → Specific local ports: &lt;code&gt;19132,19133&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Allow the connection&lt;/li&gt;
&lt;li&gt;Name the rule (e.g., &quot;Minecraft Bedrock Server&quot;) and save&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Bedrock uses &lt;strong&gt;UDP protocol&lt;/strong&gt;, not TCP!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 3: Configure the Server&lt;/h2&gt;
&lt;h3&gt;1. Edit server.properties&lt;/h3&gt;
&lt;p&gt;Shut down the server (press &lt;code&gt;Ctrl + C&lt;/code&gt; in the command window), then open &lt;code&gt;server.properties&lt;/code&gt; with Notepad.&lt;/p&gt;
&lt;p&gt;Here are the key settings and what they do:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# ===== Basic Settings =====

# Server name (shown in the server list)
server-name=Minecraft Bedrock Server

# Game mode: survival, creative, adventure
gamemode=survival

# Difficulty: peaceful, easy, normal, hard
difficulty=normal

# Allow cheats (commands)
allow-cheats=false

# Maximum number of players
max-players=10

# Server port (UDP)
server-port=19132

# IPv6 port
server-portv6=19133

# Online mode (premium authentication)
online-mode=true

# Enable whitelist
white-list=false

# Allow player damage
player-damage=true

# Drop items on death
drop-items-on-death=true

# ===== World Settings =====

# World name
level-name=Bedrock level

# World seed (leave blank for random)
level-seed=

# World type: default, flat, legacy
level-type=default

# Default permission level: member, operator, visitor
default-player-permission-level=member

# Generate structures (villages, fortresses, etc.)
generate-structures=true

# Bonus chest at spawn
bonus-chest-enabled=false

# Spawn protection radius (blocks)
spawn-protection=16

# ===== Performance Settings =====

# View distance (in chunks)
tick-distance=4

# Max threads (0 = auto)
max-threads=8

# Enable education features
education-feature-enabled=false

# ===== Other Settings =====

# MOTD (message of the day)
motd=A Minecraft Bedrock Server

# Emit server telemetry
emit-server-telemetry=true

# Content log file
content-log-file-enabled=false

# Compression threshold
compression-threshold=1

# Allow flight
allow-flight=false

# Client-side chunk generation
client-side-chunk-generation-enabled=true

# Encryption
encryption-enabled=true

# Texture pack required
texturepack-required=false

# Server authoritative movement
server-authoritative-movement=server-auth

# Correct player movement
correct-player-movement=true

# Server authoritative block breaking
server-authoritative-block-breaking=true
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. Important Settings Explained&lt;/h3&gt;
&lt;h4&gt;Game Mode&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;gamemode=survival    # Survival (recommended)
gamemode=creative    # Creative
gamemode=adventure   # Adventure (can&apos;t break blocks)
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Player Management&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Max players (adjust based on your upload speed)
# LAN: 10‑20
# Online: 5‑10 (depends on upload bandwidth)
max-players=10

# Default permission level
# member = regular player
# operator = admin (can use commands)
# visitor = spectator only
default-player-permission-level=member
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Online Mode (Authentication)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# true = only Microsoft‑authenticated accounts (recommended)
# false = offline accounts allowed (not recommended – security risk)
online-mode=true
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;World Generation&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Custom seed – find nice ones online
level-seed=-1234567890

# Superflat world (great for creative building)
level-type=flat

# View distance (affects performance)
# Low‑end PC: 2‑3
# Mid‑range: 4‑6
# High‑end: 8‑12
tick-distance=4
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Flight Settings&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Allow flight in survival mode
# Creative mode always allows flight
allow-flight=false
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. Save and Restart&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Save &lt;code&gt;server.properties&lt;/code&gt; (&lt;code&gt;Ctrl + S&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Restart the server (double‑click &lt;code&gt;start.bat&lt;/code&gt; or &lt;code&gt;bedrock_server.exe&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;New settings take effect&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 4: Connect to Your Server&lt;/h2&gt;
&lt;h3&gt;Local Connection (Same PC)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Minecraft Bedrock client&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Play&lt;/strong&gt; → &lt;strong&gt;Servers&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Scroll to the bottom and click &lt;strong&gt;Add Server&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Fill in:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Server Name:&lt;/strong&gt; Anything, e.g., &quot;My Server&quot;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Address:&lt;/strong&gt; &lt;code&gt;localhost&lt;/code&gt; or &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Port:&lt;/strong&gt; &lt;code&gt;19132&lt;/code&gt; (if unchanged)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click the server name to join&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;LAN Connection (Same WiFi)&lt;/h3&gt;
&lt;p&gt;Bedrock makes LAN discovery super easy!&lt;/p&gt;
&lt;h4&gt;Method A: Auto‑Discovery (Easiest)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Make sure all devices are on the &lt;strong&gt;same WiFi&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Start your server&lt;/li&gt;
&lt;li&gt;On mobile/tablet, open Minecraft&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Play&lt;/strong&gt; → &lt;strong&gt;Friends&lt;/strong&gt; tab&lt;/li&gt;
&lt;li&gt;Your server should appear automatically&lt;/li&gt;
&lt;li&gt;Tap to join&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Method B: Manual Addition&lt;/h4&gt;
&lt;p&gt;If auto‑discovery doesn&apos;t work:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Find your PC&apos;s local IP&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt;, type &lt;code&gt;cmd&lt;/code&gt;, hit Enter&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;ipconfig&lt;/code&gt; and press Enter&lt;/li&gt;
&lt;li&gt;Look for &lt;strong&gt;IPv4 Address&lt;/strong&gt; – e.g., &lt;code&gt;192.168.1.100&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Add server on other devices&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open Minecraft&lt;/li&gt;
&lt;li&gt;Play → Servers → Add Server&lt;/li&gt;
&lt;li&gt;Server Address: &lt;code&gt;192.168.1.100&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Port: &lt;code&gt;19132&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Save and join&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Make sure all devices are logged into Microsoft accounts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Online Connection (Let Friends Join from the Internet)&lt;/h3&gt;
&lt;h4&gt;Method A: Router Port Forwarding (Requires Public IP)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check if you have a public IP&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit &lt;a href=&quot;https://ip.cn&quot;&gt;https://ip.cn&lt;/a&gt; to see your public IP&lt;/li&gt;
&lt;li&gt;Log into your router and check the WAN IP&lt;/li&gt;
&lt;li&gt;If they match, you have a public IP&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Log into your router&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open browser to &lt;code&gt;192.168.1.1&lt;/code&gt; or &lt;code&gt;192.168.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Enter admin credentials&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set up port forwarding&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find &quot;Port Forwarding&quot;, &quot;Virtual Server&quot;, or &quot;NAT&quot;&lt;/li&gt;
&lt;li&gt;Add a rule:
&lt;ul&gt;
&lt;li&gt;External Port: &lt;code&gt;19132&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Internal Port: &lt;code&gt;19132&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Internal IP: your PC&apos;s IP&lt;/li&gt;
&lt;li&gt;Protocol: &lt;strong&gt;UDP&lt;/strong&gt; (important!)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Also add port &lt;code&gt;19133&lt;/code&gt; (IPv6)&lt;/li&gt;
&lt;li&gt;Save&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Give your public IP to friends&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They add: &lt;code&gt;your.public.ip:19132&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Example: &lt;code&gt;123.45.67.89:19132&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bedrock uses &lt;strong&gt;UDP&lt;/strong&gt;, not TCP!&lt;/li&gt;
&lt;li&gt;Make sure your router forwards UDP ports&lt;/li&gt;
&lt;li&gt;Public IP may change – consider using DDNS&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Method B: Tunneling Tools (No Public IP Needed)&lt;/h4&gt;
&lt;p&gt;If you don&apos;t have a public IP, use tunneling:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recommended tools:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SakuraFrp:&lt;/strong&gt; &lt;a href=&quot;https://www.natfrp.com/&quot;&gt;https://www.natfrp.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ngrok:&lt;/strong&gt; &lt;a href=&quot;https://ngrok.com/&quot;&gt;https://ngrok.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ZeroTier:&lt;/strong&gt; &lt;a href=&quot;https://www.zerotier.com/&quot;&gt;https://www.zerotier.com/&lt;/a&gt; (virtual LAN)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using SakuraFrp:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an account and download the client&lt;/li&gt;
&lt;li&gt;Create a tunnel:
&lt;ul&gt;
&lt;li&gt;Type: &lt;strong&gt;UDP&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Local IP: &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Local Port: &lt;code&gt;19132&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Start the tunnel – get a domain name&lt;/li&gt;
&lt;li&gt;Friends connect using that domain&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Using ZeroTier (great for small groups):&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;All players install ZeroTier&lt;/li&gt;
&lt;li&gt;Create a network and share the network ID&lt;/li&gt;
&lt;li&gt;Everyone joins the network&lt;/li&gt;
&lt;li&gt;Connect using the ZeroTier virtual IP&lt;/li&gt;
&lt;li&gt;No port forwarding needed – secure and easy&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Method C: Minecraft Realms (Official Solution)&lt;/h4&gt;
&lt;p&gt;If self‑hosting is too much hassle, consider Minecraft Realms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pros:&lt;/strong&gt; Official, stable, one‑click invites&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cons:&lt;/strong&gt; Paid subscription (~$7.99/month)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Purchase:&lt;/strong&gt; Directly in‑game&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 5: Server Administration&lt;/h2&gt;
&lt;h3&gt;Common Console Commands&lt;/h3&gt;
&lt;p&gt;In the server command window, type commands directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Show help
help

# Stop the server
stop

# Save the world
save hold      # Pause auto‑save
save resume    # Resume auto‑save
save query     # Check save status

# Grant OP (admin) privileges
op PlayerName

# Remove OP
deop PlayerName

# Ban a player
ban PlayerName

# Unban a player
pardon PlayerName

# List online players
list

# Change game mode (in‑game or console)
gamemode survival PlayerName
gamemode creative PlayerName
gamemode adventure PlayerName

# Teleport
tp Player1 Player2
tp PlayerName x y z

# Broadcast a message
say Hello everyone, welcome to the server!

# Set world spawn
setworldspawn
setworldspawn x y z

# List all game rules
gamerule

# Keep inventory on death
gamerule keepinventory true

# Set time
time set day
time set night
time set noon

# Set weather
weather clear
weather rain
weather thunder

# Change difficulty
difficulty peaceful
difficulty easy
difficulty normal
difficulty hard

# Kick a player
kick PlayerName

# Check server performance
tickingarea list
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Managing Player Permissions&lt;/h3&gt;
&lt;h4&gt;1. Using OP (Operator) Status&lt;/h4&gt;
&lt;p&gt;OPs have full command access.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# In console:
op Steve

# In‑game (if already OP):
/op Steve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OP players can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use all commands&lt;/li&gt;
&lt;li&gt;Ignore spawn protection&lt;/li&gt;
&lt;li&gt;Fly in any mode&lt;/li&gt;
&lt;li&gt;Break and place any block&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;2. Using a Whitelist&lt;/h4&gt;
&lt;p&gt;Allow only specific players to join:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Enable whitelist
whitelist on

# Add players (use Xbox Gamertag or Microsoft account name)
whitelist add Steve
whitelist add Alex

# Remove a player
whitelist remove Steve

# List whitelisted players
whitelist list

# Reload the whitelist
whitelist reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also enable in &lt;code&gt;server.properties&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;white-list=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then manually add players in &lt;code&gt;whitelist.json&lt;/code&gt;.&lt;/p&gt;
&lt;h4&gt;3. Editing permissions.json&lt;/h4&gt;
&lt;p&gt;Bedrock has a more granular permission system.&lt;/p&gt;
&lt;p&gt;Open &lt;code&gt;permissions.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[
  {
    &quot;permission&quot;: &quot;operator&quot;,
    &quot;xuid&quot;: &quot;1234567890123456&quot;
  },
  {
    &quot;permission&quot;: &quot;member&quot;,
    &quot;xuid&quot;: &quot;9876543210987654&quot;
  }
]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Permission levels:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;operator&lt;/code&gt; – full admin access&lt;/li&gt;
&lt;li&gt;&lt;code&gt;member&lt;/code&gt; – regular player&lt;/li&gt;
&lt;li&gt;&lt;code&gt;visitor&lt;/code&gt; – spectator only&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Getting a player&apos;s XUID:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When a player joins, their XUID shows in the console&lt;/li&gt;
&lt;li&gt;Or use online lookup tools&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Backing Up World Data&lt;/h3&gt;
&lt;p&gt;Regular backups are essential!&lt;/p&gt;
&lt;h4&gt;Manual Backup&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Stop the server (type &lt;code&gt;stop&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Copy the &lt;code&gt;worlds&lt;/code&gt; folder&lt;/li&gt;
&lt;li&gt;Paste to another location as backup&lt;/li&gt;
&lt;li&gt;Restart the server&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Automated Backup Script&lt;/h4&gt;
&lt;p&gt;Create &lt;code&gt;backup.bat&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
set backup_folder=D:\MC_Bedrock_Backup
set server_folder=D:\MC_Bedrock_Server
set date_str=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set date_str=%date_str: =0%

if not exist &quot;%backup_folder%&quot; mkdir &quot;%backup_folder%&quot;

echo Backing up Bedrock server...
xcopy &quot;%server_folder%\worlds&quot; &quot;%backup_folder%\worlds_%date_str%&quot; /E /I /Y

echo Backup complete!
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run this weekly, or before any major changes.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 6: Cross‑Platform Play Guide&lt;/h2&gt;
&lt;p&gt;Bedrock&apos;s biggest strength is cross‑platform play! Here are platform‑specific notes:&lt;/p&gt;
&lt;h3&gt;Windows 10/11 PC&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Buy Minecraft for Windows from the Microsoft Store&lt;/li&gt;
&lt;li&gt;Log in with a Microsoft account&lt;/li&gt;
&lt;li&gt;Fully compatible with mobile versions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Mobile / Tablet (iOS / Android)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Download from App Store or Google Play&lt;/li&gt;
&lt;li&gt;Paid purchase required (~$6.99‑$7.99)&lt;/li&gt;
&lt;li&gt;Touch‑optimised interface&lt;/li&gt;
&lt;li&gt;Fully cross‑plays with PC&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Xbox One / Series&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Requires Xbox Live Gold (for online play)&lt;/li&gt;
&lt;li&gt;Controller‑based&lt;/li&gt;
&lt;li&gt;Full cross‑platform support&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Nintendo Switch&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Requires Nintendo Switch Online membership&lt;/li&gt;
&lt;li&gt;Portable mode works too&lt;/li&gt;
&lt;li&gt;Slightly lower performance than other platforms&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;PlayStation 4 / 5&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Requires PlayStation Plus membership&lt;/li&gt;
&lt;li&gt;Supports cross‑play (requires linking Sony account to Microsoft account)&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; All players need a &lt;strong&gt;Microsoft account&lt;/strong&gt; for cross‑platform play.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 7: Performance Optimisation&lt;/h2&gt;
&lt;h3&gt;1. server.properties Optimisation&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# Lower view distance (biggest impact)
tick-distance=4

# Limit max players
max-players=10

# Adjust threads (based on CPU cores)
max-threads=4

# Disable unnecessary features
education-feature-enabled=false
content-log-file-enabled=false
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. System Optimisation&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Close background apps:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Browsers, video software, etc. – they steal CPU and RAM&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Set process priority:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Task Manager (&lt;code&gt;Ctrl + Shift + Esc&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Find &lt;code&gt;bedrock_server.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Right‑click → Go to Details&lt;/li&gt;
&lt;li&gt;Right‑click the process → Set Priority → High&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Power plan:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Control Panel → Power Options&lt;/li&gt;
&lt;li&gt;Select &quot;High Performance&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Network Optimisation&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Check upload speed:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Test at &lt;a href=&quot;https://speedtest.net&quot;&gt;https://speedtest.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bedrock requires ~0.1‑0.5 Mbps per player&lt;/li&gt;
&lt;li&gt;10 players = at least 5‑10 Mbps upload&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Use a wired connection:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ethernet is better than WiFi – less lag and packet loss&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Port forwarding best practices:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Only open necessary ports (19132 UDP)&lt;/li&gt;
&lt;li&gt;Don&apos;t open extra ports on your firewall&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Common Issues &amp;amp; Solutions&lt;/h2&gt;
&lt;h3&gt;1. Server Won&apos;t Start&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; &lt;code&gt;bedrock_server.exe&lt;/code&gt; opens and closes instantly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check if antivirus is blocking it – add folder to whitelist&lt;/li&gt;
&lt;li&gt;Ensure no other server instance is running&lt;/li&gt;
&lt;li&gt;Check if the port is already in use&lt;/li&gt;
&lt;li&gt;Run as Administrator&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Friends Can&apos;t Connect&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; &quot;Can&apos;t connect to world&quot; or &quot;Connection timed out&quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the server actually running?&lt;/li&gt;
&lt;li&gt;Double‑check IP address and port&lt;/li&gt;
&lt;li&gt;Confirm firewall allows UDP ports 19132‑19133&lt;/li&gt;
&lt;li&gt;LAN: make sure everyone is on the same WiFi&lt;/li&gt;
&lt;li&gt;Online: check port forwarding (UDP!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Test connectivity:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# On friend&apos;s PC
ping your.ip.address

# Test port (requires telnet)
telnet your.ip.address 19132
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. LAN Auto‑Discovery Not Working&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Server doesn&apos;t show up on mobile devices.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure all devices are on the same WiFi network&lt;/li&gt;
&lt;li&gt;Check if router has AP isolation enabled (turn it off)&lt;/li&gt;
&lt;li&gt;Try manually adding the server (use IP)&lt;/li&gt;
&lt;li&gt;Restart router and all devices&lt;/li&gt;
&lt;li&gt;Make sure everyone is logged into Microsoft accounts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. Server is Laggy / High Ping&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Low TPS, players experience delays.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lower &lt;code&gt;tick-distance&lt;/code&gt; (view distance)&lt;/li&gt;
&lt;li&gt;Reduce &lt;code&gt;max-players&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Disable redstone machines near spawn&lt;/li&gt;
&lt;li&gt;Clear excess entities (animals, monsters, items)&lt;/li&gt;
&lt;li&gt;Check upload bandwidth&lt;/li&gt;
&lt;li&gt;Use a wired network connection&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Clear entities command:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Remove all dropped items
kill @e[type=item]

# Remove experience orbs
kill @e[type=xp_orb]

# Remove entities within a radius (except players)
kill @e[r=50,type=!player]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;5. Authentication Issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Friends get &quot;Failed to authenticate&quot; errors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure all players own a legitimate copy of Minecraft&lt;/li&gt;
&lt;li&gt;Make sure everyone is logged into Microsoft accounts&lt;/li&gt;
&lt;li&gt;If everyone uses offline/cracked launchers, set &lt;code&gt;online-mode=false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Offline mode is insecure – anyone can join with any name&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6. Port Already in Use&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Error says port is already occupied.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Change &lt;code&gt;server-port&lt;/code&gt; in &lt;code&gt;server.properties&lt;/code&gt; to another value (e.g., 19134)&lt;/li&gt;
&lt;li&gt;Or find and kill the process using the port:&lt;pre&gt;&lt;code&gt;netstat -ano | findstr :19132
taskkill /PID process_id /F
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7. World Corruption&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Server fails to load the world.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restore from a backup&lt;/li&gt;
&lt;li&gt;Delete the corrupted world and generate a new one&lt;/li&gt;
&lt;li&gt;Use third‑party repair tools (e.g., Universal Minecraft Editor)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;8. Xbox Live Connectivity&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Error about Xbox Live service being unavailable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check Xbox Live status: &lt;a href=&quot;https://support.xbox.com/&quot;&gt;https://support.xbox.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ensure all players are signed into Microsoft accounts&lt;/li&gt;
&lt;li&gt;Restart the game and server&lt;/li&gt;
&lt;li&gt;Check network connection&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Final Words&lt;/h2&gt;
&lt;p&gt;Congratulations! You&apos;ve successfully set up your own Minecraft Bedrock Edition server!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quick recap:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Downloaded the official Bedrock server&lt;/li&gt;
&lt;li&gt;Extracted and launched it for the first time&lt;/li&gt;
&lt;li&gt;Configured &lt;code&gt;server.properties&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Set up firewall (UDP ports)&lt;/li&gt;
&lt;li&gt;Connected (local / LAN / online)&lt;/li&gt;
&lt;li&gt;Managed players and permissions&lt;/li&gt;
&lt;li&gt;Set up backups and optimisation&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Bedrock&apos;s strengths:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cross‑platform:&lt;/strong&gt; Mobile, PC, and consoles all together&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance:&lt;/strong&gt; C++ native code, lightweight&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easy setup:&lt;/strong&gt; Simple config, auto‑discovers LAN servers&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mobile friendly:&lt;/strong&gt; Play anywhere, anytime&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What you can do next:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Invite friends from different platforms&lt;/li&gt;
&lt;li&gt;Explore Bedrock‑specific Add‑ons and Marketplace content&lt;/li&gt;
&lt;li&gt;Learn more Bedrock commands and mechanics&lt;/li&gt;
&lt;li&gt;Build mini‑game maps&lt;/li&gt;
&lt;li&gt;Grow your cross‑platform community&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Java vs Bedrock – which one to pick?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Want mods and technical gameplay → &lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Want cross‑platform with friends → &lt;strong&gt;Bedrock&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Casual players / kids → &lt;strong&gt;Bedrock&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Redstone engineers / builders → &lt;strong&gt;Java&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Why not try both? They each have their own charm!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you run into issues:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the console logs&lt;/li&gt;
&lt;li&gt;Visit Minecraft forums&lt;/li&gt;
&lt;li&gt;Join Bedrock player communities&lt;/li&gt;
&lt;li&gt;Look for video tutorials online&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have a blast in the world of Minecraft – no matter what device you&apos;re on, may you create wonderful memories with your friends!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;Useful Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minecraft Official Site: &lt;a href=&quot;https://www.minecraft.net/&quot;&gt;https://www.minecraft.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Bedrock Server Download: &lt;a href=&quot;https://www.minecraft.net/en-us/download/server/bedrock&quot;&gt;https://www.minecraft.net/en-us/download/server/bedrock&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Minecraft Wiki (Bedrock): &lt;a href=&quot;https://minecraft.wiki/w/Bedrock_Edition&quot;&gt;https://minecraft.wiki/w/Bedrock_Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Xbox Service Status: &lt;a href=&quot;https://support.xbox.com/&quot;&gt;https://support.xbox.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PocketMine‑MP: &lt;a href=&quot;https://pmmp.io/&quot;&gt;https://pmmp.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ZeroTier: &lt;a href=&quot;https://www.zerotier.com/&quot;&gt;https://www.zerotier.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Ultimate Windows Guide to Hosting a Minecraft Java Server</title><link>https://blog.yufurry.cn/posts/00000008/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000008/</guid><description>A complete step‑by‑step guide to setting up a Minecraft Java Edition server on Windows – from environment setup and server installation to optimisation and client connection.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;The Ultimate Windows Guide to Hosting a Minecraft Java Server&lt;/h1&gt;
&lt;p&gt;Hey everyone! This is a super‑detailed, beginner‑friendly tutorial on setting up your very own Minecraft Java Edition server on a Windows PC. Whether you want to play with a few friends or run a small community server, this guide has you covered – zero prior experience needed.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Prerequisites&lt;/h2&gt;
&lt;h3&gt;1. System Requirements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OS:&lt;/strong&gt; Windows 10 or Windows 11 (64‑bit)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM:&lt;/strong&gt; At least 8 GB total (system + server usage)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage:&lt;/strong&gt; Minimum 10 GB free space&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Network:&lt;/strong&gt; Stable internet connection&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Software You&apos;ll Need&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Java Runtime Environment&lt;/strong&gt; (JRE / JDK)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minecraft server core file&lt;/strong&gt; (jar)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Text editor&lt;/strong&gt; (Notepad++ or VS Code recommended, but regular Notepad works too)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 1: Install Java&lt;/h2&gt;
&lt;p&gt;Minecraft Java servers require Java to run. Here are two ways to get it.&lt;/p&gt;
&lt;h3&gt;Option A: Official JDK (Recommended)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Visit the Oracle download page&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/&quot;&gt;https://www.oracle.com/java/technologies/downloads/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Alternatively, use the open‑source OpenJDK: &lt;a href=&quot;https://adoptium.net/&quot;&gt;https://adoptium.net/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Pick the right version&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minecraft 1.17 and below → &lt;strong&gt;Java 8&lt;/strong&gt; or &lt;strong&gt;Java 11&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Minecraft 1.18 – 1.20.4 → &lt;strong&gt;Java 17&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Minecraft 1.20.5 and above → &lt;strong&gt;Java 21&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendation:&lt;/strong&gt; If you&apos;re unsure, download &lt;strong&gt;Java 17&lt;/strong&gt; – it&apos;s the most compatible across versions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Download the installer&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Choose &lt;strong&gt;Windows x64 Installer&lt;/strong&gt; (.exe) and download it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Run the installer&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Double‑click the .exe, click &quot;Next&quot;, and keep the default installation path.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify the installation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt;, type &lt;code&gt;cmd&lt;/code&gt;, and hit Enter.&lt;/li&gt;
&lt;li&gt;Run this command:&lt;pre&gt;&lt;code&gt;java -version
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;You should see something like:&lt;pre&gt;&lt;code&gt;java version &quot;17.0.x&quot; 202x-xx-xx LTS
Java(TM) SE Runtime Environment (build 17.0.x+x-LTS-x)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.x+x-LTS-x, mixed mode, sharing)
&lt;/code&gt;&lt;/pre&gt;
If you see that, Java is installed correctly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Option B: Microsoft Store (Simpler)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open the Microsoft Store.&lt;/li&gt;
&lt;li&gt;Search for &quot;Java&quot; or &quot;OpenJDK&quot;.&lt;/li&gt;
&lt;li&gt;Pick a version and install it.&lt;/li&gt;
&lt;li&gt;Verify with &lt;code&gt;java -version&lt;/code&gt; as above.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 2: Download the Minecraft Server Jar&lt;/h2&gt;
&lt;h3&gt;1. Choose Your Game Version&lt;/h3&gt;
&lt;p&gt;Decide which Minecraft version you want to run. Popular choices:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;1.20.1&lt;/strong&gt; – Stable, lots of mod support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1.19.4&lt;/strong&gt; – Relatively new&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1.16.5&lt;/strong&gt; – Classic, well‑optimised&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1.12.2&lt;/strong&gt; – Old but with a huge mod ecosystem&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;For beginners:&lt;/strong&gt; Go with &lt;strong&gt;1.20.1&lt;/strong&gt; – it has new features and is rock‑solid.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2. Download the Server Core File&lt;/h3&gt;
&lt;h4&gt;Option A: Official Vanilla Server (Pure, unmodded)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Visit the official Minecraft server download page:&lt;br /&gt;
&lt;a href=&quot;https://www.minecraft.net/en-us/download/server&quot;&gt;https://www.minecraft.net/en-us/download/server&lt;/a&gt;&lt;br /&gt;
(The page auto‑detects your OS – just click the jar link.)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the download button for &lt;code&gt;minecraft_server.x.xx.x.jar&lt;/code&gt; (e.g., &lt;code&gt;minecraft_server.1.20.1.jar&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Save it to a new folder – preferably on a drive other than C: (e.g., &lt;code&gt;D:\MC_Server&lt;/code&gt;). Put the jar file inside that folder.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Option B: Paper Server (Recommended – Better Performance)&lt;/h4&gt;
&lt;p&gt;Paper is an optimised fork of the vanilla server – better performance, fewer bugs.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Go to the PaperMC downloads page:&lt;br /&gt;
&lt;a href=&quot;https://papermc.io/downloads/paper&quot;&gt;https://papermc.io/downloads/paper&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select your Minecraft version (e.g., 1.20.1).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Download the latest build .jar file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Place it in your server folder (e.g., &lt;code&gt;D:\MC_Server&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Option C: Forge / Fabric Server (For Mods)&lt;/h4&gt;
&lt;p&gt;If you want to run mods, you&apos;ll need a mod‑loader server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Forge Server:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit &lt;a href=&quot;https://files.minecraftforge.net/&quot;&gt;https://files.minecraftforge.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Choose your version and download the &quot;Installer&quot;.&lt;/li&gt;
&lt;li&gt;Run the installer, select &quot;Install server&quot;, and point it to your server folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Fabric Server:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit &lt;a href=&quot;https://fabricmc.net/use/server/&quot;&gt;https://fabricmc.net/use/server/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download the server jar for your version.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Newbie tip:&lt;/strong&gt; Start with &lt;strong&gt;Paper&lt;/strong&gt; – it&apos;s the easiest to set up and manage. Move to Forge/Fabric later when you&apos;re comfortable.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 3: First Server Launch&lt;/h2&gt;
&lt;h3&gt;1. Create a Startup Script&lt;/h3&gt;
&lt;p&gt;Inside your server folder (e.g., &lt;code&gt;D:\MC_Server&lt;/code&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Right‑click in an empty space → New → Text Document.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rename it to &lt;code&gt;start.bat&lt;/code&gt; (make sure the extension is &lt;code&gt;.bat&lt;/code&gt;, not &lt;code&gt;.txt&lt;/code&gt;).&lt;br /&gt;
&lt;em&gt;If you don&apos;t see file extensions, go to the folder&apos;s View tab and check &quot;File name extensions&quot;.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Right‑click &lt;code&gt;start.bat&lt;/code&gt; and open it with Notepad.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Paste the appropriate content based on your server type:&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;For Vanilla server:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
java -Xms2G -Xmx4G -jar minecraft_server.1.20.1.jar nogui
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;For Paper server:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
java -Xms2G -Xmx4G -jar paper-1.20.1-xxx.jar nogui
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What these parameters mean:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-Xms2G&lt;/code&gt; – initial RAM allocation (2 GB)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-Xmx4G&lt;/code&gt; – maximum RAM (4 GB) – adjust based on your system&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-jar&lt;/code&gt; – the jar file to run&lt;/li&gt;
&lt;li&gt;&lt;code&gt;nogui&lt;/code&gt; – disables the graphical interface (saves resources)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pause&lt;/code&gt; – keeps the window open so you can see any errors&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Memory allocation tips:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;8 GB RAM total → &lt;code&gt;-Xms2G -Xmx4G&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;16 GB RAM total → &lt;code&gt;-Xms4G -Xmx8G&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;32 GB RAM total → &lt;code&gt;-Xms8G -Xmx16G&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Don&apos;t allocate more than 70% of your physical RAM&lt;/strong&gt; – otherwise your system will slow down.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;2. Accept the EULA&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Double‑click &lt;code&gt;start.bat&lt;/code&gt; to run it.&lt;/li&gt;
&lt;li&gt;The server will start and then immediately close – that&apos;s normal.&lt;/li&gt;
&lt;li&gt;A new file called &lt;code&gt;eula.txt&lt;/code&gt; will appear in the folder.&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;eula.txt&lt;/code&gt; in Notepad.&lt;/li&gt;
&lt;li&gt;Find this line:&lt;pre&gt;&lt;code&gt;eula=false
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Change it to:&lt;pre&gt;&lt;code&gt;eula=true
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Save and close the file.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. Launch the Server Properly&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Double‑click &lt;code&gt;start.bat&lt;/code&gt; again.&lt;/li&gt;
&lt;li&gt;This time the server will start normally and stay running.&lt;/li&gt;
&lt;li&gt;Wait until you see a message like:&lt;pre&gt;&lt;code&gt;[Server thread/INFO]: Done (xx.xxxs)! For help, type &quot;help&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;That means your server is up and running!&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The first launch generates the world files – this may take a few minutes. Please be patient.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 4: Configure the Server&lt;/h2&gt;
&lt;p&gt;Your server folder now contains many files. The most important one is &lt;code&gt;server.properties&lt;/code&gt; – the main configuration file.&lt;/p&gt;
&lt;h3&gt;1. Edit server.properties&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Shut down the server (press &lt;code&gt;Ctrl + C&lt;/code&gt; in the command window, or type &lt;code&gt;stop&lt;/code&gt; and press Enter).&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;server.properties&lt;/code&gt; with Notepad or any text editor.&lt;/li&gt;
&lt;li&gt;Here are the key settings and what they do:&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# ===== Basic Settings =====
# Server port (default 25565 – usually leave as is)
server-port=25565

# Server name (shown in the server list)
motd=A Minecraft Server

# Maximum number of players
max-players=20

# Game mode: survival, creative, adventure, spectator
gamemode=survival

# Difficulty: peaceful, easy, normal, hard
difficulty=normal

# Enable PvP (player vs player)
pvp=true

# Allow flying (creative mode always allows it)
allow-flight=false

# World folder name
level-name=world

# World seed (leave blank for random)
level-seed=

# ===== Advanced Settings =====
# View distance (in chunks – higher = more lag)
view-distance=10

# Simulation distance
simulation-distance=10

# Generate structures (villages, fortresses, etc.)
generate-structures=true

# Enable command blocks
enable-command-block=false

# OP permission level (1–4)
op-permission-level=4

# Enable whitelist
white-list=false

# Online mode (authentication)
# true = only premium accounts can join
# false = offline / cracked accounts allowed
online-mode=true

# Max build height
max-build-height=256

# Allow the Nether
allow-nether=true

# Allow the End
allow-end=true

# Spawn animals
spawn-animals=true

# Spawn monsters
spawn-monsters=true

# Spawn NPC villagers
spawn-npcs=true

# Spawn protection radius
spawn-protection=16

# Player idle timeout (minutes, 0 = disabled)
player-idle-timeout=0

# Network compression threshold
network-compression-threshold=256

# Enable query (for server status tools)
enable-query=false

# RCON remote console password (if you need remote control)
rcon.password=
rcon.port=25575
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. Important Settings Explained&lt;/h3&gt;
&lt;h4&gt;Game Mode&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;gamemode=survival          # Survival
gamemode=creative          # Creative
gamemode=adventure         # Adventure
gamemode=spectator         # Spectator
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Player Management&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Max players (adjust based on your PC and internet)
max-players=10

# Whitelist mode (only allowed players can join)
white-list=true

# After enabling whitelist, add players via console or in‑game:
# /whitelist add PlayerName
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;Online Mode (Authentication)&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# If all players have premium accounts, keep this on
online-mode=true

# If some friends use cracked launchers, turn this off
online-mode=false
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Setting &lt;code&gt;online-mode=false&lt;/code&gt; allows anyone to join with any username – be aware of the security implications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;World Generation&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;# Custom seed (you can find nice ones online)
level-seed=123456789

# Or use a text seed
level-seed=village_at_spawn

# View distance (affects performance and visibility)
# Low‑end PC: 6–8
# Mid‑range: 10–12
# High‑end: 15–20
view-distance=10
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. Save and Apply Changes&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Save &lt;code&gt;server.properties&lt;/code&gt; (&lt;code&gt;Ctrl + S&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Restart your server by double‑clicking &lt;code&gt;start.bat&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The new settings will take effect.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 5: Connect to Your Server&lt;/h2&gt;
&lt;h3&gt;Local Connection (Same PC)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Launch the Minecraft Java client.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Multiplayer&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add Server&lt;/strong&gt; or &lt;strong&gt;Direct Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Enter &lt;code&gt;localhost&lt;/code&gt; or &lt;code&gt;127.0.0.1&lt;/code&gt; as the server address.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Done&lt;/strong&gt; or &lt;strong&gt;Join Server&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You&apos;re in!&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;LAN Connection (Other Devices on the Same Network)&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Find your local IP address:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press &lt;code&gt;Win + R&lt;/code&gt;, type &lt;code&gt;cmd&lt;/code&gt;, and hit Enter.&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;ipconfig&lt;/code&gt; and press Enter.&lt;/li&gt;
&lt;li&gt;Look for the &lt;strong&gt;IPv4 Address&lt;/strong&gt; – it will look like &lt;code&gt;192.168.1.100&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the other device:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open Minecraft.&lt;/li&gt;
&lt;li&gt;Go to Multiplayer → Add Server.&lt;/li&gt;
&lt;li&gt;Enter your IPv4 address as the server address, e.g., &lt;code&gt;192.168.1.100&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If you changed the port, use &lt;code&gt;192.168.1.100:25565&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Online Connection (Let Friends Join from the Internet)&lt;/h3&gt;
&lt;p&gt;This requires &lt;strong&gt;port forwarding&lt;/strong&gt; or &lt;strong&gt;tunneling&lt;/strong&gt; – it&apos;s a bit more advanced.&lt;/p&gt;
&lt;h4&gt;Method A: Router Port Forwarding (Requires a Public IP)&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Check if you have a public IP&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Visit &lt;a href=&quot;https://ip.cn&quot;&gt;https://ip.cn&lt;/a&gt; to see your public IP.&lt;/li&gt;
&lt;li&gt;Log into your router&apos;s admin page and check the WAN IP.&lt;/li&gt;
&lt;li&gt;If they match, you have a public IP.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Log into your router&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open a browser and go to your router&apos;s address (usually &lt;code&gt;192.168.1.1&lt;/code&gt; or &lt;code&gt;192.168.0.1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Enter the admin username and password.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Set up port forwarding / virtual server&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find &quot;Port Forwarding&quot;, &quot;Virtual Server&quot;, or &quot;NAT Settings&quot;.&lt;/li&gt;
&lt;li&gt;Add a new rule:
&lt;ul&gt;
&lt;li&gt;External Port: &lt;code&gt;25565&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Internal Port: &lt;code&gt;25565&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Internal IP: your PC&apos;s IP (e.g., &lt;code&gt;192.168.1.100&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Protocol: &lt;code&gt;TCP &amp;amp; UDP&lt;/code&gt; (or select &quot;Both&quot;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Save the settings.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Give your public IP to friends&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;They connect using: &lt;code&gt;your.public.ip:25565&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Example: &lt;code&gt;123.45.67.89:25565&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Notes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Your public IP may change after each router reboot – consider using DDNS.&lt;/li&gt;
&lt;li&gt;Make sure your Windows firewall allows port 25565.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h4&gt;Method B: Tunneling Tools (No Public IP Needed)&lt;/h4&gt;
&lt;p&gt;If your ISP doesn&apos;t give you a public IP, use a tunneling service:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Popular tools:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SakuraFrp:&lt;/strong&gt; &lt;a href=&quot;https://www.natfrp.com/&quot;&gt;https://www.natfrp.com/&lt;/a&gt; (free tier available)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ngrok:&lt;/strong&gt; &lt;a href=&quot;https://ngrok.com/&quot;&gt;https://ngrok.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hamachi&lt;/strong&gt; (LogMeIn)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Using SakuraFrp as an example:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create an account.&lt;/li&gt;
&lt;li&gt;Download and run the client.&lt;/li&gt;
&lt;li&gt;Create a tunnel:
&lt;ul&gt;
&lt;li&gt;Type: TCP&lt;/li&gt;
&lt;li&gt;Local IP: &lt;code&gt;127.0.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Local Port: &lt;code&gt;25565&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Start the tunnel – you&apos;ll get a domain name.&lt;/li&gt;
&lt;li&gt;Friends connect using that domain.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Method C: Third‑Party Hosting Platforms&lt;/h4&gt;
&lt;p&gt;If all of this sounds like too much work, try free hosting services:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aternos:&lt;/strong&gt; &lt;a href=&quot;https://aternos.org/&quot;&gt;https://aternos.org/&lt;/a&gt; (completely free)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minehut:&lt;/strong&gt; &lt;a href=&quot;https://minehut.com/&quot;&gt;https://minehut.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Or rent a VPS from cloud providers like AWS, Google Cloud, or Alibaba Cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 6: Server Administration&lt;/h2&gt;
&lt;h3&gt;Common Console Commands&lt;/h3&gt;
&lt;p&gt;In the server command window, you can type commands directly:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Show help
help

# Stop the server gracefully
stop

# Save the world
save-all

# Disable auto‑save (for backups)
save-off
save-on        # Re‑enable auto‑save

# Grant OP (admin) privileges
op PlayerName

# Remove OP
deop PlayerName

# Ban a player
ban PlayerName

# Unban a player
pardon PlayerName

# List online players
list

# Change game mode (in‑game or console)
gamemode survival PlayerName
gamemode creative PlayerName

# Teleport
tp Player1 Player2

# Broadcast a message
say Hello everyone, welcome to the server!

# Set world spawn
setworldspawn

# List all game rules
gamerule

# Keep inventory on death
gamerule keepInventory true

# Set time
time set day
time set night
time set noon

# Set weather
weather clear
weather rain
weather thunder
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Managing Player Permissions&lt;/h3&gt;
&lt;h4&gt;1. Using OP (Operator) Status&lt;/h4&gt;
&lt;p&gt;OPs have full administrative control.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# In console:
op Steve

# In‑game (if you&apos;re already OP):
/op Steve
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;2. Using a Whitelist&lt;/h4&gt;
&lt;p&gt;Allow only specific players to join:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Enable whitelist
whitelist on

# Add players
whitelist add Steve
whitelist add Alex

# Remove a player
whitelist remove Steve

# List whitelisted players
whitelist list

# Reload the whitelist
whitelist reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can also enable the whitelist in &lt;code&gt;server.properties&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;white-list=true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then manually edit &lt;code&gt;whitelist.json&lt;/code&gt; to add player UUIDs – but the in‑game commands are easier.&lt;/p&gt;
&lt;h3&gt;Installing Plugins (Paper / Spigot Only)&lt;/h3&gt;
&lt;p&gt;If you&apos;re using Paper or Spigot, you can add plugins to extend functionality.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Find plugins&lt;/strong&gt;&lt;br /&gt;
Popular repositories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.spigotmc.org/resources/&quot;&gt;SpigotMC Resources&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://dev.bukkit.org/&quot;&gt;Bukkit Plugins&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Recommended plugins for beginners:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EssentialsX&lt;/strong&gt; – essential admin commands&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WorldEdit&lt;/strong&gt; – world editing tools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CoreProtect&lt;/strong&gt; – block logging (anti‑griefing)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LuckPerms&lt;/strong&gt; – advanced permissions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vault&lt;/strong&gt; – economy system foundation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiverse‑Core&lt;/strong&gt; – multi‑world management&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shut down the server.&lt;/li&gt;
&lt;li&gt;Place the downloaded &lt;code&gt;.jar&lt;/code&gt; plugin files into the &lt;code&gt;plugins&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Start the server – plugins load automatically and generate config files.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Each plugin creates its own config folder inside &lt;code&gt;plugins&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Edit the config files as needed.&lt;/li&gt;
&lt;li&gt;Reload plugins: &lt;code&gt;/reload&lt;/code&gt; or &lt;code&gt;/pluginname reload&lt;/code&gt; (check the plugin&apos;s docs).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Backing Up World Data&lt;/h3&gt;
&lt;p&gt;Regular backups are essential!&lt;/p&gt;
&lt;h4&gt;Manual Backup&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;Stop the server (type &lt;code&gt;stop&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Copy the entire server folder, or just the &lt;code&gt;world&lt;/code&gt;, &lt;code&gt;world_nether&lt;/code&gt;, and &lt;code&gt;world_the_end&lt;/code&gt; folders.&lt;/li&gt;
&lt;li&gt;Paste them somewhere safe (another drive, cloud storage, etc.).&lt;/li&gt;
&lt;li&gt;Restart the server.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;Automated Backup Script&lt;/h4&gt;
&lt;p&gt;Create a &lt;code&gt;backup.bat&lt;/code&gt; file in your server folder:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
set backup_folder=D:\MC_Backup
set server_folder=D:\MC_Server
set date_str=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set date_str=%date_str: =0%

if not exist &quot;%backup_folder%&quot; mkdir &quot;%backup_folder%&quot;

echo Backing up server...
xcopy &quot;%server_folder%\world&quot; &quot;%backup_folder%\world_%date_str%&quot; /E /I /Y
xcopy &quot;%server_folder%\world_nether&quot; &quot;%backup_folder%\world_nether_%date_str%&quot; /E /I /Y
xcopy &quot;%server_folder%\world_the_end&quot; &quot;%backup_folder%\world_the_end_%date_str%&quot; /E /I /Y

echo Backup complete!
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Run this script weekly, or before any major changes.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2&gt;Step 7: Performance Optimisation&lt;/h2&gt;
&lt;h3&gt;1. JVM Tuning&lt;/h3&gt;
&lt;p&gt;Modify your &lt;code&gt;start.bat&lt;/code&gt; with advanced JVM flags for better performance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;@echo off
java -Xms4G -Xmx8G ^
     -XX:+UseG1GC ^
     -XX:+ParallelRefProcEnabled ^
     -XX:MaxGCPauseMillis=200 ^
     -XX:+UnlockExperimentalVMOptions ^
     -XX:+DisableExplicitGC ^
     -XX:+AlwaysPreTouch ^
     -XX:G1NewSizePercent=30 ^
     -XX:G1MaxNewSizePercent=40 ^
     -XX:G1HeapRegionSize=8M ^
     -XX:G1ReservePercent=20 ^
     -XX:G1HeapWastePercent=5 ^
     -XX:G1MixedGCCountTarget=4 ^
     -XX:InitiatingHeapOccupancyPercent=15 ^
     -XX:G1MixedGCLiveThresholdPercent=90 ^
     -XX:G1RSetUpdatingPauseTimePercent=5 ^
     -XX:SurvivorRatio=32 ^
     -XX:+PerfDisableSharedMem ^
     -XX:MaxTenuringThreshold=1 ^
     -jar paper-1.20.1-xxx.jar nogui
pause
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. server.properties Optimisation&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# Lower view distance (biggest performance impact)
view-distance=8
simulation-distance=8

# Tune entity spawning
spawn-animals=true
spawn-monsters=true
spawn-npcs=true

# Disable unnecessary features
enable-command-block=false
spawn-protection=0

# Adjust tick rate (change with caution)
max-tick-time=60000
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. Pre‑Generate the World&lt;/h3&gt;
&lt;p&gt;Use a plugin to pre‑generate chunks, reducing lag when players explore:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Chunky&lt;/strong&gt; plugin: &lt;a href=&quot;https://www.spigotmc.org/resources/chunky.81534/&quot;&gt;https://www.spigotmc.org/resources/chunky.81534/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Commands:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/chunky radius 1000
/chunky start
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4. Clean Up Unused Data&lt;/h3&gt;
&lt;p&gt;Regularly remove:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Offline player inventory data&lt;/li&gt;
&lt;li&gt;Old log files&lt;/li&gt;
&lt;li&gt;Outdated backups&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Common Issues &amp;amp; Solutions&lt;/h2&gt;
&lt;h3&gt;1. Server Fails to Start&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt; &lt;code&gt;start.bat&lt;/code&gt; opens and closes instantly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify Java is installed: &lt;code&gt;java -version&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check that the jar filename in &lt;code&gt;start.bat&lt;/code&gt; matches the actual file name.&lt;/li&gt;
&lt;li&gt;Look at the log files in the &lt;code&gt;logs&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;Make sure you&apos;ve set &lt;code&gt;eula=true&lt;/code&gt; in &lt;code&gt;eula.txt&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Can&apos;t Connect to Server&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt; &quot;Connection timed out&quot; or &quot;Can&apos;t connect to server&quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Is the server actually running?&lt;/li&gt;
&lt;li&gt;Double‑check the IP address and port.&lt;/li&gt;
&lt;li&gt;Is Windows Firewall blocking port 25565?&lt;/li&gt;
&lt;li&gt;Test locally with &lt;code&gt;localhost&lt;/code&gt; first.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To open Windows Firewall port:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Control Panel → Windows Defender Firewall → Advanced Settings.&lt;/li&gt;
&lt;li&gt;Inbound Rules → New Rule.&lt;/li&gt;
&lt;li&gt;Port → TCP → Specific local ports: &lt;code&gt;25565&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Allow the connection.&lt;/li&gt;
&lt;li&gt;Name the rule and save.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;3. Server is Laggy&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptoms:&lt;/strong&gt; TPS (ticks per second) drops below 20.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reduce view‑distance.&lt;/li&gt;
&lt;li&gt;Lower max‑players.&lt;/li&gt;
&lt;li&gt;Limit redstone and mob farms.&lt;/li&gt;
&lt;li&gt;Install optimisation plugins like ClearLag.&lt;/li&gt;
&lt;li&gt;Allocate more RAM (but not too much).&lt;/li&gt;
&lt;li&gt;Pre‑generate the world with Chunky.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. Authentication Problems&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Friends can&apos;t join, getting &quot;Failed to authenticate&quot;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If everyone has premium accounts: keep &lt;code&gt;online-mode=true&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If some use cracked launchers: set &lt;code&gt;online-mode=false&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Remember that offline mode is less secure.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5. Port Already in Use&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; &quot;Address already in use&quot; error.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Change &lt;code&gt;server-port&lt;/code&gt; in &lt;code&gt;server.properties&lt;/code&gt; to another number (e.g., 25566).&lt;/li&gt;
&lt;li&gt;Or find and kill the process using the port:&lt;pre&gt;&lt;code&gt;netstat -ano | findstr :25565
taskkill /PID process_id /F
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6. World Corruption&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Server fails with world loading errors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restore from a backup.&lt;/li&gt;
&lt;li&gt;Use repair tools like MCEdit (older versions).&lt;/li&gt;
&lt;li&gt;Delete corrupted region files (last resort).&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h2&gt;Final Words&lt;/h2&gt;
&lt;p&gt;Congratulations! You&apos;ve now successfully set up your very own Minecraft Java Edition server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quick recap of what you&apos;ve done:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Installed Java&lt;/li&gt;
&lt;li&gt;Downloaded a server core&lt;/li&gt;
&lt;li&gt;Created a startup script and accepted the EULA&lt;/li&gt;
&lt;li&gt;Configured &lt;code&gt;server.properties&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Started the server and connected&lt;/li&gt;
&lt;li&gt;Set up port forwarding (for online play)&lt;/li&gt;
&lt;li&gt;Installed plugins and optimised performance&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;What you can do next:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Invite your friends to play&lt;/li&gt;
&lt;li&gt;Explore plugins and mods&lt;/li&gt;
&lt;li&gt;Learn advanced server admin commands&lt;/li&gt;
&lt;li&gt;Create custom gameplay experiences&lt;/li&gt;
&lt;li&gt;Build your own community&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you get stuck, here&apos;s where to look for help:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the server logs (&lt;code&gt;logs&lt;/code&gt; folder)&lt;/li&gt;
&lt;li&gt;Visit Minecraft forums (like MCBBS or Reddit)&lt;/li&gt;
&lt;li&gt;Join Discord communities or QQ groups dedicated to server hosting&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Have a blast in the world of Minecraft!&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;Useful Links:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Minecraft Official Site: &lt;a href=&quot;https://www.minecraft.net/&quot;&gt;https://www.minecraft.net/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PaperMC Downloads: &lt;a href=&quot;https://papermc.io/&quot;&gt;https://papermc.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SpigotMC Plugins: &lt;a href=&quot;https://www.spigotmc.org/&quot;&gt;https://www.spigotmc.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Minecraft Wiki: &lt;a href=&quot;https://minecraft.wiki/&quot;&gt;https://minecraft.wiki/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Inside the Maimai DX Arcade Cabinet – A Technical Breakdown</title><link>https://blog.yufurry.cn/posts/00000004/</link><guid isPermaLink="true">https://blog.yufurry.cn/posts/00000004/</guid><description>A technical deep-dive into Maimai DX arcade cabinets – hardware, touchscreens, buttons, and maintenance tips.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;The Screen Setup&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-2.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Many players assume that Maimai DX uses a single large screen split into two halves. In reality, it&apos;s &lt;strong&gt;two separate 43-inch displays mounted vertically&lt;/strong&gt; side by side, as shown in the image above (credit: BV1kt4y1h7QW). I haven&apos;t been able to track down the exact manufacturer or model of these panels – if anyone knows, feel free to chime in.&lt;/p&gt;
&lt;h1&gt;The Base Hardware (System Board)&lt;/h1&gt;
&lt;p&gt;Maimai DX runs on SEGA&apos;s &lt;strong&gt;ALLS HX2&lt;/strong&gt; arcade board, which is essentially a custom‑spec PC. Here&apos;s what&apos;s inside:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Motherboard:&lt;/strong&gt; Gigabyte MCH31AM‑S2 (Intel H310 chipset)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CPU:&lt;/strong&gt; Intel Core i3‑8100&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAM:&lt;/strong&gt; 2× 4 GB DDR4&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPU:&lt;/strong&gt; NVIDIA GeForce GTX 1050 Ti&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OS:&lt;/strong&gt; Windows 10 IoT LTSC 2019&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-3.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;The Buttons&lt;/h1&gt;
&lt;p&gt;A common misconception is that the buttons are simple mechanical microswitches – but they&apos;re actually &lt;strong&gt;optical switches&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When you press a button, it compresses a spring leaf that blocks an infrared sensor, registering the hit. This design offers longer lifespan, faster response, and lower cost compared to traditional microswitches. In fact, this optical setup is standard across most rhythm game arcade cabinets, not just Maimai.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-4.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;The Touchscreen&lt;/h1&gt;
&lt;p&gt;The touchscreen on Maimai DX is a &lt;strong&gt;capacitive touch panel&lt;/strong&gt; – similar in principle to what you&apos;d find on a smartphone, but with one key difference:&lt;/p&gt;
&lt;p&gt;Instead of pinpointing exact touch coordinates like a phone does, the screen is divided into &lt;strong&gt;34 touch zones&lt;/strong&gt;. Touching anywhere within a zone triggers that specific zone, essentially acting like 34 independent touch switches. The underlying sensing technology, however, is still capacitive.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-5.webp&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-6.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;The touch panel is manufactured using &lt;strong&gt;magnetron sputtering&lt;/strong&gt;, which slightly reduces light transmittance – that&apos;s why the screen can look a bit washed out or hazy from certain angles. On the plus side, this coating helps hide the internal sensor traces, so you don&apos;t see the zone wiring under normal viewing conditions.&lt;/p&gt;
&lt;p&gt;The entire touch surface is a single piece of glass – reportedly &lt;strong&gt;5 mm thick rare‑earth glass&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Interestingly, the touch panel material on &lt;strong&gt;Japanese cabs&lt;/strong&gt; seems to differ from the ones used in Chinese (export) units. Japanese panels have a bit more flexibility and sit closer to the display, which gives them better image clarity and less noticeable parallax. The trade‑off is durability – they&apos;re more prone to showing white distortion under heavy hits, but they also suffer fewer issues like &quot;ghost notes&quot; or missed star inputs compared to the export versions.&lt;/p&gt;
&lt;h1&gt;Button Maintenance &amp;amp; Tuning&lt;/h1&gt;
&lt;p&gt;If you&apos;re looking to restore or maintain button feel, your best bet is to buy &lt;strong&gt;official replacement parts from Wahlap Technology&lt;/strong&gt; – they&apos;re the only ones guaranteed to match the original factory feel.&lt;/p&gt;
&lt;p&gt;Over time, heavy play can cause the spring leaf inside a button to deform, making it feel &quot;mushy&quot; or too soft. The button housing itself can also develop cracks or even have its retaining clips snap off. That leads to loose buttons, rattling noises on impact, or in worst‑case scenarios, the broken clip pieces can jam the button mechanism entirely, preventing it from returning or even pressing down.&lt;/p&gt;
&lt;p&gt;For minor spring leaf deformation, you can carefully bend it back into shape – but don&apos;t overdo it, or you risk metal fatigue and a snapped leaf. If the housing is cracked or the clips are broken, just replace the button casing entirely.&lt;/p&gt;
&lt;h1&gt;Touchscreen Optimization &amp;amp; Fixes&lt;/h1&gt;
&lt;p&gt;There&apos;s no one‑size‑fits‑all cure for the dreaded &quot;ghost touches,&quot; missed star inputs, or unresponsive zones – but in most cases, the root cause is one of these three:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Poor cabinet grounding&lt;/li&gt;
&lt;li&gt;Dust buildup over time&lt;/li&gt;
&lt;li&gt;Screen aging / wear&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Poor grounding&lt;/strong&gt; is by far the most common culprit. Without a solid ground connection, internal devices can create common‑mode interference, which messes with the capacitive touch controller – leading to phantom touches, dead zones, or erratic behavior. The fix is simple: make sure the cabinet is properly grounded.&lt;/p&gt;
&lt;p&gt;As for the rumor that &quot;unstable voltage causes missed star inputs&quot; – I&apos;m skeptical. Most modern arcades and shopping malls are already equipped with industrial‑grade power conditioning and filtering. Voltage fluctuations severe enough to affect the touchscreen are extremely rare in practice.&lt;/p&gt;
&lt;p&gt;If you&apos;ve already tried grounding, cleaning, and basic maintenance but still have issues, there&apos;s one more trick you can try: add an &lt;strong&gt;RS‑232 optical isolator&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Here&apos;s how:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open the rear maintenance panel on the 2P side of the cabinet.&lt;/li&gt;
&lt;li&gt;Locate the two serial cables labeled &lt;strong&gt;COM3&lt;/strong&gt; and &lt;strong&gt;COM4&lt;/strong&gt; on the system board – these carry the touch signals for Player 1 and Player 2, respectively.&lt;/li&gt;
&lt;li&gt;Unplug both cables, then plug each one into an &lt;strong&gt;RS‑232 optical isolator&lt;/strong&gt;, and plug the isolators back into the COM ports on the board.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This has been known to reduce or even eliminate ghost touch / missed input problems in some cases, by breaking ground loops and isolating electrical noise.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/posts_img/2026/02/00000004/p-00000004-7.webp&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item></channel></rss>