跳转至

快速问答/重复问答内容手册

How To Ask

根据原文协议 CC-BY-NC-SA 4.0 摘抄部分内容以供回答时使用:
原文&原作:https://lug.ustc.edu.cn/wiki/doc/howtoask/

请先尝试自己解决问题:有的时候解决方法比想像的要简单得多(并且自己解决也比问别人快得多)。
很多时候遇到的问题会伴随着错误信息,至少分一点点耐心去读一下错误信息可能对解决问题很有帮助。如果有能力的话,尝试从日志等地方收集相关的信息也很可能会有帮助。

避免 X-Y 型问题

X-Y 型问题指代这样一种情况:你遇到了 X 问题,你相信用 Y 方法可以解决 X 问题,但是不知道怎么使用,因此向别人提问如何使用 Y 的问题,而不告诉其他人 X 问题的内容。如果用 Y 方法解决 X 问题的思路是错误的,那么这样的提问就是浪费时间。

避免「在吗」/「有人吗」

在群聊的场景下,直接问问题比问「有人吗」是更好的选择——毕竟其他人有充分的理由不理你。例如:
A (8:00): 在吗?
B (13:00): 怎么了?
A (15:00): 我遇到了 XXXXXXX 错误,然后 YYYY 命令跑不了,怎么办?
B (16:00): 你应该 ZZZZZZZ

对比之下,直接提问:
A (8:00): Hi,我遇到了 XXXXXXX 错误,然后 YYYY 命令跑不了,怎么办?
B (13:00): 这样,你应该 ZZZZZZZ
节省了大量无效交流时间。

避免「有没有人懂」

例如:有没有人懂 C++?有个问题想问问
原因如下:
C++ 是非常复杂的,没有多少人真的懂/精通 C++。对很多别的领域也是类似的。
就算真的有人懂,懂的人很可能也不想在群里(通过回答这样的问题)夸耀自己很懂。而不太懂的人就更没有兴趣看你的问题了。
很多时候对应的问题即使是不精通相关领域的人也可以回答,对应的问题可能是某种常识。

没有人回答问题 ≠ 被无视,在群聊中,如果认真提问却没有人回答,更有可能发生的事情是:看到问题的人完全不知道如何解决,仅此而已。同时也需要注意,群聊中(或者论坛中)的其他与你素不相识的人也没有必须回答问题的义务。

How To Ask Questions The Smart Way

Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen
Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu
https://lug.ustc.edu.cn/wiki/doc/smart-questions/
摘抄部分内容以减少攻击性和适配。注:可能违反原文分发协议,但这没办法

准备好你的问题,再将问题仔细的思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。

别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。要一个一个地来。

别用喋喋不休的帮帮忙、跪求、急(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。

有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。

RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!)

通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为

你需要的信息非常容易获得;
你自己去搜索这些信息比灌给你,能让你学到更多。

如何有效地报告 Bug (节选)

“精确的描述您看到了什么。告诉他们为什么您觉得自己所看到的是错误的,最好再告诉他们,您认为自己应该看到什么。如果您只是说:“程序出错了”,那您很可能漏掉了非常重要的信息。”
“只报告“程序出了一个错”是毫无意义的,除非您把错误消息一块报上来。”
Copyright © Simon Tatham 1999
https://www.chiark.greenend.org.uk/~sgtatham/bugs-cn.html
licensed under OPL v1

如何更有效地获得帮助

你可以不懂原理,不会分析,甚至不知道问题该怎么描述——这些都没关系。

但请做到以下几点:

  • 不要把猜测当事实
  • 不要把转述当原文
  • 不要把二手信息当一手材料
  • 不要在没理解、没验证的情况下直接否定回答
  • 给出足够的上下文,让别人能够真正开始排查

提问并不只是把问题丢出去,而是把能帮助别人理解问题的信息整理出来。
如果你愿意多提供信息,别人通常就能少花很多时间猜。

如果你希望别人能够有效帮助你,请准备好足够的信息,让其他人可以看懂你的问题、复现你的操作、判断你的结论是否成立。


L.001 先说原始问题,不要拿推测代替问题

