WSL 里中文全是方块?装语言包和字体就好了

默认装好的 WSL 显示中文全是方块。我的主机系统是英文版 Windows,估计是这个原因——WSL 里既没有中文 locale,也没有能渲染中文的字体。补上这两样就好了。 一、安装中文语言包 sudo apt install language-pack-zh-hans 二、重新配置 locale sudo dpkg-reconfigure locales 在弹出的列表里勾选 en_US.UTF-8 和 zh_CN.UTF-8,下一屏选择 zh_CN.UTF-8 作为默认语言。 列表用空格键勾选、方向键移动、回车确认,不是鼠标点。 三、安装字体管理工具 sudo apt install fontconfig 四、把 Windows 的字体拿过来用 装 Windows 字体的方法有很多,我觉得下面这个直接复制的最省事。WSL 里 /mnt/c 就是 Windows 的 C 盘,所以一条 cp 就够了: sudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windows 刷新字体缓存: fc-cache -f -v 五、退出重进 WSL wsl --shutdown 在 PowerShell 里执行,然后重新打开 WSL,中文就正常了。 验证 locale 应该能看到 LANG=zh_CN.UTF-8。 fc-list :lang=zh | head 能列出中文字体就说明字体装好了。

2026年8月18日 · 1 分钟 · Vinkey

端口转发实战:Windows netsh、Linux socat 与 macOS(含命令生成器)

本文总结三大平台的 TCP/UDP 端口转发方法:Windows 用系统自带的 netsh interface portproxy,Linux 和 macOS 用 socat(并注册成开机自启的服务)。文末还有平台对比和排错清单。 命令参数又多又容易记错,所以我在下面放了一个命令生成器,填好地址端口就能直接复制。 什么时候需要端口转发 我自己最常遇到的几种场景: 服务只监听 127.0.0.1,想让局域网里的其他设备也能访问; VPN 抢走了全部路由(比如 Cisco AnyConnect 默认关闭 split tunnel),本机访问不到局域网设备,需要借道一个能通的机器; WSL2 里跑的服务,需要从 Windows 宿主机或局域网访问,而 WSL 的 IP 每次重启都会变; 端口被占用或被规范限制,想用另一个端口对外提供同一个服务。 需要区分两个概念:这里说的都是本机层面的端口转发(用户态代理),也就是「进来的连接原样接到另一个地址端口」;如果要让整台机器充当网关替一个网段做转发,那是 NAT 的活,Linux 上应该用 nftables/iptables 的 DNAT 并打开 net.ipv4.ip_forward,不在本文范围内。 🧰 命令生成器 支持多条规则一起生成,切换标签页即可得到对应平台的命令,每个代码块右上角可以一键复制。 Windows · netsh Linux · socat macOS · socat / pf 协议 TCP UDP + 添加一条规则 重置 ...

2026年8月17日 · 3 分钟 · Vinkey