最近需要手机连接家里的局域网. 然后就根据 Gemini 的回答配置家里路由器(OpenWRT) 的 WireGuard 环境, 然后就用手机死活连不上(耗时 6 小时排查,最终原因是防火墙). 开始继续使用 Gemini 列出可能的问题, 问题定位到 光猫,防火墙,密钥,公网等, 让我使用 wg show查看, 我的 latest handshake 是空. 它的回复片段如下(一个完全错误的回复) 如果 latest handshake 字段为空,说明数据包从未到达路由器;如果已经有握手时间但无法访问局域网,则是路由表( Allowed IPs )或防火墙转发的问题。
根据我的直觉, 感觉不太对, 我又补充了我手机使用 4G. Gemini 又让我使用 tcpdump 查看 51820 端口. 事实上每几秒就有 一个进入的包. 我将 tcpdump 的返回直接贴给 Gemini. 然后 Gemini 很确定的告诉我很大可能是密钥的问题. 因为密钥都是生成后扫描二维码, 不太可能出错. 我继续问,后面 Gemini 的回复都是围绕防火墙. 但是防火墙的配置都是根据 Gemini 来的. 尝试了很多次仍然不行. 最终我直接 google 查资料. 先是一篇 中文资料 OpenWRT 安装 WireGuard 实现内网穿透 . 防火墙部分的配置和 Gemini 一致. 最终不行 然后直接去 openwrt 的官网找资料. 根据 WireGuard server 从头配置了一遍. 终于可以了. 区别确实在防火墙的地方. 之前错误的原因是: 通信规则的端口配置在了 源端口, 正确的做法是配置在 目标端口. 最后得出结论: 英文 -> 人 -> 中文 == food -> 人 -> shit