推荐做法:

直接说明你遇到了什么现象,以及最终想完成什么目标。
如果某个判断已经经过验证,也请一并提供验证过程或依据。

我需要在 xxx 软件中填写 IP 地址才能联机(附截图)。我尝试填写域名,但软件不接受(附截图)。请问这个 IP 地址应该从哪里获取?

或者:

(附截图)我想连接到 xxx,但不确定这一步应该填写什么。这里需要的是 IP 地址、域名,还是其他内容?

常见问题:

跳过原始需求,直接拿自己的推测当作前提,例如只问:

为什么日志里没有 IP?

为什么这样更有效 & 注意事项

为什么:

“为什么没有 IP”这个问题已经默认了一个前提:这个软件只能通过 IP 地址连接。

但这个前提未必成立。软件可能支持域名,也可能根本不需要你从日志中查找 IP。此时,直接使用域名或采用其他连接方式,反而才是正确方案。

如果一开始就把未经验证的判断当成事实,回答者很容易顺着错误前提继续排查,最后花费大量时间解决一个并不存在的问题。

注意事项:

  • 如果你认为软件不支持域名,请说明你是如何确认的,并提供截图、文档说明或测试结果。
  • 如果尚未确认,就如实写明“我不确定它是否支持域名”,不要把猜测写成结论。
  • 回答者需要的是原始现象和实际目标,不是经过多次推测后得到的二手问题。
  • 不要要求回答者先接受你的假设,再在这个假设上继续分析。

L.002 验证方案后,再反馈它是否有效

推荐做法:

收到方案后,先完整阅读,确认自己理解了方案的目的和操作步骤。
在条件允许的情况下,按照对方描述重新执行一次,并把实际操作和结果反馈出来。

我按照你的建议修改了端口,执行的具体步骤是:……

修改后出现了新的报错:[附截图或日志]

我不确定是操作步骤有误,还是端口已被其他程序占用。能否帮我继续判断?

如果某一步看不懂,也可以直接指出具体位置:

我不理解第 3 步中“将服务绑定到所有网络接口”具体要修改哪个配置项。可以说明一下对应的文件和参数吗?

常见问题:

没有认真理解方案,也没有实际验证,就直接回复:

没用。
试过了。
不行。
还是一样。

为什么这样更有效 & 注意事项

为什么:

很多所谓的“方案无效”,实际上并不能证明方案本身有问题。常见原因包括:

  • 对步骤的理解有偏差;
  • 执行环境与回答者预期的不一致;
  • 中途遗漏了某一步;
  • 修改后没有重启相关服务;
  • 新问题覆盖了原来的报错;
  • 实际执行的操作与回答者给出的方案不同。

只回复“没用”无法提供任何可供继续分析的信息。回答者既不知道你做了什么,也不知道结果发生了什么变化,自然无法判断下一步该查哪里。

注意事项:

  • 没有理解方案时,不要凭感觉乱操作。 误操作可能掩盖原问题,甚至制造更多问题。
  • 看不懂并不可耻。真正影响排查的是没看懂、没询问,却假装已经正确执行。
  • 反馈结果时,至少说明“做了什么、出现了什么、和之前相比有什么变化”。
  • 如果方案不适用于你的环境,请说明具体限制,不要只给出结论。
  • 如果有步骤无法执行,直接指出是哪一步、为什么无法执行。

L.003 提供原始报错,翻译和理解只能作为补充

推荐做法:

优先提供未经修改的原始报错文本。

你可以在原文后补充自己的理解,但不要用理解替代原始输出。

执行以下命令:

[你执行的完整命令]

得到的原始输出:

[粘贴原始报错]

我的理解是它可能与权限或路径有关,但我无法确定。

常见问题:

  • 把英文报错机翻成中文,只提供翻译结果;
  • 用自己的话概括报错,却不提供原文;
  • 只说“某个模块有问题”,不提供错误码和完整上下文;
  • 截图只保留最后一行,前面的命令和调用过程全部缺失;
  • 为了让日志“更简洁”,自行删掉文件名、路径或调用栈。
