疑难杂症

C盘容量莫名其妙被占用

  • 更改Temp文件夹路径 https://blog.csdn.net/Ussim/article/details/108610090
  • Win10休眠占用C盘存储:默认是开启的,相当于电脑休眠的时候把内存中的数据放到硬盘中,启动的时候重新加载,这样你的内存有多大就会占用多大空间。使用命令关闭此功能
powercfg -h off

关于移动硬盘硬盘安装大白菜或者别的什么ISO

千万别对已经有数据的磁盘进行这个操作,别说什么压缩一下卷,然后弄得新的盘符什么的,写一下整个硬盘都会被格式化!!!!!!!

下载vscode太慢

下载vscode的时候如果太慢,直接把前面的地址换成这个vscode.cdn.azure.cn 下载速度就会提升

Windows设置软连接

先修改本地安全策略:

随后将自己的用户添加到创建符号链接中:

脚本文件:create_soft_link.bat

随后修改注册表:

随后右键就有了,会将剪贴板中的路径的文件或者文件夹,在当前目录下创建软连接

Windows11家庭版开启Hyper-V

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

修改host

# 修改 C:\Windows\System32\drivers\etc\hosts文件
# 添加相应的host条目

# 随后刷新dns
ipconfig /flushdns

Window下alt+tab edge有很多页面

Windows Edge老是弹使用Copilot重写

VSCode远程诡异加载.env 到bash环境变量

今天遇到了一个诡异的现象,vscode自动加载了.env到环境变量中,并且遇到#注释也没放过。

VSCode remote-ssh历史文件夹清理

windows下vscode的状态存储在sqllite数据库文件中(%appdata%\Code\User\globalStorage\state.vscdb),如果要清理的话,需要连接sqllite,然后搜索ms-vscode-remote.remote-ssh。这个值是一个json文件,json文件中folder.history.v1下就是 host 的 ssh 列表,删除后的重启 vscode 即可。

软件窗口不知道哪去了

使用快捷键:ALT + SPACE,然后按M,即可通过长按左键拖动窗口位置了。

Powershell 7支持conda

  • 首先正常执行conda init powershell,然后找到配置文件C:\Users\kaihang\Documents\WindowsPowerShell\profile.ps1,然后打开pwsh,并且code $PROFILE,将这行写进去。
  • 找到conda.psm1,通常在conda的安装目录conda info --base,中的shell/condabin/Conda.psm1中,修改函数Invoke-Conda()为
    function Invoke-Conda() {
        # Don't use any explicit args here, we'll use $args and tab completion
        # so that we can capture everything, INCLUDING short options (e.g. -n).
        if ($Args.Count -eq 0) {
            # No args, just call the underlying conda executable.
            & $Env:CONDA_EXE $Env:_CE_M $Env:_CE_CONDA;
        }
        else {
            $Command = $Args[0];
            if ($Args.Count -ge 2) {
                $OtherArgs = $Args[1..($Args.Count - 1)];
            } else {
                $OtherArgs = @();
            }
            switch ($Command) {
                "activate" {
                    Enter-CondaEnvironment @OtherArgs;
                    $Env:_CE_M = $null; $Env:_CE_CONDA = $null;
                }
                "deactivate" {
                    Exit-CondaEnvironment;
                    $Env:_CE_M = $null; $Env:_CE_CONDA = $null;
                }
    
                default {
                    # There may be a command we don't know want to handle
                    # differently in the shell wrapper, pass it through
                    # verbatim.
                    & $Env:CONDA_EXE $Env:_CE_M $Env:_CE_CONDA $Command @OtherArgs;
                }
            }
        }
    }

Visual Studio问题

Windows SDK安装路径

# 通常在注册表中的一下位置的InstallationFolder字段中
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v10.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v10.0

Windows11累积更新失败