为什么这样更有效 & 注意事项

为什么:

翻译、转述和总结都会丢失信息,有时还会改变错误的原意。

排查技术问题时,真正有价值的内容通常包括:

  • 错误类型和错误码;
  • 软件、模块和依赖名称;
  • 文件名与路径;
  • 命令原文和参数;
  • 调用栈或 traceback;
  • 报错前后的上下文;
  • 时间、版本和运行环境。

这些信息一旦被翻译错误、概括掉或主动删除,回答者就只能尝试还原原始错误。这样不仅降低效率,还可能让排查方向从一开始就发生偏差。

注意事项:

  • 原始输出是一手信息,你的解释只是辅助信息,不能代替原文。
  • 顺序应当是:先提供事实,再补充自己的判断。
  • 如果输出很长,可以先截取相关片段,但必须说明省略了哪些部分。
  • 建议保留完整日志,以便有人要求补充上下文时能够及时提供。
  • 如果原文包含密码、令牌、Cookie、私钥或其他敏感信息,应当先进行脱敏。
  • 脱敏时只替换敏感值,不要删除字段名、报错结构和必要上下文。
  • 如果只能提供截图,请确保截图完整、清晰,并保留命令、时间和报错上下文。

L.004 直接描述问题,不要只贴 AI 对话截图

推荐做法:

直接写出你原本要解决的问题,并提供实际环境、操作步骤、原始报错和已经尝试过的方法。

AI 提供过的方案可以列入“已尝试的方法”,但它不应成为问题描述的主体。

我原本的问题是:……

运行环境:……

我执行过的操作:……

我已经尝试过的方案:……

每个方案的实际结果:……

原始报错或日志:

[粘贴原始内容]

常见问题:

  • 只发一张与 AI 的聊天截图,然后问“这怎么办”;
  • 复制 AI 给出的整段方案,却不说明自己的原始问题;
  • 只说“AI 让我这样做”,不说明自己实际执行了哪些步骤;
  • 要求回答者从一段很长的 AI 对话中反推你的环境、需求和故障现象。
为什么这样更有效 & 注意事项

为什么:

AI 对话是经过转述和加工的二手信息,不是问题本身。

在对话过程中,AI 可能会:

  • 按照自己的理解改写你的问题;
  • 根据常见情况补全实际上不存在的环境信息;
  • 默认某些未经验证的前提;
  • 省略它认为不重要、但实际排查时很关键的细节;
  • 给出与你当前版本或运行环境不匹配的步骤。

真人回答者无法仅凭 AI 对话确认你最初问了什么,也无法确定对话中的描述是否与你的实际环境一致。

此外,聊天截图通常无法复制、无法搜索,也不便于引用其中某一行进行逐项分析。

注意事项:

  • AI 可以帮助你整理思路,但不能代替你说明实际问题。
  • “AI 说了什么”只能算作补充材料,不能当作报错、环境信息或验证结果。
  • 如果你执行过 AI 提供的方案,请明确写出实际执行的命令和执行结果。
  • 寻求真人帮助时,至少应提供:原始问题、原始输出、实际环境和已执行操作。
  • 不要让回答者负责阅读整段 AI 对话,再替你重新整理问题。

L.005 说清楚:想做什么、遇到了什么、需要判断什么

推荐做法:

一个可以被有效回答的问题,至少应当包含以下三项中的前两项,并尽量把第三项也写清楚:

  1. 你想完成什么;
  2. 目前出现了什么现象;
  3. 你希望回答者帮你判断什么。

推荐使用下面这个基本结构:

我想做 X,但目前出现了 Y。
我已经检查或尝试过 A、B、C,结果分别是……
我想确认接下来应该从 Z 的哪个方向排查。

例如:

我想在一台刚安装完系统的 VPS 上部署 API 服务,并允许外部设备通过公网访问。

目前服务已经启动,监听地址为 127.0.0.1:3000。在服务器本机执行 curl localhost:3000 可以正常返回,但通过公网 IP 访问时会直接超时。

我已经放行云服务商安全组中的 3000 端口,并使用 ss -tlnp 确认进程正在监听。

我想确认的是:本机访问正常但公网访问超时时,应当从监听地址、安全组、系统防火墙还是其他网络层开始排查?

常见问题:

  • 只发一张截图,然后说“有人帮我看一下吗”;
  • 只说“打不开”“连不上”“报错了”,不说明具体对象;
  • 描述了许多零散现象,却始终没有提出明确问题;
  • 只表达着急或困惑,不说明希望回答者判断什么;
  • 把所有截图和日志一次性丢出来,要求其他人自行寻找问题。
为什么这样更有效 & 注意事项

为什么:

“有人帮我看看吗”“这怎么办”“为什么不行”严格来说都不是完整的问题。

这类表达只说明你遇到了困难,却没有告诉回答者:

  • 你原本打算完成什么;
  • 哪一步与预期不一致;
  • 你希望判断的是配置、网络、权限、端口还是程序逻辑;
  • 你已经排除了哪些可能;
  • 你需要的是直接解决方案,还是下一步排查方向。

在信息不足的情况下,回答者只能先替你整理需求,再不断追问环境和现象。这会显著增加沟通成本,也容易让真正关键的信息埋在后续对话中。

注意事项:

  • “有人吗”“帮我看看”“这咋办”不能代替具体问题。
  • 截图和日志是证据,不是问题本身。你仍然需要说明它们用于证明什么。
  • 不要让回答者从大量材料中猜测你的目标。
  • 如果暂时无法确定问题属于哪一类,也可以直接询问“下一步应该检查什么”,但必须提供当前目标和实际现象。
  • 提交前,可以先用一句话检查自己的描述是否完整:

我想做 X,但现在出现 Y,我希望确认 Z。


问答存档库

N.001

索引:隧道创建、网络高峰期、节点消失
last update: 2025/12/12

Pursuit.: 12-10 15:31:45
大佬们,我这几天在跟朋友一起玩我的世界,但是每天晚上开映射的时候只有几个内地隧道,这是怎么回事呀

Java8ver64: 12-10 16:35:55
你说的 “隧道” 应该指的是节点
你建好觉得好用的隧道不要删掉,不要随便看不知道哪的教程然后每天都新建隧道,隧道是重复使用的,而不是一次性物品

TIPS:在负载高的时候樱花会暂停新建隧道,但不影响建好的隧道。

N.002

索引:流量消耗、Minecraft
last update: 2025/12/10

渲染距离、模拟距离、玩家数、在线时间、模组(数量、用法、地形、代码质量)、插件、服务器玩法(机器、地形、预载)、玩家玩法(刷图、机器、背包)等都会影响游戏需要传输的数据大小

你可以尝试使用 https://www.curseforge.com/minecraft/mc-mods/connectivity
进行排查,命令如下:
/connectivity packetsAllPlayers
列出网络使用情况最高的玩家
/connectivity packetsSummary
按包类型列出服务器上数量、速率占用最高的包
/connectivity packetsPlayer 【玩家名】
按包类型列出该玩家数量、速率占用最高的包

但很可能得到的结果是一个大类(例如玩家NBT数据)或者重要玩法模组,这种近乎无解 只能建议换包玩()

N.003

索引:安全建议、通用
last update: 2025/12/10

如果你使用映射软件,应当考虑到随时有不知道哪来的人正在高强度扫描节点的端口
任何映射到公网的端口都应当视为不安全 在无鉴权的情况下暴露可操作的端口(例如smb/rdp/ssh/内部服务器专用端口/网络操作界面)是非常危险的
只是映射游戏也要考虑备份存档,群内出过端口被扫描然后被熊的事件。

N.004

索引:Minecraft、日志、DEBUG
last update: 2025/12/10

游戏日志:
无版本隔离:.minecraft\logs\latest.log
开版本隔离:.minecraft\versions\版本名\logs\latest.log

上传文件到群文件。

如何在不能发送文件的群中发送日志: 打开文件,确认不是乱码后全选复制

把内容黏贴到 https://paste.fastmirror.net/
点送出,把给的链接发群里

N.005