目前初步原因是,大概率我跑了hack手段在家庭版上面开启了Hyper-V:[[IT知识/OS/Windows/实用指令#Hyper-V in Windows 10 and Windows 11 Home Edition|文档]]。尝试各种恢复手段之后只能下载MediaCreationTool.exe 工具; 然后执行,并且下载Windows.iso;随后用资源管理器打开,并且点击setup.exec,保留用户程序和配置,重新进行安装。实测所有环境变量、注册表、应用程序均可以保留。

Edge缓存异常

问题:nginx服务器反向代理的上游服务器,填写错误了,并且使用edge访问,然后浏览器缓存了,SHIFT+F5可以重新请求跳转到正确的后端服务,但是域名访问仍然是错误的。 问题分析:通常是浏览器缓存造成的,清除全部浏览器缓存是可以的,但是会导致其他登录的服务重新登陆,太麻烦了。可以针对这个网站清空缓存

IP转发导致的Tun模式失效

1. 问题现象 (Symptom)

  • 表现:开启系统代理模式正常(通过 SwitchyOmega 等可正常上网),但一旦开启 TUN 模式(虚拟网卡模式),系统彻底断网,Google 和直连的国内网站(如飞书)均打不开。
  • 日志特征:Clash Verge 日志中高频出现大量以下报错:
    • [TCP] dial DIRECT ... error: reject loopback connection to ...
    • dns resolve failed: all DNS requests failed, first error: context deadline exceeded

2. 根本原因 (Root Cause)

由于之前为了配合 Tailscale 进行局域网内网路由共享,手动开启了系统的 IP 路由转发功能(IPEnableRouter=1)。 该功能会将 Windows 转变为路由器模式,破坏了 Clash 用于“进程流量防回环”的网卡隔离策略,导致 Clash 本身发出的所有出站请求又被 Windows 强制路由转发回 TUN 网卡本身,形成了无限死循环。内核检测到回环后进行主动拦截(Reject Loopback),导致网络瘫痪 [2.1.4]。


3. 正确的排障与修复路径 (Resolution Steps)

第一步:关闭 Windows 底层的 IP 路由转发(核心修复)

  1. 按 Win + R 输入 regedit 打开注册表编辑器,定位至: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  2. 找到 IPEnableRouter 键值,将其数值修改为 0(关闭转发功能)。
  3. 按 Win + R 输入 services.msc 打开服务窗口,找到 Routing and Remote Access(路由和远程访问)服务,将其启动类型改为 禁用 并停止该服务。
  4. 重启电脑使修改彻底生效。

第二步:优化 Clash 内部网络配置

为了防止多虚拟网卡环境下路由表竞态冲突,对 Clash Verge 配置进行调优:

  1. 避免 DNS 域名解析死锁:在订阅配置中,将 DNS 部分的 nameserver 从 DoH(HTTPS 域名解析服务器,如 https://doh.pub...)改回传统的纯 UDP 物理 IP(如 223.5.5.5,119.29.29.29),防止 DNS 模块在未联网时因域名直连回环而瘫痪 [2.1.4]。
  2. 关闭 DNS 的 IPv6 协议:在订阅配置的 dns 下,设置 ipv6: false(因 IPv6 在虚拟网卡环境下更容易诱发路由混乱导致回环)。
  3. 优化虚拟网卡配置:
    • 打开 “自动选择流量出口接口”(让 Clash 锁定真实的 WLAN/以太网卡出站) [2.2.8]。
    • 关闭 “严格路由(Strict Route)”(防止强制拦截 WFP 直连流量产生死锁)。
    • 将 TUN 模式堆栈(Stack)修改为更具隔离性的 GVisor [2.1.4]。

第三步:强制复位物理网卡(清理 NAT 缓存)

  1. 打开“网络连接”窗口(ncpa.cpl),右键你的真实物理网卡(如 WLAN),选择 “属性”。
  2. 切换到 “共享”(Sharing)选项卡,勾选 “允许其他网络用户通过此计算机的 Internet 连接来连接”,点击确定保存。
  3. 再次进入属性,取消勾选该选项,点击确定保存。 (此操作可强制 Windows 重置网卡的 NAT 地址转换和底层路由状态,清理历史回环缓存)。

4. 经验避坑指南 (Lessons Learned)

  • 不要轻易开启系统级 IP 路由转发:除非是多网卡做软路由或配合特定的内网穿透(如 Tailscale 局域网暴露),否则在普通单客户端日常使用中,开启 IPEnableRouter 会给所有的本地 TUN 虚拟网卡代理(如 Clash, Sing-box)带来毁灭性的冲突。
  • 多虚拟网卡共存需谨慎:物理网卡周围如果有 Hyper-V、VMware、Tailscale 等多套虚拟网卡,Clash 开启自动检测时,建议配合 GVisor 堆栈使用,以获得更强的流量沙盒隔离性 [2.1.4]。

总结:为什么 “IP 路由转发” 会影响 TUN 模式?

  1. 正常的 TUN 绕过机制(避免死循环): 在正常情况下,Clash TUN 模式会接管系统所有的出站流量。但 Clash 自身也必须发出请求(比如去连接你的代理节点,或者发送直连数据)。为了防止“Clash 自己的出站请求又被自己接管”从而形成死循环,Clash 会利用 Windows 过滤平台(WFP)和 Socket 绑定机制告诉系统:“所有由 Clash 进程(或者绑定了真实物理网卡 IP)发出的流量,必须绕过虚拟网卡,直接从真实的 WLAN 发送出去”。
  2. 开启 “IP 路由转发” 破坏了这种隔离: 当你手动修改注册表开启了 IPEnableRouter=1(IP 路由转发)后,Windows 系统就会从一个普通的“终端主机”变成一台“IP 路由器”。 此时,Windows 的网络模块会无视 Clash 的进程级/网卡绑定级隔离策略。当 Clash 试图从物理网卡发送直连或代理请求时,系统的路由转发引擎会多管闲事地对这些数据包进行二次路由寻路,并认为:“根据默认路由表,最优先的网卡是 Clash TUN,我应该把这个包转发给 TUN 网卡。”
  3. 回环死循环(Loopback Trap): 于是,Clash 刚发出的数据包被 Windows 转发回了 Clash 自己的 TUN 网卡。Clash 的 TUN 网卡收到自己刚发出去的包,识别到这是一个无限死循环(Loopback),为了防止系统崩溃,内核主动将其拒绝(reject loopback connection)并丢弃 [2.1.4]。这就导致你所有的直连和代理请求全部卡死在系统内部。