索引:Minecraft、服务器列表、服务器信息、红叉
last update: 2025/12/12

我想不出来: 12-10 21:44:19
这是怎么回事呀(注:指服务器列表旁的红x)

Java8ver64: 12-10 21:44:54
点进去看报错 这个x没有用

Java8ver64: 12-10 21:45:20
如果你能进服务器但是觉得这个x不顺眼可以装这个模组 https://www.mcmod.cn/class/6048.html

我想不出来: 12-10 21:45:29
好的好的

我想不出来: 12-10 21:45:59
我和朋友用的是同一个安装包

Java8ver64: 12-10 21:46:01
fml自己通过ping判断频道的方法有问题

Java8ver64: 12-10 21:46:15
所以你要进去看报错 没报错就说明是它这个x显示错了

Java8ver64: 12-10 21:46:19
有报错看报错再说(注:指先尝试进入服务器,如果遇到问题,请截图错误界面发到群里)

Java8ver64: 12-10 21:46:23
这个x没有任何有用信息

N.006

索引:Minecraft、无法加入、refused、reset
last update: 2025/12/12

reset

如果您在尝试加入游戏的时候遇到以上报错,请按顺序排查:

  1. sakura 的日志中是否有错误?如有,请先按文档地址排查相关问题

    例如:请检查本地服务是否可访问

  2. 无法访问的用户是否可访问节点域名?

    部分校园网和公司网络会阻断对隧道的访问,可以尝试更换网络(例如断开手机 WLAN 后使用流量+热点)后再试

  3. 是否是房主/服务器端主动拒绝了连接?

    请检查游戏日志。如果不会或者没有相关知识,请参考 #N.004 后在相关群内询问。

N.007

索引:Windows、通用、杀毒、拦截
last update: 2025/12/14

如果你是被介绍来看这个页面的,那么你大概率是把 PC 或网络环境中的“防火墙”与 Windows 里的其他安全组件混在了一起,或者还不太清楚它们各自负责什么。

下面会用简要、通俗的方式介绍 Windows 中几个常见的安全相关组件,方便区分它们的作用。
除 UCPD 驱动外,其余条目的介绍均参考微软官方说明。1

组件 系列 通俗说明
Defender 防病毒(Antivirus) Microsoft Defender 负责查杀病毒、木马、勒索软件等恶意程序,也会在程序运行、下载或解压时进行实时检查。
Defender 防火墙(Firewall) Microsoft Defender 负责管理网络通信,决定某些程序或端口的联网请求是否允许通过。
Defender 基于信誉的保护(SmartScreen) Microsoft Defender 主要用于拦截可疑网站、恶意下载内容,以及信誉较差或来源不明的程序。
智能应用控制(Smart App Control) 安全中心 用于阻止不受信任或高风险程序运行,仅在部分全新安装的 Windows 11 设备上可用。
用户帐户控制(User Account Control, UAC) 安全中心 当某项操作需要更高权限时弹出确认,以防程序在未经允许的情况下修改系统。
攻击防护(Exploit Protection) 安全中心 用于缓解漏洞利用类攻击,防止某些程序通过系统或应用漏洞执行恶意行为。
用户选择保护驱动程序(UserChoice Protection Driver, UCPD) 未知 用于保护部分用户关联设置,防止程序绕过正常流程,直接修改某些默认应用和相关注册表项。

根据群友反馈,在个别情况下,微软的部分安全机制可能会影响 frpc 的运行;目前较常见的相关项主要是 Defender Antivirus、SmartScreen 和 Smart App Control。
相比之下,Windows Defender 防火墙本身并没有“默认就拦截 frpc”的普遍先例;通常只有在手动配置规则、网络环境特殊,或存在其他联动策略时,才可能对其通信造成影响。

TIPS:frp 本身就是为了暴露防火墙内的端口2 而开发的

N.008

索引:

N.009

索引:

注释


  1. https://learn.microsoft.com/ , https://kolbi.cz/blog/2025/07/15/ucpd-sys-userchoice-protection-driver-part-2/ ↩

  2. https://github.com/fatedier/frp , About: "A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. " ↩